Skip to content

Add support for Claude Cowork session transcripts #84

Open

Description

@houfu

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:

  1. A session discovery function that reads the Cowork metadata directory and locates the
    corresponding JSONL files
  2. A cowork subcommand with an interactive picker (similar to local)
  3. Labeling the HTML output "Claude Cowork transcript" instead of "Claude Code transcript"

I have a working implementation in my fork (https://github.com/houfu/claude-code-transcripts) and am happy to open a PR if this is something you'd want to include.

Activity

  1. jpmckinney commented on Mar 17, 2026

    @jpmckinney

    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:

    {
        "type": "user",
        "message":
        {
            "role": "user",
            "content":
            [
                {
                    "type": "text",
                    "text": "Base directory for this skill: /sessions/epic-laughing-keller/mnt/.skills/skills/xlsx\n\n# TRUNCATED"
                }
            ]
        },
        "parent_tool_use_id": null,
        "session_id": "<UUID>",
        "uuid": "<UUID>",
        "isSynthetic": true,
        "_audit_timestamp": "2026-03-03T05:05:43.258Z"
    }
    

    isSynthetic is the relevant marker.

    Some other messages with parent_tool_use_id were also being misrendered as user input.

    Claude Cowork also uses _audit_timestamp instead of timestamp.

  2. zackman0010 commented on Mar 21, 2026

    @zackman0010

    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?

  3. zackman0010 commented on Mar 24, 2026

    @zackman0010

    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

  4. Necmttn commented on Jun 21, 2026

    @Necmttn

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions