Get Exporter
Claude Code

Export Claude Code sessions

One Markdown note per session, the original log beside it, kept after Claude Code deletes it.

A session, as a note.

A paragraph per turn with the time and a block id, tool calls folded to what they ran, edits as diffs. Thinking, tool results and the harness's own notices never land in the note.

2026-08-23 2233 fix the changelog header link.md
---
agent: claude-code
session: "a87cea2b-6f0e-4b1c-9d2a-3e4f5a6b7c8d"
title: "fix the changelog header link"
project: "wander.md"
cwd: "/Users/anton/products/wander.md"
branch: "main"
model: claude-fable-5-1
started: 2026-08-23T20:33:00Z
ended: 2026-08-23T20:40:04Z
turns: 5
prompts: 3
tools: 4
files:
  - "src/layout.astro"
---

**you** · 22:33 ^turn-1

see the changelog page, the header link goes to /contact

**claude** · 22:34 ^turn-2

I'll look at the live page first.

```tool Bash "find docs route" ^toolu_01A
ls src
```

```diff src/layout.astro ^toolu_01B
- <a href="/contact">contact</a>
+ <a href="/changelog">changelog</a>
```

What comes out

One note per session under a folder per project, plus the original log under originals/. Names are the date, the time and the session's title.

Turns you can link to

Each turn is a paragraph with a block id, so another note can point at the exact exchange.

Tool calls, folded

A tool call is a fence with what it ran and its short summary. Results, thinking and the harness's own notices are left out.

Edits as diffs

Every Edit and Write shows as a diff, and the front matter lists the files the session touched.

Pasted images

Images pasted into a session are written as files beside the note and embedded in the turn.

The original, kept

The JSONL log is copied byte for byte. Copy it back into ~/.claude/projects and claude --resume finds it, long after Claude Code has purged it.

Live while it runs

A running session updates its note as the log grows; only logs that changed are read again, so 800 sessions sync in seconds.

How it works

  1. 1Connect Claude Code

    A panel opens in your .claude folder: press Select this folder. Exporter reads only the projects folder inside it, with no permission prompt.

  2. 2Pick sessions

    Every session is ticked. Pills show the recent, the busiest and the running ones, and a search field finds a session by its title, its first prompt or its project. Choose markdown, the original, or both.

  3. 3It syncs

    Press sync now. Each session becomes a note under its project, and a session still running rewrites its note as you go.

How it works: Claude Code docsGuides: Keep Claude Code sessio

Questions

Still have questions? Get in touch

Where do the logs live?
Claude Code writes one JSONL file per session under ~/.claude/projects, in a folder named after the working directory, and deletes it thirty days after its last line. Exporter reads that folder and nothing else in ~/.claude.
What is free?
Your 50 most recent sessions export and keep syncing free. Unlocking Claude Code is a one-time purchase in Exporter.
Is anything uploaded?
No. Exporter reads the logs and writes the files on your Mac. No account, no server.

Against the alternatives

Claude Code has no export of its own; the logs are readable only with a script, and they are gone after thirty days.

FeatureExporterA script over the JSONLCopy and paste
Every session at onceYesYesNo
Readable Markdown, one note per sessionYesManualManual
Tool calls and diffs kept, noise droppedYesManualNo
The original log kept past the purgeYesManualNo
Kept in sync while a session runsYesNoNo
Price50 sessions free, then a one-time purchaseFreeFree

Let Claude read its own history

Exported sessions are searchable over Exporter's local MCP server. Set it up.

Connect Claude Code.

Then ask: “What did we decide about the changelog header last month?” Claude reads the session as a note.

$ claude mcp add --transport http exporter http://localhost:8744/mcp

Related

Exporter

Version 4.1 (App Store)

macOS 15 or later

exporter@tinysend.com

© system operator