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 account | Every Claude account signed into this machine, including ones you're signed out of, with all their chats. |
|---|---|
| Tell them apart | A nickname, the Claude display name or the email, remembered even after you sign out. A green dot marks the one you're signed into. Nickname any account and it sticks. |
| CLI and VS Code chats | Sessions you ran with claude or in VS Code that no account lists. Read them, then Add to account and Claude lists them. |
| Cursor | Cursor conversations converted into Claude chats in the folder they were worked in, and Claude chats converted back with Convert. |
| Fix a chat's folder | A chat started without a folder shows No folder in Claude. Point it at the one it belongs to, and Claude names it there. |
| Read any chat | The conversation with real Markdown — tables, code blocks, lists, quotes — plus the tool calls Claude made. The app shows a chat's first 800 messages; Download saves all of it. |
| Copy or move | Pick an account in Send to and choose Copy or Move, or drag the chat onto it. Copy keeps the original where it is. |
| Rename and search | Click a chat's title to rename it; filter an account's chats by title. |
| Download | Save a whole Claude, CLI or VS Code conversation as Markdown, plain text or JSON, to any folder you choose. |
| Delete and undelete | Delete only removes the chat's record, never the conversation. Restore brings it back from another account or from a backup. |
| Back up | One button archives every chat and every transcript, subagent transcripts included. |
| Send nearby | Send a chat from an account, Cursor, the CLI or VS Code to someone else's Ferry on the same Wi-Fi, Mac or Windows. You both check the same six-digit code before anything moves, receiving works with Claude open, and it's off until you turn it on. |
| Zoom | Ctrl/Cmd + and −, or Ctrl/Cmd + scroll; Ctrl/Cmd 0 resets. The level is remembered. |
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.
| Layer | Where it lives | Scope |
|---|---|---|
| Chat metadata | claude-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.
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 import 17b163e1 work@ # add a CLI chat to an account
python3 ferry-cli.py folder "auth refactor" ~/code/api # set a chat's folder
python3 ferry-cli.py cursor-import 4191e56f work@ # Cursor -> Claude
python3 ferry-cli.py cursor-export "the title" # Claude -> Cursor
python3 ferry-cli.py ui # the same interface in a browser (all but Nearby)
python3 ferry-cli.py ui --demo # try it on example data
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 (%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude-code-sessions\ if Claude came from the Microsoft Store, and %LOCALAPPDATA%\Claude-Data\*\claude-code-sessions\ once a newer Claude has moved it there), 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?
Not over the internet. Ferry reads and writes local files. Its one network feature, Nearby, only talks to other Ferry apps on private and link-local addresses on your network, is off until you turn it on, and sends a chat only after both people confirm the same code. The transfer is encrypted.
The Claude app doesn't list the chats I ran in the terminal or in VS Code. Where are they?
On disk, in ~/.claude/projects, like every other chat. They just have no per-account record, and that record is all the app lists from. Ferry shows them under not in an account; Add to account writes the record, and Claude lists the chat from then on. The transcript isn't touched, so claude --resume still finds it.
The other computer doesn't show up in Nearby.
Turn Nearby on at both ends. The first time, allow Ferry on the local network (macOS) or through the firewall (Windows), and make sure Windows has the Wi-Fi set to Private. Some office and café networks block discovery: then type the address the other person's Nearby menu shows into the box at the bottom of Send to.
Why does my Mac or PC warn me when I open it?
Neither build is code-signed. On macOS 15 and later, open Ferry once, then click Open Anyway in System Settings → Privacy & Security (on macOS 14 and earlier, right-click the app → Open). On Windows, SmartScreen → More info → Run anyway. Once each. If Windows says Smart App Control blocked an app, there is no Run anyway: use the CLI's ui command, which serves the same interface, or turn Smart App Control off in Windows Security.
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.