Run Termlings as a full Docker-native workspace with its own shell, auth, browser runtime, and project workspaces.
If you do not want a full Docker workspace, Termlings also supports opt-in Docker hardening for spawned agents only:
termlings spawn --all --docker
termlings --spawn --dockerThat keeps the normal host workflow unchanged unless you explicitly ask for Docker-backed agent spawning.
bash <(curl -fsSL https://termlings.com/docker.sh)This writes a local control directory at ~/termlings-docker, builds the image, starts the container, and opens a shell inside it.
If you already have host auth on your machine, the hosted bootstrap will also seed:
~/.claude/.credentials.json~/.codex/auth.json
into the container volumes automatically when those files exist.
From this repo:
docker compose up -d --build
./scripts/docker-seed-auth.sh
./scripts/docker-shellUse the repo-local setup when you want to validate the checked-in Docker files directly.
The Docker workspace installs the real CLIs directly:
termlingsclaudecodexagent-browser- system
chromium - Bun
- Node.js / npm
- Git and common terminal tools
It does not depend on host-side wrapper scripts such as .superset/bin/*.
State is kept in Docker volumes instead of bind-mounting your host repo by default.
Persisted paths:
/workspaces/home/termlings/.claude/home/termlings/.codex/home/termlings/.agent-browser
This keeps projects, auth, and browser state inside Docker.
Inside the container:
claude auth login
codex login
cd /workspaces
mkdir my-project
cd my-project
termlings init
termlings --spawntermlings init requires at least one installed and authenticated coding runtime. The Docker image preinstalls both claude and codex, so only login is needed.
If interactive claude auth login hangs inside Docker after you finish auth in the browser, seed host auth instead:
./scripts/docker-seed-auth.shThat copies your existing host Claude and Codex auth files into the container volumes.
The Termlings browser CLI uses agent-browser, so the Docker image includes it and points it at system Chromium:
AGENT_BROWSER_EXECUTABLE_PATH=/usr/bin/chromiumThat avoids downloading a second bundled browser into the image.
Managed Termlings agent spawning supports both Claude Code and Codex.
Hosted bootstrap:
cd ~/termlings-docker
./docker-shellRepo-local bootstrap:
./scripts/docker-shellChange the hosted bootstrap control directory:
TERMLINGS_DOCKER_DIR=/path/to/termlings-docker bash <(curl -fsSL https://termlings.com/docker.sh)Skip auto-opening a shell after the hosted bootstrap finishes:
TERMLINGS_DOCKER_NO_SHELL=1 bash <(curl -fsSL https://termlings.com/docker.sh)Skip automatic auth seeding from host credentials during the hosted bootstrap:
TERMLINGS_DOCKER_SKIP_AUTH_SEED=1 bash <(curl -fsSL https://termlings.com/docker.sh)Stop the repo-local or hosted workspace from its control directory:
docker compose downRemove the workspace and persisted Docker state:
docker compose down -v