-
Notifications
You must be signed in to change notification settings - Fork 1
Portability
Josh Long edited this page Sep 25, 2026
·
2 revisions
Nothing in the record is tied to a vendor or a machine:
| Piece | Form |
|---|---|
| Symbol ids | <project-relative-path>::<name-path> |
| Content hashes | BLAKE3 over whitespace-normalized source |
Digest (restore-context) |
Markdown, or schema-versioned JSON |
show / callers --format json output |
Schema-versioned JSON |
rg --json output |
ripgrep's JSON Lines events plus a symbol field |
| Journal | NDJSON, one record per read |
The same digest means the same thing on another checkout, another machine, or in front of another model. Any agent that can run a command and read text can consume it — no MCP server, no SDK, no wire protocol.
-
Session ingestion reads Claude Code's JSONL format today.
SessionIngester(src/ingest/mod.rs) is the extension point — "implement this to add support for a new LLM session format." -
Tool mappings are data, not code. Another provider's tool names are
taught in
.ambits/tools.tomlrather than patched in (see Configuration);ToolCallMapperexists to "plug in alternative tool-name conventions." -
restore-context --format hookemits Claude Code'sSessionStartenvelope specifically.--format markdownand--format jsoncarry the same content with no envelope.
Claude Code is what this is built and tested against. The formats are deliberately boring so that need not stay true.
Start
For the agent
For you
Reference