KNOT · MACOS + LINUX

Your code.
Your machines.
No middleman.

Knot watches the folders you pick. When you stop saving for ten seconds, it makes a real commit and sends it to every machine you paired with.

If pushing to GitHub already works for you, you probably do not need this.

Knot, peer-to-peer version control
Knot desktop dashboard, showing protected folders, paired devices, lifetime saves and this week's activity
01 HOW IT WORKS

Pairing is the only fiddly part

01

The folder

Any folder works. You tell Knot once, and from then on it is a real git repository.

02

The peers

The other person installs Knot too. You generate a one-time pairing code, send it however you normally send things, and then both machines show a confirmation that has to be clicked at both ends.

03

The save

You save, and Knot does the commit and the push.

02 DAY TO DAY

What Knot does once it is running

Built and tested on two machines, a MacBook and an HP EliteBook running Ubuntu: first over Wi-Fi, then over Tor between two different networks, which is where it first worked end to end, in May 2026.

🤝

Both machines, the same merge commit

On 27 August 2026 two paired peers whose histories had diverged merged over Tor four seconds apart, with nothing coordinating them, and both landed on the identical merge commit. About 198 seconds end to end.

💾

Saves become synced commits

Ten seconds after your last save in a folder, the change is a real git commit, and it goes out encrypted end to end to every paired machine. Neither end has to open a router port for that.

🪢

Real git underneath

Knot uses git's real object format, so git log, git diff and git branch all still work, and so does anything else you already point at the folder.

🧾

What a commit carries

The authoring device is written into the commit itself, so every machine that gets the commit sees it. The signature and the agent-session record are still in refs/notes, which does not replicate, so for now the full chain can only be produced on the machine that made the commits. Moving both into the commit is in progress.

SOLO · your laptop and your home server TEAMS · one pairing code per person, no seats to buy ENTERPRISE · code stays inside the network; agents are scoped by path

For AI agents, one knot map --tokens 1500 call gives the agent a map of the repo, instead of reading five or more files. On a 56-file repo the agent had never read, that measured ≥3.4× fewer tokens. You can run the comparison on your own machine.

03 INSTALL

Install it

Free, for macOS and Linux. There is no Windows download yet. The command line and the daemon now build and run on Windows, and Tor starts there, but a commit has not yet been sent between Windows and another machine, and that is the test every release has to pass first. The macOS build is not notarized either, so the first open is blocked; clearing it takes one command, below.

The installation guide covers macOS, Linux, verifying your download, and your first synced save.

Also on the VS Code Marketplace Same daemon as the app, driven from the editor sidebar instead of a second window.
Versionv1.0.2 · build 20260826.2319
macOSIntel, and Apple Silicon via Rosetta · .dmg
Linuxx86_64 · .deb (Ubuntu 20.04+, Debian 11+)
SHA-256 mac8eb0f6d2d57340e379c878b63077a1a4cb37963e9d7d44764e6a7c1deab9aa84
SHA-256 linux7e64c9aebca4b57a9e4e9ec0bff2e517ace921681b7da1779aa7c03d6223f938
+ First-run steps (macOS & Linux)
macOS

macOS blocks the first open. You clear that once, and any of these does it:

  • Most reliable (any macOS): open Terminal and run
    xattr -dr com.apple.quarantine "/Applications/Knot.app"
  • Or open Knot once (it's blocked), then System Settings → Privacy & Security → “Open Anyway”.
  • Older macOS (pre-Sequoia): right-click Knot → Open → Open.
Linux

Tor and the on-device AI runtime ship inside the package. apt handles the dependencies, the systemd unit and upgrades.

sudo apt install ./knot-vcs-amd64.deb
systemctl --user enable --now knot-vcs
knot-app           # or `knot solo` in any folder

Current Ubuntu ships no GUI that installs a local .deb file; App Center is snap-only, and that is Ubuntu-wide, every vendor's .deb included. Details in the installation guide.

Not being notarized does not change where your code goes.

Full release history: changelog. Bug reports and use cases both welcome: Get in touch.

04 ARCHITECTURE

How a commit gets to the other machine

For a while every push shipped the whole history again, because the base commit was taken off a list that git sorts by branch name, and genesis always sorted first. The cryptography was the easy part: Ed25519 identities, mutual authentication, a Tor circuit carrying nothing but encrypted bytes, and real git objects at both ends.

Knot architecture diagram A developer hits save on their machine. The Knot daemon notices the change, makes a real git commit, and pushes that commit as an encrypted git pack directly over Tor to every paired teammate. The teammate's daemon verifies the signature, imports the pack, and the new commit shows up in their local git log, quickly on a shared network and slower over Tor. No GitHub, no central server, no cloud account, no manual push. YOUR LAPTOP Hit save in editor Daemon sees the change Real git commit (signed) DEVICE BOUNDARY Encrypted git pack PEER-TO-PEER · NO MIDDLEMAN TOR · .onion ED25519 MUTUAL AUTH Both sides prove identity ON THE WIRE Encrypted bytes only Relays carry, never read TEAMMATE'S LAPTOP Encrypted git pack DEVICE BOUNDARY Verify + import pack New commit on disk Shows in `git log` NOT IN THE PICTURE No GitHub · No central server · No cloud account · No `git add` · No `git push`
A save in your editor becomes a real git commit on your machine, encrypts as a git pack, travels over Tor directly to every paired teammate, and shows up in their local git log. Nothing passes through GitHub or any server in between, and nobody runs a push command.

Whispr's messages go over the same Tor primitives. None of the cryptography was invented for Knot: it is Tor's, and the Ed25519 that OpenSSH ships.

05 FAQ

Safety, servers, git, and the offline case

+ Is Knot safe?

Both sides prove who they are with Ed25519 mutual authentication before any code is sent. The connection runs over Tor (.onion hidden services), so it is encrypted end to end and relays only see ciphertext. Pairing a new device needs a confirmation click on both machines. The primitives are the ones Signal, Tor and OpenSSH ship; the code wiring them together has not been reviewed by anyone outside this project, which is one person in Würzburg.

+ Does Knot use a server?

No. Code transfer is always peer-to-peer, through Tor circuits. There is an optional small "coordinator" that helps peers find each other across the internet, but it never sees a byte of your code, only "peer X hosts project Y." You can run it on a $35 Raspberry Pi, or skip it entirely.

+ Do I still get to use git?

Yes. Knot uses git's real object format, so a Knot folder is also a real git repository. git log, git diff, git branch, git checkout, all work. When two histories diverge Knot merges them for you, and because the merge commit is built deterministically both machines end up on the identical one. If the same lines conflict, or the incoming changes would overwrite edits you have not committed, it stops and parks the incoming side for you to resolve in plain git.

+ What if my collaborator is offline when I save?

Nothing transfers until they come back online, same as any peer-to-peer protocol. Your commit stays on your machine and goes out when their daemon reconnects. An always-on third peer helps here: a home server or a $5/month VPS running the same free build.