assist-sessions
Search and recall context from past Claude Code sessions across machines, via the
bundled sessions-axi CLI — a script in this skill's scripts/ directory (not
on PATH). Invoke it by its path relative to this skill's base directory:
scripts/sessions-axi # home: recent activity + next steps
scripts/sessions-axi --help # full command list
scripts/sessions-axi <command> --help # usage for any command
Output is TOON (compact tables); pass --json for raw API
JSON. The server defaults to http://localhost:2529; override with the
CLAUDE_ASSIST_SERVER environment variable.
Choosing the right command: search vs transcript
This is the most important decision.
| User intent | Command |
|---|---|
| Find sessions about a topic ("what did we discuss about auth?") | search --query ... |
| Review what happened in a time period ("what did I do today?") | transcript --after ... --before ... (no id) |
| Check when work happened ("how much time on X?") | activity --days N |
| Read a specific session | transcript <session-id> |
Key rule: if the question names a time period (today, yesterday, this morning, last
week, Monday, a date range), use the cross-session transcript (transcript --after --before with no id) — not search. Search finds sessions by topic; the transcript
endpoint reconstructs what actually happened in a window.
Recognizing temporal queries
Use cross-session transcript --after --before for: "what did I work on
today/yesterday/this week?", "what happened on Monday?", "give me a standup summary",
"review my work from March 15–20", "what's been going on across my projects?".
Convert relative time to ISO 8601 (e.g. 2026-06-23T00:00:00Z); date-only
2026-06-23 also works (midnight UTC):
- "today" →
--after <today 00:00>--before <now> - "yesterday" →
--after <yesterday 00:00>--before <yesterday 23:59:59> - "this week" →
--after <Monday 00:00>--before <now>
Defaults that matter
- Hide subagent sessions: pass
--min-user-messages 2onsearchand rely on the transcript default (also 2). Only omit when the user asks about subagent/automated runs. - Scope to the current project: unless the user asks across all projects, pass
--project <repo>using a minimally-unique substring (e.g.--project claude-assist, not the full path).--projectmatches any substring of the project path. - Substring filters:
--tools,--files-read, and--files-writtenall match substrings (e.g.--tools mcp__plugin_slackmatches every Slack MCP tool).
Searching inside transcripts
grep finds tool calls (by name/target) or message text within transcripts;
transcript --around then lets you explore outward from a match. Two modes:
- Per-session:
grep <session-id> --tool Bash --match "tofu apply"returns each hit as a window of surrounding messages (the matched line marked>), withhead/tailanchors and how many messages remain before/after. - Cross-session:
grep --tool Edit --match routes.ts [--project P] [--days N](no id) searches the tool-call index across all sessions and returns a compact list of matches, each with asession+anchoryou can open. (Cross-session matches on tool name/target only; for cross-session text, usesearchto find sessions, thengrep <id> --in text.)
The exploration loop
Every match carries an anchor uuid. Walk outward from it with the follow-up:
transcript <id> --around <uuid> --before 1 --after 1 # the immediate ±1 (issue's example)
transcript <id> --around <head> --before 30 --after 0 # 30 more messages back
transcript <id> --around <tail> --before 0 --after 100 # a big jump forward
In --around mode, --before/--after are message counts (not dates). Each response
prints the window plus ↕ K before · J after and extend back/forward: commands using the
window's edge anchors — so you keep ratcheting outward until more_before/more_after hit
0 (the session boundary) or you've found what you need. Oversized ranges are token-capped
and return a continuation anchor rather than dumping the whole session.
Commands
Recall
scripts/sessions-axi search [--query TEXT] [--project PATH] [--days N | --since DATE --until DATE | --forever] [--tools a,b] [--files-read frag] [--files-written frag] [--machine ID] [--min-user-messages N] [--include-empty] [--limit N] [--offset N]— find sessions by topic/tool/file (tools & files are substring matches); defaults to the last 30 days of activity (window & ordering use last activity, not start), hides subagent sessions at --min-user-messages 2scripts/sessions-axi transcript <session-id> [--after DATE] [--before DATE] [--include-tools]— compact, token-efficient transcript of one session (optionally trimmed to a time window)scripts/sessions-axi transcript --after DATE --before DATE [--group project|time] [--project PATH] [--min-user-messages N] [--include-tools]— cross-session transcript for a time range — the primary tool for "what did I work on ?"scripts/sessions-axi grep <session-id> --tool Bash --match "text" [--in target|text|tool] [--context N]— find tool calls / text within a transcript — windowed matches + anchorsscripts/sessions-axi grep --tool Edit --match routes.ts [--project P] [--days N]— no id → cross-session tool-call discovery over the indexscripts/sessions-axi transcript <session-id> --around <uuid> [--before N] [--after M]— explore a variable range of messages around an anchor (the grep follow-up)scripts/sessions-axi details <session-id> [--raw]— session metadata; --raw adds the parsed raw messagesscripts/sessions-axi activity [--days N]— when work happened — active time blocks per session (default 7 days)
Overview
scripts/sessions-axi stats [--days N] [--machine ID]— usage statistics: top tools, models, tokens, per-machine countsscripts/sessions-axi machines— list registered machines with sync status
Manage
scripts/sessions-axi outlines [<session-id>...]— generate AI outlines for sessions missing/stale ones (needs the server's model invoker)scripts/sessions-axi outlines progress— check background outline-generation progressscripts/sessions-axi sync [--force]— trigger an immediate local session sync (--force re-parses all)scripts/sessions-axi share <session-id>— mint a shareable auth code for a session transcript
Common workflows
- "What did I work on today?" →
scripts/sessions-axi transcript --after <today 00:00> --before <now>then summarize per project. - "Standup / what did I do yesterday?" →
scripts/sessions-axi transcript --after <yesterday 00:00> --before <today 00:00>. - "What did we discuss about X?" →
scripts/sessions-axi search --query "X" --project <repo> --min-user-messages 2, thenscripts/sessions-axi transcript <top-result-id>. - "Where did we leave off?" →
scripts/sessions-axi search --days 7 --project <repo> --min-user-messages 2 --limit 5, then read the most recent transcript.
Notes
- Sessions are stored in PostgreSQL with weighted full-text search; the host syncs
~/.claude/automatically, satellite machines push via the package CLI. - AI outlines/titles are generated asynchronously when
ANTHROPIC_API_KEYis set; trigger manually withscripts/sessions-axi outlines. - Transcript output is text (
[U]user,[A]assistant,[T]tool); everything else is TOON, with--jsonfor raw JSON anddetails <id> --rawfor full raw messages.