Ferry icon

Ferry

Your Claude Code chats aren't gone. They're attached to an account you're not signed into.

Ferry lists every Claude account on your machine, moves chats between them, and keeps an archive the 30-day cleanup can't touch.

Download for macOS Universal · 3.9 MB Download for Windows x64 · 4.1 MB View source MIT · free forever

v1.1.0 · macOS 11+ and Windows 10+ · no account, no telemetry, no network

Ferry showing three Claude accounts, a chat list, and a conversation rendered with tables and code blocks
Accounts on the left, their chats in the middle, the conversation on the right. Shown with example data.

The problem

You sign into Claude Code with a second account — a work one, a new subscription, a client's — and your history vanishes. So you start over and re-explain the whole project to the model.

Nothing was deleted

Claude Code stores chat metadata per account. Sign into a different one and the old chats stop being listed, even though every conversation is still sitting on your disk.

Transcripts expire

Old transcript files get pruned on a timer. A chat can outlive its own content: the title is still there, the conversation isn't.

Deletes can come back

The desktop app reconciles its own state. A chat you restore by hand can be removed again later, without warning.

What Ferry does

See every accountEvery Claude account signed into this machine, including ones you're signed out of, with all their chats.
Tell them apartEmail for the account you're signed into. Connectors, date range and project folders for the rest. Nickname any account and it sticks.
Read any chatThe full conversation with real Markdown — tables, code blocks, lists, quotes — plus the tool calls Claude made.
Copy or moveDrag a chat onto another account, or use the buttons. Copy keeps the original where it is.
DownloadSave a whole conversation as Markdown, plain text or JSON, to any folder you choose.
Delete and undeleteDeletes are reversible. Restore from another account or from the archive.
Back upOne button archives every chat and every transcript, subagent transcripts included.

Why moving a chat is instant

Claude Code keeps your history in two separate layers, and only one of them is tied to an account.

LayerWhere it livesScope
Chat metadataclaude-code-sessions/<account>/per account
Transcripts~/.claude/projects/shared by every account

Because transcripts are account-agnostic, moving a chat only moves about 10 KB of JSON. A 45 MB conversation transfers in the same instant as a tiny one, and nothing is duplicated on disk.

Ferry never touches your conversations. It writes only the small metadata record, snapshots every file before changing it, and refuses to write at all while the Claude app is running.

There's a CLI too

Python 3 standard library only — no pip install, no virtualenv, no build step.

python3 ferry-cli.py list                    # every account and its chats
python3 ferry-cli.py vault                   # archive everything
python3 ferry-cli.py export "auth refactor"  # save a chat to a file
python3 ferry-cli.py ui                      # the same interface in a browser

Run vault from cron or a scheduled task and your history is backed up nightly without opening anything.

Questions

Where does Claude Code store chat history?

Two places. Per-account metadata under Application Support/Claude/claude-code-sessions/ on macOS or %APPDATA%\Claude\claude-code-sessions\ on Windows, and the conversations themselves as JSONL files in ~/.claude/projects/.

I switched Claude accounts and my chats disappeared. Are they gone?

No. The transcripts are still on disk — only the per-account metadata changed. Ferry finds every account it can see and copies a chat into the one you're using now.

Can I recover a deleted Claude Code chat?

Usually. Deleting writes a small marker rather than erasing the conversation, so as long as the transcript hasn't been pruned, Ferry can restore it from another account or from its archive.

Does it send anything anywhere?

No. Ferry has no network code at all. It reads and writes local files, nothing else.

Why does my Mac or PC warn me when I open it?

Neither build is code-signed. On macOS, right-click the app → OpenOpen. On Windows, SmartScreen → More infoRun anyway. Once each.

Does it work on Linux?

There's no Claude Code desktop app on Linux, so there are no per-account chat records to move. Only the archive half would apply.

Is this made by Anthropic?

No. Ferry is an independent open-source tool that reads local files written by Claude Code.