Docs
Coding agents

Agent sessions under tickets

Every coding-agent session on the Mac, filed under the ticket it worked on, with the conversation one click away.

PrivateGoat finds the sessions Claude Code, Codex and DeepSeek leave on the Mac and links each one to the ticket it worked on. The result is a history you can browse from the ticket side: open a ticket, see who worked on it, when, and what was said.

How to use it

WhereWhat you see
Jira → Tree, under a ticketA collapsible Sessions group, under the deepest ticket that matches
Jira → Tree, bottom of the outlineNot linked to a ticket, for recent sessions with no key
An issue's detail paneA Sessions section for that issue
Quick Find → ChatsA conversation found by words
ChatsEvery Claude Code and Codex conversation, newest first

Opening a session shows what it was, where it ran, when it was active, the conversation, and the other tickets it touched. The conversation is read on demand, not up front. Open in Terminal resumes the session by writing a small temporary .command file and handing it to Terminal, so no Automation permission is needed.

Ticket links carry a strength, so a weak guess is distinguishable from a branch that names the key. From strongest to weakest: branch → worked (a commit subject, a branch created with checkout -b or switch -c, a push ref, or a Jira write naming the key) → title → first prompt → mention → discussed → retrieved.

Settings

One switch decides whether the outline draws the sessions, and one page sets up the agent side:

SettingWhereNotes
Show Agent SessionsThe Jira outline's ⋯ menuOn by default; draws the sessions under the outline
Coding agentsSettings → Coding agentsSets up the MCP connection that lets an agent read the same caches

Sessions are read from ~/.claude, ~/.codex and ~/.dsh (dsh only when zstd is installed) wherever they ran; the repositories ticked in Settings → Repositories decide only whose commits the Timeline reads.

What is stored

ItemWhere
Session files (read only)~/.claude/projects/<project>/<session>.jsonl, ~/.codex/sessions, ~/.dsh/sessions
The scan cache~/Library/Application Support/Sonavia/HarnessSessions.json
The Claude conversation index~/Library/Application Support/Sonavia/claude-search.sqlite3
The resume fileA temporary .command file, removed after use

The source session files are never modified.

What leaves your Mac

Nothing. The session files are local, the index and the conversation reader are local, and opening Terminal runs a local command.

When it is off or fails

  • An unreadable or corrupt session: it is skipped rather than failing the scan.
  • No Jira account: there is no ticket tree to file sessions under; read them in Chats or on the Timeline instead.
  • A session with no ticket key: it appears under Not linked to a ticket, never under a guessed ticket.
  • A session whose history file has gone: the pane can show the facts it cached, but not the conversation.
  • Terminal does not open the .command file: the session does not open; the command stays copyable in the session's detail pane.
  • A repository you never ticked: its sessions are still found — sessions are read wherever they ran.

On this page