尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Restore Claude desktop conversation history hidden by an account switch, and move it between Macs. macOS app.
翻译准备中
正在加载完整 README。 以下为已保存的摘录。
Switching Claude accounts hides your history. Take it with you.
A small macOS app with two buttons: back up one account, import into another.
That is the whole installation.
The first run takes about a minute: it creates a .venv inside the folder,
installs PySide6 into it, and starts the window. Every run after that opens
immediately. Nothing is installed into your system Python.查看完整 README ↗Switching Claude accounts hides your history. Take it with you.
A small macOS app with two buttons: back up one account, import into another.
git clone https://github.com/pokharnajay/claude-migrator.git
cd claude-migrator
python3 app.py
That is the whole installation.
The first run takes about a minute: it creates a .venv inside the folder,
installs PySide6 into it, and starts the window. Every run after that opens
immediately. Nothing is installed into your system Python.
Back Up and Import stay off while the Claude desktop app is running, because Claude holds these files open and rewrites them as it goes. The window has a Quit Claude button, and it notices on its own when Claude has gone.
python3 --version to check. macOS ships one; if it is too
old, brew install python or grab it from python.org..venv.venv/bin/pip install pyinstaller
.venv/bin/python packaging/build.py --install
Builds a self-contained Claude Migrator.app (Python and Qt inside, about
75 MB) and puts it in /Applications. Run it again after changing the code to
replace the installed copy.
Delete the .venv folder and try again:
rm -rf .venv
python3 app.py
~/Downloads/claude-app-backup-<timestamp>/.Open Claude and the chats are in the sidebar.
The old account was signed in on this Mac before, but you never backed it up? Its history is still on disk. Back up another account on this Mac… backs it up without signing in to it.
To move to another Mac, copy the backup folder across and import it there.
| Chats | Claude Code and Cowork conversations, which ones are archived, and the transcripts they need to open |
| Cowork | Memory, plugins, settings and artifacts |
| Scheduled tasks | The tasks themselves and their prompts |
| Setup | Desktop MCP servers and extensions; ~/.claude settings, CLAUDE.md, plugins, skills, agents and commands; MCP servers from ~/.claude.json |
Left out on purpose: sign-in state and tokens, caches, and the multi-gigabyte VM images Claude downloads again by itself. A backup is checked file by file against the original before it is called done.
Copies are APFS clones, so even gigabytes of transcripts take seconds and almost no extra disk until something changes.
The window counts runs of scheduled tasks separately from chats. A task that runs every twenty minutes leaves a session behind each time, so a raw count can be ten times the number of conversations you actually had.
One rule covers every file:
A chat is matched by its session file, so importing the same backup twice changes nothing the second time, and no chat is ever doubled. A chat you carried on after importing it keeps your newer turns.
The archive list, Cowork's artifacts and scheduled tasks are merged, not
replaced. MCP servers are added to ~/.claude.json unless one of the same
name is already there.
A backup of another account goes into the signed-in account's active workspace, which is the one Claude shows. A backup of the signed-in account itself goes back where it came from.
~/Downloads/claude-import-undo-<timestamp>/ at its original path.Everything happens on your Mac. The app makes no network requests — there is no networking code in it. Account e-mails are read from your own local files purely to label accounts in the window.
The one time anything is downloaded is the first run, when pip fetches
PySide6 from PyPI.
| Module | Responsibility |
|---|---|
app.py | Entry point — bootstraps the environment, opens the window |
storage.py | Finds accounts, workspaces and the signed-in account; counts chats |
identity.py | Resolves an account UUID to an e-mail and name |
backup.py | Makes and checks a backup folder |
restore.py | Validates a backup, plans an import, carries it out |
safety.py | Every write — containment, space, atomic placement, locking |
ui.py | The window |
.venv/bin/pip install pytest
QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest -q # 124 tests
Tests never touch real Claude data. They build a synthetic storage tree in a temp directory, including a planted token that must never reach a backup and damaged backups the importer has to refuse.
python3: command not found — install Python from
python.org or with brew install python.
The buttons are greyed out — Claude is still running. Press Quit Claude, or quit it yourself (⌘Q, and check it is not in the Dock).
"That is not a Claude Migrator backup" — choose the
claude-app-backup-… folder itself, not Downloads and not a folder inside it.
"The backup is incomplete" — a file was removed or changed since the backup was made, often by a partial copy between Macs. Copy the folder again, or make a new backup.
"Made by an older version" — folders named claude-backup-… come from the
previous version of this app. Make a new backup with Back Up.
Imported chats open empty — the chat came back but its transcript in
~/.claude/projects was already gone when the backup was made.
MIT — see LICENSE.
Not affiliated with Anthropic.