Skip to content

Standalone (Self-hosted) ​

Standalone mode runs ADHDev without any account, on a machine you control. It bundles the local dashboard, the local HTTP/WebSocket API, and the session-host runtime into a single process — no account, no cloud connection, no P2P, no TURN.

It is the AGPL-3.0 open-source surface of ADHDev, published as @adhdev/daemon-standalone.

When to use it ​

Standalone is the right choice when everything you want to control is on the machine in front of you — or on a machine you can reach directly over your own LAN.

It is not a self-hosted replacement for the cloud dashboard. Standalone deliberately does not include:

  • Push notifications — no approval, completion, or disconnect notifications to your phone
  • Remote access over the internet — there is no signaling server, so there is no connection from outside your network
  • Account-linked fleets and machines outside your network — standalone machines can pair with each other when they can reach each other directly (same network or Tailscale), but there is no cloud relay

Those are cloud features. If you want them, see Getting Started for the cloud daemon.

Start it ​

bash
npm install -g adhdev
adhdev standalone

adhdev standalone is a thin wrapper: it resolves and launches the @adhdev/daemon-standalone package, matching the npm channel your CLI came from. You can also run the OSS package directly:

bash
npm install -g @adhdev/daemon-standalone
adhdev-standalone

Or without installing anything globally:

bash
npx @adhdev/daemon-standalone

Then open http://localhost:3847.

What should happen: the dashboard loads and shows your local machine. There is no login screen — standalone has no accounts.

TIP

The publicly install-tested paths are macOS and Windows. Linux may work for standalone, but it has not been validated enough to present as a supported path.

Ports and binding ​

The standalone server serves the dashboard and the HTTP/WebSocket API from one port, 3847 by default, bound to 127.0.0.1 (loopback only).

bash
adhdev standalone --port 4000

LAN access ​

To reach the dashboard from another device on your network, bind an address other than loopback:

bash
adhdev standalone --host 0.0.0.0 --token <some-secret>

--host takes an explicit address — an IPv4 address, an IPv6 address, or localhost. There is no boolean form: a bare --host with no value, or an unrecognized value, is a visible startup failure rather than a silent bind you did not ask for.

WARNING

--host 0.0.0.0 (or the IPv6 any-address ::) binds every interface. Standalone has no authentication by default, so anyone who can reach the port gets full control of your agents. Always pair a public bind with --token. The server prints a warning at startup when you bind publicly without auth.

--token requires that token before the dashboard will connect. This is the only dashboard auth mechanism standalone has.

Pairing another machine into a mesh this daemon hosts needs the same kind of address: bind 0.0.0.0 or a LAN/Tailscale IP, not the default loopback. Mesh peers do not use the dashboard token; each authenticates with its own pairing secret. See Multi-Machine.

Flags ​

FlagPurpose
--port, -p <port>Port for the HTTP/WS server (default 3847)
--host, -H <address>Explicit bind address — IPv4, IPv6, or localhost (default 127.0.0.1)
--token <token>Require this token to use the dashboard
--devEnable DevConsole for writing and testing provider scripts
--public <path>Custom path to the dashboard distribution
--no-openDo not open the browser on startup
--help, -hShow usage

What works in standalone ​

Once the dashboard is up, the local agent surface behaves the same as in cloud mode:

  • Detecting and launching CLI agents
  • Reading chat, sending messages, and answering approval prompts from the dashboard
  • Session listing, switching, and the terminal view
  • The MCP server in local mode, which talks to http://localhost:3847

Standalone vs cloud ​

StandaloneCloud
Account requiredNoYes
TransportDirect HTTP/WS on your machineP2P WebRTC, with TURN for blocked NATs
Reachable from the internetNoYes
Machines per dashboardOnePlan-dependent
Push notificationsNoYes
AuthOptional --tokenOAuth, API keys, machine secrets
LicenseAGPL-3.0Proprietary

Deeper configuration ​

The OSS repository carries the reference documentation for standalone internals — password auth, saved host defaults, local config file locations, the local API surface, and the session-host runtime:

Hosted cloud docs live here. Open-source and self-hosted docs live in the OSS repository.