Skip to content

Standalone (Self-hosted)

Standalone mode runs ADHDev entirely on one machine. 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
  • Multi-machine fleets — one standalone server manages its own machine only

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 auth mechanism standalone has.

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 and ACP 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.