Skip to content
Julian De Leon
Writing

What Your Agent Sessions Say About Your Project

5 min read

A coding agent writes down everything: what you asked for, what it tried, which command failed, what the error said, and what finally worked. Then it saves all of that to a hidden folder, and neither of you ever opens it again.

That is a strange thing to throw away. Ronda is a desktop app I built to stop throwing it away. It indexes sessions from 18 coding agents into one local library and makes every transcript searchable.

The record you already have#

Your repository keeps the result. The session keeps the part that explains it.

[ RECORD ]
  • code that shippedgit
  • approaches droppedsession
  • commands that failedsession
  • why the fix lostsession

A commit says what changed. The session says what else you tried, how long it took, and why the obvious approach did not survive contact with the code. That is the more useful half, and it is the half nobody stores.

Except you cannot read it back#

Each agent picked its own folder and its own format, on the reasonable assumption that nothing would ever read those files except itself.

[ SOURCES ]
  • ~
  • .claude/projects/*.jsonl
  • .codex/sessions/*.jsonl
  • .gemini/tmp/*.jsonl
  • .copilot/session-store.db
  • .cursor/agent-transcripts
Tree with 6 nodes

Use three agents and you have three archives that cannot be queried together. No agent reads another agent's history, and several of the formats are SQLite databases, so grep will not save you either. The history exists and is unreachable, which is the worst of both options.

The small question#

The first thing you ask is the boring one: where is that session about the thing I half remember.

[ SEARCH ]
$ ronda-cli search useEffect
1. `pi:session-0000` · pi · useEffect fires twice
   /Users/dev/portfolio · updated 2026-09-01
   - seq 0: useEffect fires twice
     ref: ronda://session/pi:session-0000#0

This has to be fast enough that you ask without thinking about it. On a library of 300 sessions and 800 MiB of session files, a search comes back in about 26 ms and a full index from cold takes about 13 seconds.

[ BENCHMARK ]
  • 800 MiB

    session files

  • 26 ms

    search p95

  • 13 s

    cold index

Every result points at the exact message, so the session opens where the answer is instead of at the top.

The bigger question#

Once the whole history is searchable, a different question becomes possible: not where a session is, but what all of them together say about the project.

Sessions can answer that because they record attempts, not outcomes. A repository shows you the path that worked. A year of transcripts shows you every path you took, in order, with timestamps. Ronda reads that at index time, with fixed rules and no language model, and reports it back.

[ INSIGHTS ]
$ ronda-cli insights --since all
5 sessions · 22 min active · 2 of 2 tool calls failed
Where time goes (excluding recovery)
- Exploring and questions: 12 min · 2 sessions
- Refactoring: 6 min · 1 sessions
How sessions end
- ended failing: 2 sessions · 4 min

The split between building features and fixing bugs is a statement about your codebase, not about your week. The detected stack is the stack you actually touch, which is not always the one in the README. And when most of the time goes to setup, recovery, and exploring, the problem you are solving is not the one on the roadmap.

Repetition is the signal#

The strongest thing a session library tells you is what happens more than once. Ronda strips paths, line numbers, and other values out of failing command output and keeps what is left as a signature, so the same failure groups across sessions and across agents.

[ ERRORS ]
$ ronda-cli errors "error TS2307: Cannot find"
Seen in 2 sessions: error TS2307: Cannot find
module '@/lib/views'
- pi:session-0004#1 · ended failing
  typecheck is red again
- pi:session-0001#1 · ended failing
  build fails after a move

Once is a typo. Twice, in two sessions, a week apart, is a piece of the project that is missing.

[ SIGNAL ]
one error
a typo
same error
a design gap

That reading is only available if something kept both sessions. On its own, each one looked like a bad afternoon.

Letting the agents ask#

The same library is exposed through a CLI and a read-only MCP server, so an agent can check whether an error has been seen before and how that session ended, instead of rediscovering the fix at your expense. When the answer is to go back into a session, Resume runs the agent's own resume command in a terminal inside the app, locally or over ssh -t.

It stays on your machine#

None of this is worth having if it means uploading a year of your work to someone else.

[ DATA ]
agent files
read only
session index
rebuildable
sent to a server
nothing

Ronda is open source under the AGPL, built with Tauri 2, Rust, React, and SQLite FTS5. The interface also runs in the browser on sample data, so you can look at tryronda.cloud before downloading anything.