Developer tools
Archivist
An archive of coding-agent sessions, so the reasons behind a change can survive alongside the code.
A commit shows what changed. The conversation that led to it may explain why. Archivist keeps those conversations: the failed approach, the test that changed the plan, the review that caught something everyone else missed.
It gathers Claude, Codex, and Gemini sessions from my machines. Each machine saves locally and synchronizes when it can. The original files stay intact, while parsers turn their contents into searchable records. A graph links projects, sessions, and the sessions they started. Links to the files they touched are in progress.
If a tool changes its file format, Archivist keeps the file and stops parsing it until I can review the change. Unknown record types are kept and tagged. Searchable event text is scrubbed for known secret patterns; matched originals remain encrypted on the host. The raw archive stays in controlled storage.
I use it to return to old work with new questions. Keeping the originals means a better parser can read the history again.
How it works / Explore the workflow
Keeping a session for later
Each machine copies changed session files, then parses them and scrubs the event text for a searchable database. The machines send their records to a shared archive. A graph connects related sessions; the original files remain available to read again when a parser changes.
Learnings
An archive is a promise to a future reader who no longer has the original machine. That reader may also be you. Checking the capture process is only the beginning; the harder test is whether a fresh machine can recover the files, read the database, and answer a question about the old work.
Archivist made the gap visible when raw file capture kept running while the database was unavailable. A successful scan could coexist with an empty searchable archive. Testing from the receiving end forced me to check each part of what I expected to survive.
There is another reason to keep the original files. Every parser makes choices about what matters. Those choices change as formats evolve and new questions occur to us. If the archive keeps only today’s interpretation, tomorrow’s question may be impossible to ask. I keep the raw history separately so the searchable records and graphs can be rebuilt. Preservation gives us another chance to understand what we already have.