Overview
Read agent conversation transcripts with multiple detail levels, search across all transcripts, and view timeline of recent activity. Supports Claude, Gemini, Codex, and OpenCode transcript formats.View Transcript
Basic Usage
Detail Levels
Show complete assistant responses (no truncation)Default: Action text truncated to ~200 chars
Show complete text + tool I/O, file edits, errorsIncludes:
- Tool names and results
- File edit diffs (truncated to 100 chars)
- Error detection in tool outputs
- Command text for Bash tools
Detail Level Comparison
| Level | User Text | Action Text | Tools | File Edits | Errors |
|---|---|---|---|---|---|
| normal | Full | ~200 chars | Names only | No | No |
| full | Full | Complete | Names only | No | No |
| detailed | Full | Complete | Full I/O | Diffs shown | Yes |
Output Formats
Output as JSON arrayStructure:
Default Output
Search Transcripts
Search pattern (regex)
Search Options
Search only currently alive agents
Search all transcripts on disk (not just tracked instances)
Max results
Filter by agent type:
claude, gemini, codex, opencodeExclude own transcript from results
JSON output
Search Examples
Timeline View
Last N exchanges per agent
Show complete text
Show detailed tool info
JSON output
Timeline Example
Tool Name Normalization
hcom normalizes tool names across different agent implementations:| Agent Tool | Canonical Name |
|---|---|
run_shell_command, shell, bash | Bash |
read_file, read | Read |
write_file, write | Write |
edit_file, edit, apply_patch | Edit |
search_files, grep | Grep |
list_files, list_directory, glob | Glob |
fetch | WebFetch |
Error Detection
In--detailed mode, hcom detects errors in tool results:
- Exit code ≠ 0 for Bash commands
- Keywords:
error:,failed,exception,rejected,traceback - Tool result
is_errorflag
⚠ indicator.
Examples
Basic Viewing
Bundle References
Refer to transcript ranges in messages instead of copying text:Search Workflows
Timeline Analysis
Debugging
Transcript Formats
Claude
Format: JSONL (.jsonl)
- Location:
~/.claude/projects/<project>/transcripts/ - Entries:
user,assistant,system - Tool results in
tool_resultblocks
Gemini
Format: JSON (.json)
- Location:
~/.gemini/transcripts/ - Messages array with
typefield displayContentfor user-visible text
Codex
Format: JSONL (.jsonl)
- Two formats:
response_item(older) andevent_msg(newer) - Tool calls:
function_call+function_call_output
OpenCode
Format: SQLite (.db)
- Location:
~/.config/opencode/ - Tables:
message,part - Requires
session_idfor multi-session databases
Notes
- Transcript paths stored in instances table
- Position numbers are exchange numbers (user + assistant pair)
- Tool results matched to tool_use blocks in detailed mode
- File paths shown as basenames (e.g.,
auth.pynot/full/path/auth.py) - Edit tool shows diff preview (first 100 chars per side)
- Bash commands truncated to 80 chars in display
- Empty exchanges (no user text) are skipped
--lastapplies after parsing (gets last N exchanges)