Free forever · No account
Get ThreadKnot
Install it, point it at a folder, and it drives the agent CLIs already signed in on your machine. No Rust, no Node, no toolchain, nothing to configure and no keys to paste.
Linux
deb · rpm · AppImage
DownloadThe AppImage is the download-and-run answer on any distro, Arch included.
macOS
Apple silicon · dmg
DownloadAd-hoc signed rather than notarised, so the first launch needs right-click → Open.
Windows
Windows 10 and 11 · x64
DownloadThe installer is unsigned, so SmartScreen asks first: More info → Run anyway.
Also in every release
A headless binary, for a machine you never sit at
threadknot-headless is the same server without the desktop window. Run it, and it prints a LAN URL and an access token; open that from any browser on your network and you get the identical UI the desktop app shows, with real agent turns and no desktop session at all.
$ chmod +x threadknot-headless-linux$ ./threadknot-headless-linux
Installed copies update themselves: Settings → updates → check now, then one click installs over the old build and relaunches. Or build it from source.
Build from source
Rust and Node 22+, then three commands
$ git clone https://github.com/smith-network-solutions/threadknot.git$ cd threadknot$ npm install$ npx tauri build --no-bundle
Build with the Tauri CLI, as above. A plain cargo build --release produces a binary with no UI embedded. It tries to load the dev server and opens on a connection error, which looks like a broken build and is not one. On Linux you also need the webview toolchain: libwebkit2gtk-4.1-dev and friends. macOS needs the Xcode command-line tools; Windows needs the MSVC build tools.
Before you start
What ThreadKnot expects to find
- An agent CLI, signed in
- At least one of claude, codex or kimi installed and authenticated with your own account. ThreadKnot spawns them, it never asks for an API key. An agent you are not logged into simply shows as unavailable in the composer; nothing else breaks.
- Chrome, for the shared browser
- The browser workspace drives an isolated Chrome session. Skip it and everything else still works.
- A network the devices share, for phone and mesh
- Out of the box, nothing leaves your network: phone control and multi-machine pairing need the devices mutually reachable on the same LAN or tailnet. To reach a machine from outside that, there is the optional hosted relay.
