demon

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

  1. 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.

  2. 02

    Pair them once

    Run demon pair on 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.

  3. 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

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