# Move your Claude Code sessions between computers (Mac/Windows, any direction)

> Source: <https://github.com/ZenKhalil/session-porter>
> Published: 2026-08-10 17:50:33+00:00

Moves your Claude Code conversations between computers: Mac to Mac, Mac to Windows, Windows to Mac, or Windows to Windows. One file, no installation, and nothing ever leaves your machines.

**On the old computer**

- Mac: double-click
`Session Porter.command`

(or run`python3 session_porter.py`

) - Windows: double-click
`Session Porter.bat`

(or run`py session_porter.py`

)

Click **Pack this computer**. You get one bundle zip on the desktop, with a copy of
the app saved next to it.

**Copy both files** to the new computer using a USB stick, AirDrop, a network drive,
or anything else.

**On the new computer**, run the app the same way and click **Unpack a bundle**.
Porter finds the bundle on the desktop, in downloads, or on an attached drive by
itself, or you can paste the path. Check the summary, click **Unpack here**, then
quit the Claude app completely and reopen it. Your chats are there.

Windows needs Python 3.9+ from [python.org](https://python.org) (tick "Add to PATH"
during install). Macs already have it.

A plain zip of the `.claude`

folder is not enough to move sessions. Porter covers
the gaps:

**The app's chat list lives outside**(Mac:`.claude`

`~/Library/Application Support/Claude/claude-code-sessions`

, Windows:`%APPDATA%\Claude\claude-code-sessions`

). Without it, imported sessions exist on disk but appear nowhere in the app. Porter packs it, and rebuilds it from the transcripts when it is missing, so it can also ingest a plain`.claude`

zip made without Porter.**Every path is rewritten** for the new home folder, at all four JSON escape depths, anchored on the old home prefix with boundaries on both sides. A username that is also an ordinary word never corrupts your text, and a longer username sharing the same prefix is never mistaken for the home.**Project folder names are encoded paths**(`C--Users-Name-...`

,`-Users-name-...`

) and are renamed to match the new home.**Merge only, never overwrite.** Whatever already exists on the target computer wins. Every import writes a log, and`python3 session_porter.py undo`

removes exactly what an import added.**Fragmented conversations are reunited.** Auto-compaction and forks split one chat across many transcript files. Porter follows the recorded links so the app shows one chat per conversation.**Credentials never travel.** You sign in normally on the new computer, and account identity fields are stripped from the bundle.

- After unpacking on a computer where the Claude app has never signed in, open the
app once, then click
**Finish setup** in Porter. - Bundles moved to Windows use forward-slash paths (
`C:/Users/Name/...`

). These are valid on Windows and produce identical encoded folder names, and they cannot be corrupted by nested JSON escaping. - Everything also works from the command line:
`export DIR`

,`inspect ZIP`

,`import ZIP`

,`register`

,`undo`

, and`selftest`

(the built-in test suite, covering every direction).

Session Porter is an independent tool and is not affiliated with Anthropic.
