Docker is the same AgentX daemon as the Linux packages — system mode in a box. One container, one enrollment, many agents inside. Works on Mac, Windows, and Linux with Docker Desktop or Docker Engine. Your work stays on volumes you mount; the public Hub image is the daemon and the AgentX CLI (slim — no vendor agent CLIs yet).
agentx-daemon and agentx only. Install Claude Code, Codex, Grok CLI,
or others on the host or into a derived image when you need them. Model keys stay yours.linux/amd64. On Apple Silicon,
Docker Desktop can run that image via emulation; a native arm64 multi-arch
image is planned.The container is always Linux. On Mac and Windows, Docker Desktop runs that Linux
image for you. Commands below pull agentxhq/agentx-daemon:latest for a first
smoke on the default console port. Pin a version tag when you want a fixed build.
Install Docker Desktop for Mac,
start it, and wait until the engine is running. Today’s Hub image is
linux/amd64 — Intel Macs run it natively; Apple Silicon runs it through
Docker’s emulation until we publish multi-arch.
docker pull agentxhq/agentx-daemon:latest
docker run -d --name agentx --restart unless-stopped \
-p 127.0.0.1:3333:3333 \
-v agentx-data:/var/lib/agentx \
-v agentx-root:/root \
-v agentx-home:/home \
agentxhq/agentx-daemon:latest
Three named volumes: daemon database, root home (agent workspaces), and
/home for Unix users you add later.
open http://127.0.0.1:3333/console
Or open http://127.0.0.1:3333/console in the browser.
Logs: docker logs -f agentx.
Install Docker Desktop for Windows with the WSL 2 backend enabled. Use PowerShell or Windows Terminal once Docker reports running.
docker pull agentxhq/agentx-daemon:latest
docker run -d --name agentx --restart unless-stopped `
-p 127.0.0.1:3333:3333 `
-v agentx-data:/var/lib/agentx `
-v agentx-root:/root `
-v agentx-home:/home `
agentxhq/agentx-daemon:latest
Backticks are PowerShell line continuations. In cmd.exe use a single line, or
^ continuations.
start http://127.0.0.1:3333/console
Or browse to http://127.0.0.1:3333/console.
Logs: docker logs -f agentx.
Install Docker Engine for your distribution
(from Docker’s docs,
or Docker Desktop on a workstation. Your user needs permission to talk to the Docker socket
(often membership in the docker group).
docker pull agentxhq/agentx-daemon:latest
docker run -d --name agentx --restart unless-stopped \
-p 127.0.0.1:3333:3333 \
-v agentx-data:/var/lib/agentx \
-v agentx-root:/root \
-v agentx-home:/home \
agentxhq/agentx-daemon:latest
Prefer a native package install on bare metal servers? Use the Debian / Ubuntu / Arch packages instead.
xdg-open http://127.0.0.1:3333/console
Or open http://127.0.0.1:3333/console.
Health: curl -sS http://127.0.0.1:3333/readyz.
3333, set
-e AGENTX_SURFACES_WEB_PUBLIC_URL_OVERRIDE=http://127.0.0.1:<port>
so claim redirects return to the URL you actually open.:3334 inside the container —
MCP and the CLI talk to the daemon on the container network only.The image runs as root inside the container — that is deliberate multi-user
mode, the same as agentx-server on bare metal. Root on the container is not
root on your laptop unless you escalate Docker itself.
SQLite, identity, enrollment. Named volume agentx-data.
Survives container recreate.
Agents that run as root use /root/.agentx/<Name>.
CLI auth files live under /root too. Volume agentx-root.
Homes for users you create for run_as. Volume agentx-home.
The create-agent picker lists Unix accounts inside the container that have a
real login shell and a home directory. Create users with useradd; they land on
the /home volume and persist across image upgrades.
docker exec -it agentx useradd -m -s /bin/bash alice
docker exec -it agentx id alice
Then create an agent in the console and set Run as to alice.
Workspace defaults under /home/alice/.agentx/<AgentName>.
docker exec agentx getent passwd | cut -d: -f1,6,7
Accounts with shells like nologin or false are omitted from the picker.
/usr/local/bin/agentx-daemon and
agentx (plus agentx-browser → agentx). Vendor agent
CLIs are not on the public slim image yet.docker volume rm agentx-data agentx-root agentx-home.docker pull agentxhq/agentx-daemon:latest
docker rm -f agentx
docker run -d --name agentx --restart unless-stopped \
-p 127.0.0.1:3333:3333 \
-v agentx-data:/var/lib/agentx \
-v agentx-root:/root \
-v agentx-home:/home \
agentxhq/agentx-daemon:latest
Reuse the same volume names so enrollment and workspaces come back.
To pin a build, replace :latest with a version tag from
the Hub tags list.
docker rm -f agentx
Volumes remain until you delete them explicitly.