# Export Claude Code sessions

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

[Download for Mac](https://apps.apple.com/us/app/exporter-notes-to-markdown/id6741618455?mt=12)

## 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`

```markdown
---
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. Connect 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. Pick 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. It 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 docs](https://exporter.dev/docs/claude-code) · Guides: [Keep Claude Code sessio](https://exporter.dev/guides/claude-code/keep-claude-code-sessions)

## Questions

### 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.

| | Exporter | A script over the JSONL | Copy and paste |
|---|---|---|---|
| Every session at once | Yes | Yes | No |
| Readable Markdown, one note per session | Yes | Manual | Manual |
| Tool calls and diffs kept, noise dropped | Yes | Manual | No |
| The original log kept past the purge | Yes | Manual | No |
| Kept in sync while a session runs | Yes | No | No |
| Price | 50 sessions free, then a one-time purchase | Free | Free |

## Let Claude read its own history

Exported sessions are searchable over Exporter's local MCP server. [Set it up](https://exporter.dev/docs/mcp).

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

```sh
claude mcp add --transport http exporter http://localhost:8744/mcp
```

## Related

- [Export Apple Notes to Markdown](https://exporter.dev/notes): Apple Notes as Markdown, kept in sync
- [Documents](https://exporter.dev/documents): Word, slides, sheets and PDFs to Markdown
- [MCP server](https://exporter.dev/docs/mcp): Connect Claude and other agents

---

human version: https://exporter.dev/claude-code
every page: https://exporter.dev/llms.txt
