Chats
Every Claude Code and Codex conversation on your Mac in one place: newest first, searchable as you type, formatted to read and copy. Read on your Mac, after you allow it.
If you use Claude Code or Codex, the suggestion you need is in one of dozens of conversations, and you no longer know which. Chats lists every conversation on this Mac in one place, newest first, finds the one where something was said, and lets you read it, copy from it or resume it in Terminal.
Where it is
Chats is a place in the sidebar, after Timeline. It appears only while this Mac has at least one chat
file in ~/.claude/projects or ~/.codex/sessions. To decide that, PrivateGoat counts the files by name and
never opens them, at launch and when the window comes forward, at most every three minutes. No chat files,
no Chats place.
How to use it
- Open Chats. The first time, the page explains what it reads and offers Allow; nothing is read before you choose it (see Settings).
- Browse the list: newest first, each row with its agent, title, folder, last activity and number of turns. All agents and All folders narrow it to one agent or one project.
- Select a chat to read it beside the list. Your turns sit in a quiet card and tool calls are folded into one line. A long chat shows its last turns first; Show N earlier turns loads more.
- Pick it up again: Resume in Terminal opens it in the folder it ran in, Copy Resume Command gives you the command, and Copy Session ID the id.
Search
Type in the search field and the list narrows at once by title, folder and agent. A moment later a full-text search over every message follows, merged under it, with the matching words marked. Esc clears it.
| Action | Keys |
|---|---|
| Next hit, across all chats | Return or ⌘G |
| Previous hit | ⇧Return or ⇧⌘G |
| Clear the search | Esc |
Each step opens the chat at the hit and marks your words in it. A counter under the field says where you are, for example Hit 3 of 17 · 1 of 5 in this chat, and after the last hit it wraps to the first.
From anywhere, Quick Find searches the same conversations under Chats (⌘5): Return on a chat opens it here at the matching message, and ⌘Return resumes it in Terminal.
Reading and copying
Answers are formatted — headings, lists, code and tables — and a Formatted / Raw switch shows the Markdown the agent wrote instead; the choice is remembered. A chat that is still running updates while you read it: a Live mark shows that the agent wrote to it in the last minute, and a pill says how many new turns arrived if you have scrolled up.
Every answer has Copy, which copies it formatted, and a ⋯ menu with Copy as Markdown. Hover over a table and a Copy button appears on it: rich-text apps get a real table, and spreadsheets get the cells. With tables in an answer, the ⋯ menu also offers Copy as aligned text and a copy of each table, so the keyboard reaches them too.
Settings
| Setting | Where | Notes |
|---|---|---|
| Read coding-agent histories on this Mac | Settings → Coding agents → Chats | The one consent for Chats, the Timeline scan and the words dictation learns from your prompts; Allow on the Chats page turns it on |
| Formatted / Raw | The switch above the conversation | Remembered |
There is no switch to hide the Chats row while chat files exist; turning reading off empties the page instead.
What is stored
| Item | Where |
|---|---|
| Source chat files (read only) | ~/.claude/projects/<project>/<session>.jsonl, ~/.codex/sessions/…/rollout-*.jsonl |
| The search index | ~/Library/Application Support/Sonavia/claude-search.sqlite3 |
The index holds what you typed, what the agent wrote back and the commands it ran; tool output is not indexed. The chat files themselves are never changed.
What leaves your Mac
Nothing. The chat files are read on this Mac, the index is in PrivateGoat's own folder, and searching, reading and copying make no network request. Resume in Terminal runs a local command.
When it is off or fails
- No chat files on this Mac: the Chats place does not appear at all. A folder that cannot be listed counts as empty.
- Reading not allowed, or switched off: the page shows what it would read and Allow instead of a list, and the Timeline stops scanning too. The row stays while chat files exist.
- A chat file that cannot be read: it is skipped and logged; the rest of the list still shows.
- A session with no conversation recorded: the page says so.
- Quick Find on a Mac without the Chats place: Return on a chat resumes it in Terminal, as before.
- Claude Code's conversation search in Quick Find predates this switch and keeps working without it; Codex conversations are indexed only once reading is on. See Search agent conversations.
Related
- Search agent conversations — the same conversations from Quick Find.
- Agent sessions under tickets — the sessions filed by the ticket they worked on.
- What stays on your Mac — every file PrivateGoat keeps.