You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add support for Claude Cowork session transcripts #84
Claude Cowork (local agent mode) stores session data in ~/Library/Application Support/Claude/local-agent-mode-sessions/ using the same JSONL format as Claude Code, but with additional metadata (title, folders, processName) in separate JSON files.
It would be great if this tool could convert Cowork sessions too. The existing JSONL parsing and HTML generation already work unchanged — the main additions would be:
A session discovery function that reads the Cowork metadata directory and locates the
corresponding JSONL files
A cowork subcommand with an interactive picker (similar to local)
Labeling the HTML output "Claude Cowork transcript" instead of "Claude Code transcript"
Yes, I have messages in my Claude Cowork sessions like the following, that should probably be omitted from or put inside an accordion on the first page:
FYI - The Windows version of this path is C:\Users\compu\AppData\Roaming\Claude\local-agent-mode-sessions. @houfu I looked at your fork, and it appears it hardcodes the Mac path. Could you make it support the Windows path as well please?
I've pushed up my own fork (built off of houfu's) that fixes both the OS filepath issue and the changed field names. It also includes a refactor to organize the code a little bit, splitting apart the one mega-file that held all the logic previously. https://github.com/zackman0010/claude-code-transcripts
I would model Cowork as a source profile, not a special case inside the Claude Code parser.
The JSONL parser can stay shared, while discovery/metadata handles source name, OS-specific base paths, title/folder/process metadata, and output labeling. Store that source profile in the generated archive manifest too.
That leaves room for other Claude-family transcript locations without changing the core message renderer every time.
Activity
jpmckinney commentedon Mar 17, 2026
Yes, I have messages in my Claude Cowork sessions like the following, that should probably be omitted from or put inside an accordion on the first page:
isSyntheticis the relevant marker.Some other messages with
parent_tool_use_idwere also being misrendered as user input.Claude Cowork also uses
_audit_timestampinstead oftimestamp.zackman0010 commentedon Mar 21, 2026
FYI - The Windows version of this path is
C:\Users\compu\AppData\Roaming\Claude\local-agent-mode-sessions.@houfu I looked at your fork, and it appears it hardcodes the Mac path. Could you make it support the Windows path as well please?
zackman0010 commentedon Mar 24, 2026
I've pushed up my own fork (built off of houfu's) that fixes both the OS filepath issue and the changed field names. It also includes a refactor to organize the code a little bit, splitting apart the one mega-file that held all the logic previously.
https://github.com/zackman0010/claude-code-transcripts
Necmttn commentedon Jun 21, 2026
I would model Cowork as a source profile, not a special case inside the Claude Code parser.
The JSONL parser can stay shared, while discovery/metadata handles source name, OS-specific base paths, title/folder/process metadata, and output labeling. Store that source profile in the generated archive manifest too.
That leaves room for other Claude-family transcript locations without changing the core message renderer every time.
Generated with ax.