{
  "id": "docker-agent",
  "name": "Docker Agent",
  "homepage": "https://docs.docker.com/ai/docker-agent/",
  "description": "Agent Builder and Runtime by Docker Engineering",
  "executables": [
    "docker-agent"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/cagent/config.yaml"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Run an agent",
    "description": "Run a Docker Agent configuration interactively or headless. Sandbox, worktree, hook, remote and recording options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "run"
        ],
        "label": "Run an agent",
        "source": [
          {
            "id": "cli",
            "kind": "help",
            "url": "https://docker.github.io/docker-agent/features/cli/",
            "evidence": "$ docker agent run [config] [message...] [flags]\n-a, --agent <name>\nRun a specific agent from the config\n--yolo\nAuto-approve tool calls (unless explicitly denied). Legacy alias for --safety autonomous.\n--safety <mode>\nSafety mode for tool approval: strict (ask for everything), balanced (auto-approve safe calls), restricted (auto-approve safe calls, deny the rest), or autonomous\n--model <ref>\nOverride model(s). Use provider/model for all agents, or agent=provider/model for specific agents.\n--session <id>\nResume a previous session. Supports relative refs (-1 = newest by creation time)\n--prompt-file <path>\nInclude file contents as additional system context (repeatable)\n--dry-run\nInitialize the agent without executing anything (useful for validating a config)\n--lean\nUse a simplified, non-alternate-screen TUI.\n--working-dir <path>\nSet the working directory for the session (applies to tools and relative paths).\n--json\nOutput results as newline-delimited JSON (use with --exec); with --last, output only the final answer as a JSON value\n--last\nPrint only the final agent answer after all turns finish (requires --exec)\n-d, --debug\nEnable debug logging\ndocker agent run --exec [config] [message...] [flags]\n$ docker agent run agent.yaml --model anthropic/claude-sonnet-4-5\n"
          }
        ],
        "field": [
          {
            "id": "config",
            "label": "Agent config",
            "description": "A .yaml, .yml or .hcl file; omit to use docker-agent.yaml in the current directory or the built-in agent.",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "cli"
            ]
          },
          {
            "id": "messages",
            "label": "Messages",
            "description": "Queued in order; each is processed in sequence.",
            "type": "string",
            "position": 1,
            "multiple": true,
            "sources": [
              "cli"
            ]
          },
          {
            "id": "exec",
            "label": "Non-interactive (headless)",
            "type": "boolean",
            "option": [
              "--exec"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "agent",
            "label": "Agent name",
            "type": "string",
            "option": [
              "--agent",
              "-a"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "model",
            "label": "Model override",
            "description": "provider/model, or agent=provider/model.",
            "type": "string",
            "option": [
              "--model"
            ],
            "suggestions": [
              {
                "value": "anthropic/claude-sonnet-4-5",
                "label": "Anthropic Claude Sonnet 4.5"
              },
              {
                "value": "openai/gpt-4o",
                "label": "OpenAI GPT-4o"
              }
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "safety",
            "label": "Tool approval mode",
            "type": "enum",
            "option": [
              "--safety"
            ],
            "choices": [
              {
                "value": "strict",
                "label": "Strict (ask for everything)"
              },
              {
                "value": "balanced",
                "label": "Balanced (auto-approve safe calls)"
              },
              {
                "value": "restricted",
                "label": "Restricted (deny the rest)"
              },
              {
                "value": "autonomous",
                "label": "Autonomous"
              }
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "yolo",
            "label": "Auto-approve tool calls",
            "type": "boolean",
            "option": [
              "--yolo"
            ],
            "effect": "exec",
            "sources": [
              "cli"
            ]
          },
          {
            "id": "session",
            "label": "Resume session",
            "description": "Session id or relative ref such as -1 for the newest.",
            "type": "string",
            "option": [
              "--session"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "prompt_file",
            "label": "Extra context files",
            "type": "path",
            "option": [
              "--prompt-file"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "multiple": true,
            "sources": [
              "cli"
            ]
          },
          {
            "id": "working_dir",
            "label": "Working directory",
            "type": "path",
            "option": [
              "--working-dir"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "cli"
            ]
          },
          {
            "id": "last",
            "label": "Only the final answer",
            "description": "Requires headless mode.",
            "type": "boolean",
            "option": [
              "--last"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "json",
            "label": "JSON output",
            "type": "boolean",
            "option": [
              "--json"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "dry_run",
            "label": "Validate only",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "lean",
            "label": "Lean inline TUI",
            "type": "boolean",
            "option": [
              "--lean"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "debug",
            "label": "Debug logging",
            "type": "boolean",
            "option": [
              "--debug",
              "-d"
            ],
            "sources": [
              "cli"
            ]
          }
        ],
        "task": [
          {
            "id": "interactive",
            "label": "Interactive session",
            "fields": [
              "config",
              "messages",
              "agent",
              "model"
            ],
            "required": []
          },
          {
            "id": "oneshot",
            "label": "One-shot headless task",
            "fields": [
              "exec",
              "config",
              "messages",
              "last"
            ],
            "required": [
              "config",
              "messages"
            ],
            "set": {
              "exec": [
                true
              ]
            }
          },
          {
            "id": "validate",
            "label": "Validate a config",
            "fields": [
              "config",
              "dry_run"
            ],
            "required": [
              "config"
            ],
            "set": {
              "dry_run": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "config",
              "messages",
              "exec",
              "agent",
              "model",
              "safety"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "session",
              "prompt_file",
              "working_dir",
              "json",
              "dry_run",
              "lean",
              "debug",
              "yolo",
              "last"
            ]
          }
        ]
      }
    ]
  }
}
