Skip to main content
openclaw is the main CLI entry point. Each core command has a dedicated reference page or is documented with the command it aliases. This index lists the commands, global flags, and output styling rules that apply across the CLI. Setup commands by intent:
  • openclaw setup and openclaw onboard verify inference first, then start OpenClaw for Gateway, workspace, channels, skills, and health setup.
  • openclaw setup --baseline creates the baseline config and workspace without walking the guided onboarding flow.
  • openclaw configure changes targeted parts of an existing setup: model auth, gateway, channels, plugins, or skills.
  • openclaw channels add configures channel accounts after the baseline exists. A channel selection alone uses guided setup. Account, credential, or channel-config flags use the direct path for scripts.

Command pages

Global flags

Place command-specific options after their command name, for example openclaw status --json. Global options such as --profile can precede the command. A named --profile replaces canonical state and config paths inherited from another profile, including a running Gateway service. Explicitly customized state directories and config paths remain unchanged. Use -- to stop option parsing. Command words still dispatch after it: for example, openclaw -- config get gateway.port reads the configured port. A token such as --help after -- is a positional argument.

Output modes

  • ANSI colors and progress indicators render only in TTY sessions.
  • OSC-8 hyperlinks render as clickable links where supported. Otherwise the CLI prints plain URLs.
  • On bounded reporting commands, --json reserves stdout for one JSON document. The CLI suppresses styling and progress output. Warnings and diagnostics stay on stderr.
  • Interactive UIs and wizards, long-running servers and streams, shell integration, and pure side-effect commands may omit --json when they have no meaningful report to return.
  • Long-running commands show a progress indicator (OSC 9;4 when supported).

JSON failures

Successful JSON payloads remain command-specific. When a command in JSON output mode fails, it exits nonzero and writes one JSON document to stdout with this envelope:
A command may add domain-specific fields, such as per-item results, beside this envelope. Gateway-backed agent turns that fail after the Gateway accepted the run also record the accepted runId and origin: "gateway" beside the envelope, so scripts can report the in-flight run. Failure messages are sanitized. Human-readable diagnostics may also be written to stderr, so scripts should parse stdout and still check the exit status.

Color palette

OpenClaw uses a lobster palette for CLI output: Palette source of truth: packages/terminal-core/src/palette.ts.

Command tree

This map covers core commands and their primary subcommands. Plugin-added subcommands (for example under skills, plugins, and wiki) evolve independently. Run <command> --help for the authoritative, current list.
Plugins can add additional top-level commands, such as openclaw workboard or openclaw voicecall.

Chat slash commands

Chat messages support /... commands. See slash commands. Highlights:
  • /status - quick diagnostics.
  • /trace - session-scoped plugin trace/debug lines.
  • /config - persisted config changes.
  • /debug - runtime-only config overrides in memory, not on disk. Requires commands.debug: true.

Usage tracking

openclaw status --usage and the Control UI surface provider usage/quota when OAuth/API credentials are available. Data comes directly from provider usage endpoints and is normalized to X% left. Providers with current usage windows: Anthropic, Gemini CLI, GitHub Copilot, MiniMax, OpenAI Codex, Xiaomi, and z.ai. See Usage tracking for details.