Quick start
This walks through a first project in about five minutes. Replace
you@server with your ssh destination (an alias from ~/.ssh/config
works too).
1. Connect a project
cd ~/code/myproject
devsync init you@server:~/myproject
This writes .devsync.toml (commit it if your team shares the remote; it is
never sent to the remote) and, if the project uses git, adds .devsync/ to
.gitignore.
If the remote folder already has the project, your first sync downloads it into this folder before sending anything back.
2. Check the setup
devsync doctor
doctor checks the config and the ssh login, uploads the agent if needed,
plans a sync, and runs a test command on the remote. It explains every
failure.
3. Run something
devsync exec -- python3 --version
devsync exec -- pytest -x
Each exec:
- sends files that changed since the last sync,
- runs the command on the remote in the directory matching your current one,
- streams the output and returns the remote exit code,
- copies back files the command created or changed.
Run it from a subdirectory and the command runs in the same subdirectory on the remote.
4. Keep the remote up to date while you edit
devsync watch
Every save is pushed within a second. If the network drops, watch keeps
running and sends the queued changes once the link is back.
5. Long-running work
devsync submit -- python train.py --epochs 50
devsync logs
submit returns immediately with a job id. The job keeps running on the
remote even if your laptop sleeps or the network drops. devsync logs
follows it; press Ctrl-C to detach. Results are kept in
.devsync/jobs/<id>/output.log.
6. Let your coding agent use the remote
devsync setup claude
After restarting Claude Code, when it runs tests, builds or installs, those commands run on the remote automatically. See Coding agents.
Next
- Change what gets synced: Syncing files
- All options: Configuration
- Something wrong? Troubleshooting