pi-sync
pi-sync keeps your pi agent config the same across hosts. It copies the
declarative parts of ~/.pi/agent to another machine over rsync, and it reads
your ssh config, so the aliases in ~/.ssh/config work as host names.
pi-sync tinfoil # copy config and extensions to tinfoil
pi-sync --config laptop # copy only models.json and settings.json
pi-sync --pull --all tinfoil # copy tinfoil's config back to this machine
pi-sync --dry-run --all a b # report what would change, without copying
pi-sync update # update pi-sync itself
install
pipx install pi-sync-cli
The PyPI package is pi-sync-cli, and it installs the pi-sync command.
uv tool install pi-sync-cli works the same way.
To install from source, run:
pipx install git+ssh://git@github.com/say4n/pi-sync
pi-sync requires Python 3.10 or later.
what syncs
pi-sync copies the declarative parts of the agent directory, and nothing else.
| group | what it copies |
|---|---|
--config |
models.json and settings.json |
--extensions |
the extensions/ directory |
--auth |
auth.json, which holds API keys. This group is opt-in, and pi-sync warns you before it copies secrets. |
--all copies --config and --extensions. It is the default when you pass no
group flag.
pi-sync leaves host-local state alone: sessions/, npm/, models-store.json,
ayu/, bin/, and trust.json stay where they are.
flags
| flag | effect |
|---|---|
--all, --config, --extensions, --auth |
set what pi-sync copies |
--pull |
copy from the host to this machine instead of the other way |
--delete |
make extensions/ match the source exactly, including deletions |
--dry-run |
report changes without copying anything |
-x, --exclude PATTERN |
skip files that match the pattern. Repeat the flag to add more patterns. |
--install |
install pi on hosts that do not have it, without prompting |
--uninstall |
remove pi from the host instead of copying config. Your config stays. |
--update-pi |
update pi on each host before copying config |
--local-dir |
set the local agent directory. The default is $PI_CODING_AGENT_DIR, or ~/.pi/agent. |
--remote-dir |
set the agent directory on the host. The default is ~/.pi/agent. |
-v, --verbose |
print each rsync command and its output |
To copy to more than one host, pass more than one name: pi-sync a b c. The
command exits with a non-zero status when it cannot copy to a host. Each file
pi-sync overwrites on the destination is kept beside the new one as
<name>.backup.
developing
For the layout, the tests, and the release process, see DEVELOPMENT.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pi_sync_cli-0.5.2.tar.gz.
File metadata
- Download URL: pi_sync_cli-0.5.2.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","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":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65345678fae6b892e74a41ab50595d20394f074b1c410160c9f203b32c6ce68b
|
|
| MD5 |
da07ef8837cc44b2036ba633b5cac064
|
|
| BLAKE2b-256 |
39a27ad1a2fcb5eeea1ff99b18579fb43792fea3c35cc231c3e795be76e35aa5
|
File details
Details for the file pi_sync_cli-0.5.2-py3-none-any.whl.
File metadata
- Download URL: pi_sync_cli-0.5.2-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","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":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7219022e1e4ee134fe91d8cbd2ecb79a6c911b164bb1c233c034411d3910501d
|
|
| MD5 |
b33e977f4f9c70f02c41f22c413806dc
|
|
| BLAKE2b-256 |
5e9288561e8e0661c2f6a8b84e7a4bd6f6a018346c173ab48207d4651a43fe63
|