live, not committed
Git records commits; codrop mirrors your working folder in real time. An edit on the laptop shows up on the desktop about a second later — new files, changes, deletes.
Your working state, on every machine you own.
codrop keeps code, environments, and .env files in step across every machine you work from. Laptop, desktop, the box under the desk — pick one up and it's already where you left off. git pull is now decorative.
Unix-only: prebuilt binaries for macOS (Apple Silicon and Intel) and Linux x86-64. Install it on each machine you want in the set, then check it took with codrop --version.
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/termdx/Codrop/releases/latest/download/codrop-installer.sh | shmacOS · LinuxA recording of the boring miracle: save on one machine, open on the other.
codrop is a Rust daemon that watches a folder, content-addresses every change, and syncs it to your other devices over an encrypted peer-to-peer connection. Devices are identified and authenticated by public key, so you never deal with IP addresses — and it works across LAN, NAT, and hostile café Wi-Fi. It isn't a replacement for git. It's the layer underneath, where your half-finished branch and your .env file live.
Git records commits; codrop mirrors your working folder in real time. An edit on the laptop shows up on the desktop about a second later — new files, changes, deletes.
Devices talk directly, addressed and authenticated by Ed25519 public key. Connectivity escalates direct → hole-punched → relayed, so no server sits in the middle by default.
Vector clocks — not wall-clock time — order changes, so a newer edit is distinguishable from a concurrent one. One version wins the path; the other is kept under .codrop/conflicts/.
Files are split into content-defined chunks stored by hash, so a small edit to a large file transfers a chunk or two, and identical content is deduplicated across files and versions.
node_modules, .git, target, dist, build, and .next are excluded out of the box; gitignore syntax covers the rest. It's the escape hatch for secrets, too.
Exec bits and symlinks travel with the file, and deletes propagate as tombstones. The daemon leans on Unix process APIs, so Windows means WSL.
Git records commits. codrop mirrors your working folder in real time. Use both: git for history, PRs, and blame; codrop for the uncommitted stuff between commits — the state you'd otherwise shuttle around with git stash, a USB stick, or a desperate Slack file drop.
Not by IP address. Each folder has a stable endpoint id — run codrop id to print it — and pairing is mutual: run codrop pair with the other machine's id on both sides, then codrop run. More than two machines pair with each other to form a mesh.
No. node_modules, .git, target, dist, build, and .next are ignored by default. Anything else you want kept local goes in .codropignore, which takes gitignore syntax.
Traffic is end-to-end encrypted between devices you've explicitly paired, and a daemon only accepts trusted peers. Blobs are stored unencrypted at rest under .codrop/, though — so don't sync secrets to a device you don't control, and use codrop ignore to keep a file on one machine.
Prebuilt binaries for macOS on Apple Silicon and Intel, and Linux x86-64. Linux arm64 and musl build from source. Windows isn't supported — the daemon relies on Unix process and file-permission APIs — so it means WSL, give or take.
MIT. Read the source, fork it, run it on hardware we've never heard of.
Occasional notes on what codrop learned to sync this month. No drip campaign, no re-engagement emails.