carryon
Carries an AI coding agent's working life between machines: the Setup that makes an agent yours (settings, skills, subagents, instructions, plugin lists) and the History of what you did with it. Both are encrypted before they leave the machine.
Works with Claude Code, Codex CLI, Cursor and the ~/.agents skills
convention. A History moves for Claude Code and Codex.
Install
pipx install agent-carryon
uv tool install agent-carryon works too. The package is agent-carryon; the
command is carryon. You need macOS or Linux, Python 3.9 or newer, and
openssl, which both already have. carryon has no Python dependencies.
Two machines, five commands
You also need a Destination: somewhere both machines can reach. A synced folder (Dropbox, Google Drive, iCloud Drive, Syncthing) is the simplest. A private git repository or an rclone remote works too.
Every command that changes something prints a plan first and does nothing
until you add --apply. Run it without, read the plan, then run it again.
On the first machine
carryon init --dest ~/Dropbox/carryon
init checks the Destination works, stores a new master key in the OS
keychain, and prints your recovery key once:
Your recovery key - shown once, never stored by carryon:
R5EB-RK4X-YNQE-L2UN-2IFV-4F76-HWQY-KCDW
Put it in your password manager now. If every machine loses its key, it is the only way back into your Archive. There is no reset.
carryon push --apply
This seals your Setup and every Session into the Archive at the Destination. If the scan recognises a credential, push names the file and carries it encrypted:
Setup: pushed, encrypted (Claude Code)
possible secrets in 1 file, carried encrypted:
.claude/settings.json (anthropic-key)
History: 24 Sessions pushed (0 unchanged), 8 project memories pushed (0 unchanged)
carryon pair
pair prints a one-time code and the command to run on the other machine.
On the second machine
carryon init --join PRET-805J-98XQ-2NVD --dest ~/Dropbox/carryon
carryon pull --apply
Joining takes the master key from the Destination, wrapped under the code, so you never type or copy the key itself. The code works once, within 24 hours.
pull adds the Archive's Sessions to this machine's and replaces the Setup,
backing up anything it overwrites to ~/.carryon/backups/. It never deletes
anything, and it skips a file another tool owns, such as a dotfiles symlink,
and tells you which.
After that
carryon status # what is out of step, and the command that fixes it
carryon sync --apply # carry the History both ways: pull, then push
Nothing runs on its own; carryon has no background process. sync moves only
the History. After changing settings or skills, push the Setup deliberately
with carryon push --apply, and take it on the other machine with
carryon pull --apply.
If you lose a machine's key, run carryon pair on another machine and join
again. If no machine has the key, carryon init --recover takes the recovery
key.
More
- docs/trust.md: what is encrypted, what a Destination can and cannot see or do, the recovery key, and pairing.
- docs/guide.md: what moves for each agent, choosing what moves, every command, Destinations, conflicts, and what each refusal means.
- docs/development.md: tests, adding an agent, platform support, releasing.
- CONTEXT.md defines the terms, and docs/adr/ records the reasoning behind each decision.
Licence
MIT. Credential detection rules ported from
entangle
(MIT, © 2026 Gowtham Sai Yadav); see LICENSE.
Metadata
Release files for agent-carryon 0.2.1
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 | Actions |
|---|---|---|---|---|
| agent_carryon-0.2.1.tar.gz | 585.4 kB | With provenance | Details for agent_carryon-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| agent_carryon-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for agent_carryon-0.2.1-py3-none-any.whl |
Total release size: 859.7 kB
Release files / agent_carryon-0.2.1.tar.gz
| Download URL | agent_carryon-0.2.1.tar.gz |
|---|---|
| Size | 585.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77d0f3cda57048c7b3b9e7c276961a07839e49d6add04b6e95ef51e0915c7af0
|
|
BLAKE2b-256 checksum How to use checksums |
fe0feaeb3781cbf4b47f435ec3f26e9484a1ec88f2104fd3a19e9a361eebbb24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logRelease files / agent_carryon-0.2.1-py3-none-any.whl
| Download URL | agent_carryon-0.2.1-py3-none-any.whl |
|---|---|
| Size | 274.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6160285412a17a957796d3e17f28aba2006201b86fea0e4902adc4236905c365
|
|
BLAKE2b-256 checksum How to use checksums |
72bf35cd0ec4bc85d756a8a6531b1af5702e9d7ef9c09abeb7f6319a014c0498
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logSecurity for agent-carryon 0.2.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for agent_carryon-0.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logA 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.