Enough to route a package to the right devices and show your dashboard. Nothing about what is inside.
syncport carries your uncommitted work, your .env and other ignored files, and the agent session to your other device. Continue in the same agent, or hand it to a different one.
- 01
npm i -g syncportonce - 02
syncport setuponce per device - 03
syncport handoffwhen you leave - 04
syncport continuewhere you arrive
hand this off. No relay wanted? Use direct SSH.
Start in Codex. Continue in Claude Code.
Or Cursor, or Hermes, or the same one.
Hand off to the same agent and the native session resumes. Hand off to a different one and syncport writes a brief into its context: the goal, where it stopped, the recent conversation and the changed files.
- Goal
- Where it stopped
- Recent conversation
- Changed files
Different agent: syncport writes a handoff brief into the receiving agent's context, so it starts with the goal, the last steps and the diff.
The relay carries it.
Only your devices can open it.
Every handoff is encrypted with age for each of your devices and signed by the sender with Ed25519.
syncport continue --from desktop.Your Mac, your laptop,
a Linux VPS, a Mac mini.
Pair two devices over SSH or your tailnet and hand off directly, with nothing stored in between.
syncport sync laptopOne static binary. A server needs no Node.js: install it with one line and run syncport setup.
curl -fsSL https://syncport.live/install.sh | shEverything you need travels.
Logins and build output stay.
Encrypted for your devices, signed by the desktop. Agent memory and project settings come along.
Take it with you.
macOS and Linux, arm64 and amd64. Needs Git. Sign in with Google once per device.
or curl -fsSL https://syncport.live/install.sh | sh