claude-code-sync
Back up and restore your Claude Code configuration — skills, hooks, agents, keybindings, global CLAUDE.md, a redacted settings.json, and a plugin manifest. Never your history, sessions, or projects.
Docs: https://shawonashraf.github.io/claude-code-sync/
Quick start
Set up backups on the machine you already use:
uvx claude-code-sync init
Reproduce your setup on a new machine (one command):
uvx claude-code-sync restore https://github.com/you/claude-backup.git
The installed command is claude-sync (with claude-code-sync as an alias
— the PyPI name).
Or, you can use claude itself:
Clone the repo from https://github.com/shawonashraf/claude-code-sync which contains a sync tool for claude code and set it up on my computer. Ask questions about any choices you may have to make, such as directories, symlinks etc.
Commands
| Command | What it does |
|---|---|
claude-sync init [dest] |
Interactive setup: choose destination, git mode, auto-backup hook |
claude-sync backup |
One sync pass (no-op when nothing changed; commits in git mode) |
claude-sync restore [src] |
Restore from a directory or git URL; reinstalls plugins |
claude-sync status |
Destination, last backup, drift, pending conflicts |
claude-sync resolve |
Choose a version when two machines diverged |
claude-sync config [--auto-push|--no-auto-push] |
Show settings; toggle pushing after each backup |
claude-sync hook install|uninstall |
Manage the SessionEnd auto-backup hook |
What about secrets?
Env vars in settings.json whose names look sensitive (*KEY*, *TOKEN*,
*SECRET*, *PASSWORD*, *CREDENTIAL*) or whose values look like
credentials are emptied ("" — never a placeholder string, which Claude
Code would treat as a real credential) before anything leaves your machine.
claude-sync status lists what you need to re-supply after a restore.
Multi-machine use
Backups from several machines to one git repo can diverge. claude-sync never
merges on its own: it detects divergence, skips the automatic backup, and
claude-sync resolve lets you pick which version to keep. The losing
version stays in git history.
When the backup repo has a remote, init and restore turn on auto-push
so every backup commit is pushed right away. Change it any time with
claude-sync config --auto-push or --no-auto-push.
Metadata
Release files for claude-code-sync 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| claude_code_sync-0.1.2.tar.gz | 90.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claude_code_sync-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.1 kB
Release files / claude_code_sync-0.1.2.tar.gz
| Download URL | claude_code_sync-0.1.2.tar.gz |
|---|---|
| Size | 90.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7dcde69f90192390fad4499b4b25ef93b0b5a3a70138d45f8c7cba3e8449c78
|
|
BLAKE2b-256 checksum How to use checksums |
5dc51742d060e86027608cbeda5f8f99a4ed1d3517011fc58faf71835ee08781
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / claude_code_sync-0.1.2-py3-none-any.whl
| Download URL | claude_code_sync-0.1.2-py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ebb24bbb6dcc04edd61775755b62e21e509acae6e8f9ccbbb25291c468f302e6
|
|
BLAKE2b-256 checksum How to use checksums |
311b236f84967776a14bfde896464131dc2c50316a3d625f21a440a479a46188
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for claude-code-sync 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.