Use case
The same ~/Code on every machine
Keep one ~/Code tree in sync across a laptop, desktop, and remote box, including uncommitted and untracked work. No commit-to-move dance, no re-clone.
Who this is for
Search intent: sync code between machines.
You work across a laptop, a desktop, and maybe a remote box. The code is the same; the friction is moving between them. You commit half-finished work just to pull it on the other machine, or you sit down and cannot remember which one had the latest edits.
Before and after
The status quo, and what changes once bowline is keeping this workspace in sync.
Today
- You commit or stash work-in-progress just to move it, then unpick the noise from your history later.
- Untracked files, local notes, and .env never make the trip, so the second machine is subtly not the first.
- "Which box had the latest work?" is a question you answer by guessing.
- A new machine means re-cloning every repo and re-authenticating every tool before you can start.
With bowline
- Sit down at any trusted machine and your ~/Code is already current, down to the file you were editing.
- Uncommitted and untracked work travels too, so the second machine is the same as the first, not a clean-room copy.
- Git history stays clean: you commit when the work is done, not to shuttle it around.
- node_modules and caches stay local and regenerate; they don't cross machines to rot.
The setup
Install once, approve the device, and open the folder. No manifests and no keys to copy between machines.
curl -fsSL https://install.bowline.sh | shInstall on the first machine, then bowline login.
bowline connect desktopApprove the second machine once; ~/Code appears before every byte lands.
cd ~/Code/acme/web && git statusSame branch, same uncommitted diff, same untracked files as the machine you left.
What makes it work
The bowline capabilities that carry this workflow.
Real local directories on each machine, so your editor, shell, and Git behave exactly as before.
Working state syncs, not just commits: uncommitted edits, untracked files, and config all travel.
Offline divergence becomes a recorded conflict with both versions kept, never a silent last-writer-wins.
bowline status shows which projects are current before you start work.
Common questions
Short answers to the questions this setup raises first.
Is this just Dropbox or Syncthing pointed at my code folder?
No. bowline understands code: node_modules and caches don't cross machines and regenerate locally, lockfiles are respected, and offline divergence is recorded as a conflict with both versions kept instead of a silent overwrite.
Do my uncommitted changes actually move between machines?
Yes, and that is the point. Uncommitted edits, untracked files, and local config are part of the working state bowline syncs, so you don't commit half-done work just to move it.
What happens if I edit the same file on two machines while offline?
bowline records an explicit conflict and keeps both versions. You resolve it with a clear review step; nothing is silently overwritten.
How many machines can I connect?
The Solo tier covers up to three trusted devices. Pro removes the limit for unlimited devices and agent hosts.
Your ~/Code, on every machine and every agent.
Install bowline and your projects follow you. It just works.
curl -fsSL https://install.bowline.sh | shmacOS app · Linux CLI. Then run bowline login.