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-updates.nauseam.workers.dev/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.

declarative install

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 = "github: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