Use this skill when running a Docker Agent with `docker agent run`, choosing a safety/approval mode, using the `--sandbox` isolation flag, setting up aliases, or troubleshooting a run (missing credentials, worktrees). Even if the user just says they want to "run my agent", "make my agent auto-approve tool calls", "run this agent safely", or "why can't my agent see my API key", this skill applies. Covers `--safety` (strict/balanced/restricted/autonomous), `--yolo`, `--sandbox` and its network allowlist, `--worktree`, `docker agent alias`, and `docker agent doctor`.
npx skills add https://github.com/docker/skills --skill docker-agent-run
This skill owns the operational side of Docker Agent: invoking `docker agent
run` against a local config, an alias, or a registry reference; choosing how
much autonomy the agent gets over tool calls; isolating it in a sandbox VM;
and diagnosing why a run fails. It assumes the agent.yaml already exists —
see Related skills for authoring it.
Activate this skill when:
--exec).--safety, --yolo, or approval behavior for tool calls.--sandbox, or hit a sandbox network-policy error.docker agent alias), a scoped git worktree (--worktree), or is debugging credentials/model availability (docker agent doctor).Do not use this skill when:
sbx run/create/stop/rm rather thandocker agent run --sandbox — use docker-sandboxes-lifecycle.
sbx policy or sbx secret configuration — usedocker-sandboxes-network-credentials. Establish which CLI is in use
before recommending commands when the request only says "my sandbox".
agent.yaml itself (models, toolsets, sub_agents) — use docker-agent-config.serve), sharing it via a registry (share), or evaluating it (eval) — use docker-agent-deploy.docker agent run supports four --safety modes; choose the leastpermissive one that still lets the task finish:
strict — ask for approval before every tool call.balanced — auto-approve calls classified as safe, ask for the rest.restricted — auto-approve safe calls, deny the rest outright. Usefor unattended/CI runs where no human can answer a prompt.
autonomous — approve everything automatically. Equivalent to --yolo.autonomous/--yolo. Use restricted for unattended runs so an
unexpected tool call fails closed instead of running unreviewed; reserve
autonomous/--yolo for a sandboxed or fully trusted interactive session.
# CI-safe: unreviewed tool calls are denied, not silently approved.
docker agent run --exec --safety restricted ./agent.yaml "Triage the failing test"
and note that an explicit CLI --safety/--yolo on docker agent run
still overrides the alias:
docker agent alias add safe-coder myorg/coder --safety balanced
--sandbox runs the agent inside an isolated microVM managed by the sbxCLI (a separate prerequisite — install and configure it first). All shell,
filesystem, and process activity started by built-in toolsets happens
inside the VM; only the working directory (and, unless --no-kit, a
staged "kit" of skills/prompt files) is mounted in. Exception: a local
stdio MCP server declared on the agent runs as a host process outside
the sandbox VM — treat any such MCP server as a trusted host integration,
not a sandboxed one.
docker agent run --sandbox ./agent.yaml
models.dev, and hosts the toolset resolver can infer are open. A custom
MCP server or third-party API often needs an explicit allowlist entry —
add it permanently rather than re-discovering it every run:
docker agent sandbox allow api.example.com
docker agent sandbox list
docker agent sandbox deny api.example.com
runtime: {sandbox: true} into the agent's own agent.yamlover remembering --sandbox on every invocation of that agent; an
explicit --sandbox=false on the CLI still overrides the config default
for a single debug run.
they are not torn down when the session ends. Don't expect a clean VM on
every run; if you need one, change the mount set (e.g. a new kit) to force
recreation.
docker agent alias add code myorg/notion-expert
docker agent run code
docker agent run discoversdocker-agent.yaml, then docker-agent.yml, then docker-agent.hcl in
the current directory (first match wins). Only if none exists does it
resolve the default alias, falling back to the built-in default agent.
The agent.yaml examples in these skills pass a filename explicitly;
agent.yaml is not an auto-discovery name.
default alias. To select it even when a project config exists, pass
default explicitly:
docker agent alias add default ./my-agent.yaml
docker agent run default
docker agent run <alias> always override the alias's ownstored options (e.g. docker agent run yolo-coder --yolo=false).
--worktree (-w) to isolate an agent's file edits from your currentcheckout — it runs the agent inside a fresh git worktree. For an
interactive session, a clean worktree (no uncommitted changes,
untracked files, or new commits) is removed automatically when the
session ends; one with work prompts you to keep or remove. A headless
run (--exec) never auto-cleans its worktree, regardless of state — it is
left in place for inspection:
docker agent run ./agent.yaml --worktree=auth-refactor --worktree-base origin/main
--worktree cannot be combined with --remote or --sandbox. To resume aworktree run, pass --session -1 (or the session id) — do not re-pass
--worktree, which fails because the worktree already exists.
agent's provider has no usable credential, or (for dmr/) the model
hasn't been pulled. Run docker agent doctor ./agent.yaml first — it
reports the resolved model/provider and whether credentials were found —
before touching the YAML. If credentials are missing, export the provider's
API key; if a DMR model is missing, run docker model pull <model>. Rerun
doctor before retrying the task.
missing the tool it needs (add type: shell or type: todo in
agent.yaml), not a model failure — hand this back to docker-agent-config.
403 Blocked by network policy error inside a sandbox run means thedestination isn't allowlisted; use docker agent sandbox allow <host>.
sbx lifecycle commands, use docker-sandboxes-lifecycle.sbx policy and sbx secret, use docker-sandboxes-network-credentials.agent.yaml (models, toolsets, sub_agents), use docker-agent-config.docker-agent-deploy.references/safety-and-sandbox.md — full safety-mode/flag interaction table and sandbox trust-boundary details.references/sources.md — provenance of every rule in this skill.checks/verification.md — Verification runbook for a docker agent run invocation.Take docker/docker-agent-run from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.