Claude Code
An increasing share of your work happens inside coding-agent sessions that
leave no trace in commit history — you can spend a day pairing with an
agent and have nothing in git log to show for it. This source captures
that work.
Claude Code already writes every session to
~/.claude/projects/<project>/<session-id>.jsonl. DevRecall reads what is
already on disk: no API, no OAuth, no token, and nothing leaves your
machine. Like Git, it’s a purely local collector.
Connect
Section titled “Connect”devrecall auth claude-codeThe command checks that sessions actually exist before enabling the source, and tells you if it finds none — so you don’t end up with a source that silently collects nothing. Then:
devrecall syncOr edit ~/.devrecall/config.json directly:
{ "claude_code": { "enabled": true }}| Field | Meaning |
|---|---|
enabled | Collect Claude Code sessions |
projects_dir | Override ~/.claude/projects. Rarely needed |
Backfill older sessions
Section titled “Backfill older sessions”devrecall sync only looks at the recent window. To index every session
you’ve ever run:
devrecall backfill --since 1y --source claude_codeTranscripts are local files, so a full backfill is fast — no rate limits and no network round-trips.
What gets collected
Section titled “What gets collected”One activity per session, not per message. A session is the natural unit of work: it has a title, a time range, a repo, and a branch.
| Field | What |
|---|---|
| Title | Your custom title, else the AI-generated one, else the opening prompt |
| Content | The opening prompts — what the session was for |
| Repo | Derived from the session’s working directory |
| Branch | The git branch the session ran on |
| Prompts | How many prompts you sent |
| PR links | Pull requests opened during the session |
The activity is timestamped at the session’s last activity, not its first. Sessions get resumed days later, and work you did today should appear in today’s standup rather than on the day you first opened the conversation.
Only your prompts are indexed. Assistant replies, tool calls, tool results, and subagent traffic are skipped — they’re bulk, and what makes a session findable later is what you asked for.
Linking sessions to tickets
Section titled “Linking sessions to tickets”Branch names are the reliable ticket signal. A session on
feature/PROJ-123-retry is tagged with PROJ-123, which means
work items group it alongside the commits, PRs, and
discussions for that ticket. Asking “what happened with PROJ-123?” returns
the agent session that did the work, not just the commit that landed it.
Privacy
Section titled “Privacy”Nothing leaves your machine. There is no API call, no token, and no network access of any kind — DevRecall reads local files that Claude Code already wrote.
Your prompts are stored in your local SQLite database like any other
activity. If a session contains something you’d rather not index, delete
its .jsonl from ~/.claude/projects before syncing, or use the
privacy filters to redact patterns.
Note that if you’ve configured a cloud LLM (OpenAI/Anthropic) for chat or enrichment, session content is treated exactly like every other activity — subject to the same redaction rules. Use local Ollama if you want agent transcripts never sent anywhere.
Cursor and other agents
Section titled “Cursor and other agents”Not yet. Claude Code is supported because its transcripts are local, structured, and stable. Other agents will follow the same pattern — read what’s already on disk — as their formats settle.
Disable
Section titled “Disable”devrecall config set claude_code.enabled falseAlready-indexed sessions stay in your database. There’s no token to revoke, because there was never one to begin with.
Troubleshooting
Section titled “Troubleshooting”no Claude Code sessions found — devrecall auth claude-code looks in
~/.claude/projects. If Claude Code stores transcripts elsewhere on your
machine, set claude_code.projects_dir in config.
A session has a strange title — titles fall back to the opening prompt when neither you nor Claude Code set one. Set a session title in Claude Code and re-sync; the row upserts.
Sessions aren’t showing up for a ticket — linking uses the git branch.
A session run on main has no ticket key to extract, even if the prompts
mention one.