Every session leaves a directory behind, so the prompt a mode assembled and the tools the model was given can be read back long after the session has moved on.
The archive
One directory per session, holding a frozen copy of the transcript, the configuration each spawn ran under, and the images and models the session produced.
| File | Holds |
|---|---|
| manifest.json | What is here, and where each piece came from |
| transcript.jsonl | One message per line |
| tools.json | The MCP servers and the tools this session was given |
| config/ | One file per distinct spawn configuration |
The CLI's own transcript is not this record. The CLI owns its lifetime, and the id underneath it moves on a fork or a conversation reset. The archive is Turret's copy.
The wire log
Turret can put a proxy between a session's subprocess and the API, and write each request and each response to disk. It is off unless an environment variable turns it on. With it off nothing listens, and a session's traffic goes straight to the API.
What it writes is the wire itself: the full prompt as the model received it, every system block, every tool definition and the whole message history, alongside the full response as it streamed back. The archive holds what a session was given. This holds what actually crossed the network.
What it never shows
Cost and tokens are recorded and displayed nowhere. No spend, no token counts, no throughput, no context-window percentage. There are no budget caps. A running total in the corner changes how a person works.