transcript-grep — Claude Code skill: transcript search
Search a session’s conversation for text or a regex and inspect each hit in context. Handy when you need to track down a prompt, tool call, or error.
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a claude-codeWhat transcript-grep does
transcript-grep searches user and assistant messages as well as tool names, inputs, and outputs. Each result includes nearby messages or lines; tool matches also show the tool name and a shortened view of its arguments or result. A summary reports the hit count, distinct messages, roles, and timestamp range.
The skill first uses the Agent Monitor API to resolve a session, then fetches its transcript. Pass a session ID or use latest or last; leaving out the session selects the most recently updated one. Matching ignores case unless the pattern contains regex metacharacters, in which case it is treated as a regular expression.
Agent Monitor must be running. If the dashboard cannot be reached, the skill tells you to start it with npm start from the repository root. Without the dashboard, it cannot fetch the transcript.
What it helps with
- Find a message by phrase in a session transcript
- Locate a tool call and inspect its arguments or result
- Search for an error by its name
- Read matching lines alongside nearby messages and timestamps
Example prompts for the agent
- Search the latest session for
TypeErrorand show the surrounding messages. - Look for
rate limitin sessionlatest, including tool inputs and outputs. - Search session
abc123for the regextimeout|connection refused.
How to install transcript-grep
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a claude-code2Manually: put the files in place
~/.claude/skills/transcript-grep/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/transcript-grep/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a codex2Manually: put the files in place
.agents/skills/transcript-grep/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a cursor2Manually: put the files in place
.cursor/skills/transcript-grep/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install hoangsonww/Claude-Code-Agent-Monitor transcript-grep2Manually: put the files in place
.github/skills/transcript-grep/SKILL.md1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a gemini-cli2Platform CLI
gemini skills install https://github.com/hoangsonww/Claude-Code-Agent-Monitor --path plugins/ccam-devtools/skills/transcript-grepManually: put the files in place
.devin/skills/transcript-grep/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about transcript-grep
How do I install transcript-grep in Claude Code?
Run npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill transcript-grep -a claude-code. The skill file is at ~/.claude/skills/transcript-grep/SKILL.md.
What does transcript-grep do?
It searches an Agent Monitor session transcript for literal text or a regular expression, then displays each hit with nearby context. It also summarizes the matching roles and timestamps.
Does transcript-grep need Agent Monitor to be running?
Yes. It uses the Agent Monitor API to find sessions and retrieve transcripts. If the dashboard is unreachable, it directs you to run npm start from the repository root.
Source text
SKILL.md · MIT
--- name: transcript-grep description: > Search a Claude Code session transcript for a string or regex pattern and show every matching message with surrounding context. Reads /api/sessions/:id/transcript and resolves sessions via /api/sessions?limit= from the Agent Monitor dashboard. Use when hunting for a specific message, prompt, tool call, or error inside a session's conversation. --- # Transcript Grep Find where a pattern appears in a session transcript and show the matches in context. ## Input The user provides: **$ARGUMENTS** Interpreted as a session reference plus a search pattern, e.g. `<session-id> "rate limit"` or `latest TypeError`. Parsing rules: - The session reference is the first token if it looks like an id, or the words `latest`/`last` (most recently updated session). - The remainder is the search pattern (string or regex, quoted if it contains spaces). - If no session is given, default to the most recent session. ## Data Sources | Endpoint | Returns | |----------|---------| | `GET /api/sessions?limit=N` | session list to resolve `latest`/`last` and to confirm the id exists | | `GET /api/sessions/:id/transcript` | the ordered transcript messages (role, content, tool calls/results, timestamps) for the session | ## Report Sections ### 1. Resolve the session If `latest`/`last` (or no id), call `GET /api/sessions?limit=1`. Otherwise verify the id with `GET /api/sessions?limit=1000` (or `GET /api/sessions/:id`). Report the resolved id, status, and model before searching. ### 2. Fetch and search Call `GET /api/sessions/:id/transcript`. Walk the messages in order and match the pattern against message text, tool_name, and tool input/output content. Case-insensitive by default; treat the pattern as a regex if it contains regex metacharacters, otherwise as a literal substring. ### 3. Matches with context For each match show: ``` [#N HH:MM:SS role(:tool_name)] … preceding line of context … > matching line with the **pattern** emphasized … following line of context … ``` Number matches sequentially. Include ±1–2 messages (or lines) of context so the match is interpretable. If a tool call matches, show the tool_name and a trimmed view of its arguments/result. ### 4. Summary Report: total matches, how many distinct messages matched, the roles involved (user / assistant / tool), and the timestamp span of the matches. If there are zero matches, say so plainly and suggest a looser pattern. ## Output - Lead with the match count and session header, then the contextual snippets. - Keep snippets trimmed — truncate long tool payloads with `…` rather than dumping them. - Cite only transcript content returned by the API — never fabricate messages. - If the dashboard is unreachable, tell the user to start it with `npm start` from the repo root.
© hoangsonww · MIT · hoangsonww/Claude-Code-Agent-Monitor