one agent · every computer
One agent on all your machines.
Demon is a single agent that can act on every computer you own. Install it on your laptop, your desktop, your server — then run one agent that holds tools on all of them at once. Ask it to pull a file off one machine and run it on another; it's the same agent, everywhere.
How it works
-
01
Install on each machine
A small daemon runs on every computer you want to control and exposes that machine's tools — shell, files, search — over authenticated connections.
-
02
Pair them once
Run
demon pairon a computer you've already set up and paste its single-use invitation on the new one. Secrets sync across the pair automatically, encrypted end to end. -
03
Run one agent, everywhere
Open the client and talk to a single agent. Every request names the computer it targets, so one conversation can reach across all of your paired machines.
Built for control
-
Direct by default
Your devices talk to each other over direct, authenticated Iroh connections whenever the network allows. When it doesn't, an end-to-end encrypted relay forwards messages between your devices.
-
End-to-end encrypted
Everything your machines say to each other is encrypted end to end. Nothing in the middle can read it.
-
A shared scratchpad
Your agents keep a shared note-taking space that stays synced across every one of your devices.
-
Targeted by design
Every tool call names its target machine, and both ends verify it before anything runs.
-
Works from home
Each machine has a home directory its agent works from by default, with the whole computer in reach when a task needs it.
-
Runs in the browser
The client is a WebAssembly app. Pair a browser to your machines and go.
Install
Apple Silicon macOS or Linux:
curl --proto '=https' --tlsv1.2 --fail --silent --show-error --location \
https://demon.town/install.sh | sh
Already set up? Run demon pair on one machine and paste the
invitation on the next — or open the app and pair a
browser.
NixOS and Home Manager
Nix owns the launcher and startup service. Demon's signed updater keeps the running agent current between Nix rebuilds.
Add Demon to your flake inputs
inputs.demon.url = "git+ssh://git@github.com/anchpop/demon";
Home Manager
Add the module to your Home Manager configuration:
modules = [
demon.homeManagerModules.default
{ services.demon.enable = true; }
];
Apply it, then set up this computer once:
home-manager switch
demon setup --deployment external
NixOS
Add the module and choose the account that runs Demon:
modules = [
demon.nixosModules.default
{
services.demon = {
enable = true;
user = "your-user";
};
}
];
Rebuild, then set up this computer once:
sudo nixos-rebuild switch --flake .#my-machine
sudo -u your-user demon --data-dir /var/lib/demon setup --deployment external