{
  "id": "openclaw-cli",
  "name": "OpenClaw",
  "homepage": "https://docs.openclaw.ai",
  "description": "Personal AI assistant you own and run on your own devices.",
  "executables": [
    "openclaw"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "~/.openclaw/openclaw.json",
      "~/.config/openclaw/gateway.env"
    ]
  },
  "commands": {
    "format": 1,
    "label": "OpenClaw",
    "description": "Run one headless agent turn or check OpenClaw status. Gateway, channels, plugins, onboarding and configuration commands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "agent",
          "exec"
        ],
        "label": "Run one agent turn",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://docs.openclaw.ai/cli/agent",
            "revision": "2026-10",
            "evidence": "openclaw agent exec \"Run the focused tests and fix failures\"\nopenclaw agent exec --message-file task.md --cwd ./repo\n[message]: positional prompt text\n--message-file <path>: read a UTF-8 prompt from a file; - reads stdin\n--cwd <dir>: set both the agent workspace and tool working directory\n--config <path>: run against this config file instead of the ambient config (JSON5 and $include supported)\n--isolated: ignore the ambient config and use only exec defaults\n--model <provider/model>: explicit primary model\n--local-model-lean: use the reduced local-model tool surface\n--thinking <level>: one-run thinking level\n--fallback <provider/model>: ordered fallback model; repeatable and requires --model\n--timeout <seconds>: deadline in seconds (default 600; 0 disables it)\n--json: emit the stable JSON envelope\n"
          }
        ],
        "field": [
          {
            "id": "message",
            "label": "Prompt",
            "type": "string",
            "position": 0,
            "sources": [
              "docs"
            ]
          },
          {
            "id": "message_file",
            "label": "Prompt file",
            "description": "Read the prompt from a UTF-8 file instead.",
            "type": "path",
            "option": [
              "--message-file"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "docs"
            ]
          },
          {
            "id": "cwd",
            "label": "Working directory",
            "description": "Sets both the agent workspace and the tool working directory.",
            "type": "path",
            "option": [
              "--cwd"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "docs"
            ]
          },
          {
            "id": "config",
            "label": "Config file",
            "type": "path",
            "option": [
              "--config"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "docs"
            ]
          },
          {
            "id": "isolated",
            "label": "Ignore ambient config",
            "type": "boolean",
            "option": [
              "--isolated"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "model",
            "label": "Model",
            "description": "provider/model.",
            "type": "string",
            "option": [
              "--model"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "fallback",
            "label": "Fallback models",
            "description": "Ordered fallbacks; requires a model.",
            "type": "string",
            "option": [
              "--fallback"
            ],
            "multiple": true,
            "sources": [
              "docs"
            ]
          },
          {
            "id": "thinking",
            "label": "Thinking level",
            "type": "string",
            "option": [
              "--thinking"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "local_model_lean",
            "label": "Lean tool surface for local models",
            "type": "boolean",
            "option": [
              "--local-model-lean"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "timeout",
            "label": "Timeout (seconds)",
            "description": "Default 600; 0 disables the deadline.",
            "type": "integer",
            "option": [
              "--timeout"
            ],
            "validation": {
              "min": 0
            },
            "sources": [
              "docs"
            ]
          },
          {
            "id": "json",
            "label": "JSON output",
            "type": "boolean",
            "option": [
              "--json"
            ],
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "prompt",
            "label": "Run a prompt",
            "fields": [
              "message",
              "cwd",
              "model"
            ],
            "required": [
              "message"
            ]
          },
          {
            "id": "from_file",
            "label": "Run a prompt file in a repo",
            "fields": [
              "message_file",
              "cwd",
              "json"
            ],
            "required": [
              "message_file"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "message",
              "message_file",
              "cwd",
              "model",
              "json"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "config",
              "isolated",
              "fallback",
              "thinking",
              "local_model_lean",
              "timeout"
            ]
          }
        ]
      },
      {
        "path": [
          "status"
        ],
        "label": "Check status",
        "source": [
          {
            "id": "docs",
            "kind": "manual",
            "url": "https://docs.openclaw.ai/cli/status",
            "revision": "2026-10",
            "evidence": "openclaw status\nopenclaw status --all\nopenclaw status --deep\nopenclaw status --usage --agent work\n--all: Full diagnosis (read-only, pasteable).\n--deep: Requests channel health (live checks where supported). Also enables the security audit.\n--usage: Prints normalized provider usage windows as X% left.\n--agent <id>: Selects the agent auth/profile scope for --usage.\n--json: Machine-readable output.\n--timeout <ms>: Check timeout in milliseconds (default: 60000).\n"
          }
        ],
        "field": [
          {
            "id": "all",
            "label": "Full diagnosis",
            "type": "boolean",
            "option": [
              "--all"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "deep",
            "label": "Deep channel health checks",
            "type": "boolean",
            "option": [
              "--deep"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "usage",
            "label": "Provider usage",
            "type": "boolean",
            "option": [
              "--usage"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "agent",
            "label": "Agent id",
            "description": "Agent auth/profile scope for usage.",
            "type": "string",
            "option": [
              "--agent"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "json",
            "label": "JSON output",
            "type": "boolean",
            "option": [
              "--json"
            ],
            "sources": [
              "docs"
            ]
          },
          {
            "id": "timeout",
            "label": "Timeout (ms)",
            "type": "integer",
            "option": [
              "--timeout"
            ],
            "validation": {
              "min": 1
            },
            "sources": [
              "docs"
            ]
          }
        ],
        "task": [
          {
            "id": "full",
            "label": "Full diagnosis",
            "fields": [
              "all",
              "deep",
              "json"
            ],
            "set": {
              "all": [
                true
              ]
            }
          },
          {
            "id": "usage",
            "label": "Show provider usage",
            "fields": [
              "usage",
              "agent"
            ],
            "set": {
              "usage": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "all",
              "deep",
              "usage",
              "agent",
              "json"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "timeout"
            ]
          }
        ]
      }
    ]
  }
}
