DEV Community

Jonathan Wilcox
Jonathan Wilcox

Posted on Fully Autonomous

A coding conversation archive is only useful if you can find the decision later

I'm the maker of Kireo, a memory service for coding assistants. This is a walkthrough of its conversation archive workflow, including what it does not preserve automatically.

Start with a decision, not a transcript dump

Consider this small example:

Use SQLite for the local prototype so contributors do not need a database service. Revisit the database before multi-user hosting. Add a migration test before changing the schema.

A useful archive needs four things: the choice, its reason, the unresolved hosting question, and the next task. “We discussed databases” loses the part that will matter in the next session.

Kireo asks the host assistant to create the summary. The archive tool then redacts recognized credential patterns, writes a local Markdown copy, and sends the content to your account. Pattern redaction does not decide whether business information is confidential; preview important material before uploading it.

Try it in one assistant

You need a Kireo account, a read + write API key, Node.js 20 or later, and an assistant with plugin support. These installation commands were verified on macOS; Windows installation has not yet been verified.

For Claude Code, run in your terminal:

claude plugin marketplace add wang1051992187/kireo-mcp-server
claude plugin install kireo@kireo --scope user
Enter fullscreen mode Exit fullscreen mode

For Codex:

codex plugin marketplace add wang1051992187/kireo-mcp-server
codex plugin add kireo@personal
Enter fullscreen mode Exit fullscreen mode

The Codex repository marketplace is named personal. If that conflicts with an existing marketplace, keep your existing setup and report the conflict instead of removing it.

Create your key on the API Keys page. Put it in ~/.kireo/config.json, outside your repository:

{
  "api_key": "YOUR_KIREO_API_KEY"
}
Enter fullscreen mode Exit fullscreen mode

On macOS/Linux restrict the folder and file permissions with chmod 700 ~/.kireo and chmod 600 ~/.kireo/config.json. Restart into a session with the plugin enabled and ask the assistant to check the connection using memory_health.

Open a project directory, discuss the example above, then run /kireo:compact in Claude Code or $kireo-compact in Codex. Add “Preview only; do not upload” to inspect the summary first. Request an upload after reviewing it.

Check the result before relying on it

For a directory named my-app, the local file is .kireo/archives/<snapshot>/my-app.md. The tool returns the exact path, platform namespace and memory IDs. The website stores memory records with filename metadata rather than a file attachment.

An upload is complete only after all parts have been acknowledged. If it reports outbox_pending: true, keep the local copy, fix the connection or credentials, and retry compact. A local file alone does not establish that the server received it.

Snapshot and part markers distinguish similar paragraphs in different archive versions. Otherwise content-based deduplication could reuse a paragraph while leaving it associated with an older snapshot. This is one reason uploading a file-shaped summary needs more than calling a generic save endpoint repeatedly.

Search the reason in a later session

In a session connected to Kireo, ask:

Search my Kireo memories: why did we choose SQLite for the local prototype?

Include the namespace returned by compact to limit the search to that working directory. Check that the answer preserves “local prototype” and the contributor setup reason, rather than interpreting SQLite as an unconditional decision for production hosting.

This is an explicit retrieval step. Compact does not automatically restore a chat, and it cannot recover history the host model no longer sees. Moving the project directory creates a different archive identity. The separate Context Relay save/resume commands serve a different structured-context workflow.

What has and has not been tested

The released 0.3.0 flow was exercised with a real account: a conversation summary was uploaded, read back, embedded and found through MCP search. It was still readable and searchable after the hosted API was redeployed. That establishes a working path for that run; it is not a benchmark, a retention claim, or a guarantee that every model produces a complete summary.

The next useful test is less impressive than a benchmark: can someone unfamiliar with the project install it, save a decision, and want to retrieve it on another day?

The guide includes a fixed sample, troubleshooting and a feedback link. If you try it, which step got in your way? A description is enough; do not post a private transcript or key.

Disclosure: I build Kireo. This article was drafted with AI assistance.

Top comments (0)