Part of the Brigade fleet from Escoffier Labs
A searchable evidence layer for AI work history.
Your AI work history is scattered across harness logs, notes, exports, and chat archives. MiseLedger imports it all through one adapter contract, stores it in local SQLite, dedupes and indexes it with FTS5, relates it, and emits Brigade-ready evidence bundles. It is the bound ledger, Le Grand Livre, for everything your agents have already done. No network calls.
Ingest once. Search, relate, and cite the evidence later.
Source · adapter records
- StationTrail exports harness session logs to adapter JSONL
- SourceHarvest exports notes, files, HTML, JSON, and git history
- Native adapters convert Codex, OpenClaw, Claude, and Hermes sessions
- Records arrive from a file, stdin, or a wrapped exporter
- Every record carries its own source.kind for mixed imports
Archive · the local ledger
- Normalizes sources, collections, items, actors, and artifacts
- Deduplicates by stable external IDs and preserves raw refs
- Indexes evidence with SQLite FTS5 and shallow relations
- Serves search, show, explain, export, HTTP, and MCP
- Emits Brigade-ready evidence bundles marked as untrusted context
Three tools, one adapter contract. StationTrail and SourceHarvest export to miseledger.adapter.v1 JSONL. MiseLedger archives, indexes, and serves it.
StationTrail
Exports harness session logs (Codex, Claude Code, OpenClaw, OpenCode, Hermes) to miseledger.adapter.v1 JSONL.
SourceHarvest
Exports outside sources (notes, chat archives, crawler output, issues, git history) to the same adapter format.
MiseLedger
Stores, dedupes, indexes, searches, relates, and emits Brigade-ready evidence bundles. You are here.
One adapter contract
Everything enters through miseledger.adapter.v1 JSONL. StationTrail, SourceHarvest, native compatibility adapters, and raw exports all speak the same normalized record shape, so the archive does not care where evidence came from.
Deduped and indexed
Records are normalized into sources, collections, items, actors, and artifacts, deduplicated by stable external IDs and raw refs, and indexed with SQLite FTS5. Re-running the same import is idempotent and never inflates item counts.
Search and explain
search queries the FTS5 index across all imported evidence. explain runs the same path and reports the quoted query, filters, result count, and source and item-kind breakdown so you can see why results matched.
Shallow relations
Import resolves relations when the target already exists: Codex tool calls link to results by call_id, Claude tool_result links to tool_use, and OpenClaw events preserve session and run membership. Unresolved targets are kept for later backfill.
Brigade evidence bundles
evidence emits structured bundles with a stable ID, a miseledger://evidence resource URI, provenance, raw refs, source and actor context, snippets, FTS scores, optional related items, and untrusted_context marking. Bundles are cached and re-showable.
Local only, by design
No network calls for init, import, search, evidence, show, export, status, SQL, MCP, HTTP, or doctor. Imported text is stored locally and treated as untrusted evidence, not executable instructions. The HTTP API binds to loopback.
| Command | What it does |
|---|---|
| miseledger init | Create the local config and SQLite archive under XDG paths with private permissions. |
| miseledger import adapter | Ingest miseledger.adapter.v1 JSONL from a file or stdin, deduped and indexed. |
| miseledger import stationtrail | Run StationTrail for a harness and stream its adapter records straight into the archive. |
| miseledger import sourceharvest | Run SourceHarvest for notes, files, HTML, JSON, or git history and import the output. |
| miseledger search | Query the FTS5 index across imported evidence and return matching items. |
| miseledger evidence | Emit a Brigade-ready evidence bundle with provenance, snippets, and untrusted-context marking. |
| miseledger show | Print a normalized item by ID with its source, actor, raw refs, and artifacts. |
| miseledger explain | Run the same FTS path as search and report the query, filters, and result breakdown. |
| miseledger relations backfill | Resolve stored target IDs once a later import adds the related item. |
| miseledger export markdown | Write normalized items out as Markdown for offline reading or review. |
| miseledger serve | Start the local HTTP API bound to loopback for search, item, and evidence endpoints. |
| miseledger mcp | Start the stdio MCP server exposing search, show, evidence, and source-listing tools. |
| miseledger stats | Summarize the archive by source, item kind, actor type, collection, and recent imports. |
| miseledger doctor | Validate config, archive integrity, FTS coverage, and the MCP surface, counts only. |
Install the binary, initialize the archive, import a harness session through StationTrail, then search and emit a bundle. Every step is local and idempotent.
MiseLedger is part of the Brigade fleet from Escoffier Labs. The exporters feed it, the Brigade consumes its evidence bundles, and the cookbook documents the patterns.