
function __openclaw_command_path_matches
  set -l expected
  set -l value_options
  set -l reading_value_options 0
  for arg in $argv
    if test "$arg" = "--"
      set reading_value_options 1
      continue
    end
    if test $reading_value_options -eq 1
      set -a value_options $arg
    else
      set -a expected $arg
    end
  end
  set -l tokens (commandline -opc)
  set -e tokens[1]
  set -l command_tokens
  set -l skip_next 0
  for token in $tokens
    if test $skip_next -eq 1
      set skip_next 0
      continue
    end
    set -l flag (string split -m1 "=" -- $token)[1]
    if contains -- $flag $value_options
      if not string match -q -- "*=*" $token
        set skip_next 1
      end
      continue
    end
    if string match -q -- "-*" $token
      continue
    end
    set -a command_tokens $token
  end
  for i in (seq (count $expected))
    if test "$command_tokens[$i]" != "$expected[$i]"
      return 1
    end
  end
  return 0
end
complete -c openclaw -n "__fish_use_subcommand" -a "completion" -d 'Generate shell completion script'
complete -c openclaw -n "__fish_use_subcommand" -a "crestodian" -d 'Open the ring-zero setup and repair helper'
complete -c openclaw -n "__fish_use_subcommand" -a "setup" -d 'Create baseline config/workspace files; use --wizard for full onboarding'
complete -c openclaw -n "__fish_use_subcommand" -a "onboard" -d 'Guided setup for auth, models, Gateway, workspace, channels, and skills'
complete -c openclaw -n "__fish_use_subcommand" -a "configure" -d 'Interactive configuration for credentials, channels, gateway, and agent defaults'
complete -c openclaw -n "__fish_use_subcommand" -a "config" -d 'Non-interactive config helpers (get/set/patch/unset/file/schema/validate). Run without subcommand for guided setup.'
complete -c openclaw -n "__fish_use_subcommand" -a "backup" -d 'Create and verify local backup archives for OpenClaw state'
complete -c openclaw -n "__fish_use_subcommand" -a "migrate" -d 'Import state from another agent system'
complete -c openclaw -n "__fish_use_subcommand" -a "doctor" -d 'Health checks + quick fixes for the gateway and channels'
complete -c openclaw -n "__fish_use_subcommand" -a "dashboard" -d 'Open the Control UI with your current token'
complete -c openclaw -n "__fish_use_subcommand" -a "reset" -d 'Reset local config/state (keeps the CLI installed)'
complete -c openclaw -n "__fish_use_subcommand" -a "uninstall" -d 'Uninstall the gateway service + local data (CLI remains)'
complete -c openclaw -n "__fish_use_subcommand" -a "message" -d 'Send, read, and manage messages and channel actions'
complete -c openclaw -n "__fish_use_subcommand" -a "mcp" -d 'Manage OpenClaw MCP config and channel bridge'
complete -c openclaw -n "__fish_use_subcommand" -a "transcripts" -d 'Inspect stored transcripts'
complete -c openclaw -n "__fish_use_subcommand" -a "agent" -d 'Run an agent turn via the Gateway (use --local for embedded)'
complete -c openclaw -n "__fish_use_subcommand" -a "agents" -d 'Manage isolated agents (workspaces + auth + routing)'
complete -c openclaw -n "__fish_use_subcommand" -a "status" -d 'Show channel health and recent session recipients'
complete -c openclaw -n "__fish_use_subcommand" -a "health" -d 'Fetch health from the running gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "sessions" -d 'List stored conversation sessions'
complete -c openclaw -n "__fish_use_subcommand" -a "commitments" -d 'List and manage inferred follow-up commitments'
complete -c openclaw -n "__fish_use_subcommand" -a "tasks" -d 'Inspect durable background tasks and TaskFlow state'
complete -c openclaw -n "__fish_use_subcommand" -a "acp" -d 'Run an ACP bridge backed by the Gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "gateway" -d 'Run, inspect, and query the WebSocket Gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "daemon" -d 'Manage the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_use_subcommand" -a "logs" -d 'Tail gateway file logs via RPC'
complete -c openclaw -n "__fish_use_subcommand" -a "system" -d 'System tools (events, heartbeat, presence)'
complete -c openclaw -n "__fish_use_subcommand" -a "models" -d 'Model discovery, scanning, and configuration'
complete -c openclaw -n "__fish_use_subcommand" -a "infer" -d 'Run provider-backed inference commands through a stable CLI surface'
complete -c openclaw -n "__fish_use_subcommand" -a "approvals" -d 'Manage exec approvals (gateway or node host)'
complete -c openclaw -n "__fish_use_subcommand" -a "exec-policy" -d 'Show or synchronize requested exec policy with host approvals'
complete -c openclaw -n "__fish_use_subcommand" -a "nodes" -d 'Manage gateway-owned nodes (pairing, status, invoke, and media)'
complete -c openclaw -n "__fish_use_subcommand" -a "devices" -d 'Device pairing and auth tokens'
complete -c openclaw -n "__fish_use_subcommand" -a "node" -d 'Run and manage the headless node host service'
complete -c openclaw -n "__fish_use_subcommand" -a "sandbox" -d 'Manage sandbox containers (Docker-based agent isolation)'
complete -c openclaw -n "__fish_use_subcommand" -a "tui" -d 'Open a terminal UI connected to the Gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "cron" -d 'Manage cron jobs (via Gateway)'
complete -c openclaw -n "__fish_use_subcommand" -a "dns" -d 'DNS helpers for wide-area discovery (Tailscale + CoreDNS)'
complete -c openclaw -n "__fish_use_subcommand" -a "docs" -d 'Search the live OpenClaw docs'
complete -c openclaw -n "__fish_use_subcommand" -a "proxy" -d 'Run the OpenClaw debug proxy and inspect captured traffic'
complete -c openclaw -n "__fish_use_subcommand" -a "hooks" -d 'Manage internal agent hooks'
complete -c openclaw -n "__fish_use_subcommand" -a "webhooks" -d 'Webhook helpers and integrations'
complete -c openclaw -n "__fish_use_subcommand" -a "qr" -d 'Generate a mobile pairing QR code and setup code'
complete -c openclaw -n "__fish_use_subcommand" -a "clawbot" -d 'Legacy clawbot command aliases'
complete -c openclaw -n "__fish_use_subcommand" -a "pairing" -d 'Secure DM pairing (approve inbound requests)'
complete -c openclaw -n "__fish_use_subcommand" -a "plugins" -d 'Manage OpenClaw plugins and extensions'
complete -c openclaw -n "__fish_use_subcommand" -a "channels" -d 'Manage connected chat channels and accounts'
complete -c openclaw -n "__fish_use_subcommand" -a "directory" -d 'Lookup contact and group IDs (self, peers, groups) for supported chat channels'
complete -c openclaw -n "__fish_use_subcommand" -a "security" -d 'Audit local config and state for common security foot-guns'
complete -c openclaw -n "__fish_use_subcommand" -a "secrets" -d 'Secrets runtime controls'
complete -c openclaw -n "__fish_use_subcommand" -a "skills" -d 'List and inspect available skills'
complete -c openclaw -n "__fish_use_subcommand" -a "update" -d 'Update OpenClaw and inspect update channel status'
complete -c openclaw -n "__fish_use_subcommand" -s V -l version -d 'output the version number'
complete -c openclaw -n "__fish_use_subcommand" -l container -d 'Run the CLI inside a running Podman/Docker container named <name> (default: env OPENCLAW_CONTAINER)'
complete -c openclaw -n "__fish_use_subcommand" -l dev -d 'Dev profile: isolate state under ~/.openclaw-dev, default gateway port 19001, and shift derived ports (browser/canvas)'
complete -c openclaw -n "__fish_use_subcommand" -l profile -d 'Use a named profile (isolates OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under ~/.openclaw-<name>)'
complete -c openclaw -n "__fish_use_subcommand" -l log-level -d 'Global log level override for file + console (silent|fatal|error|warn|info|debug|trace)'
complete -c openclaw -n "__fish_use_subcommand" -l no-color -d 'Disable ANSI colors'
complete -c openclaw -n "__openclaw_command_path_matches completion -- --container --profile --log-level -s --shell" -s s -l shell -d 'Shell to generate completion for (default: zsh)'
complete -c openclaw -n "__openclaw_command_path_matches completion -- --container --profile --log-level -s --shell" -s i -l install -d 'Install completion script to shell profile'
complete -c openclaw -n "__openclaw_command_path_matches completion -- --container --profile --log-level -s --shell" -l write-state -d 'Write completion scripts to $OPENCLAW_STATE_DIR/completions (no stdout)'
complete -c openclaw -n "__openclaw_command_path_matches completion -- --container --profile --log-level -s --shell" -s y -l yes -d 'Skip confirmation (non-interactive)'
complete -c openclaw -n "__openclaw_command_path_matches crestodian -- --container --profile --log-level -m --message" -s m -l message -d 'Run one Crestodian request'
complete -c openclaw -n "__openclaw_command_path_matches crestodian -- --container --profile --log-level -m --message" -l yes -d 'Approve persistent config writes for this request'
complete -c openclaw -n "__openclaw_command_path_matches crestodian -- --container --profile --log-level -m --message" -l json -d 'Output startup overview as JSON'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l workspace -d 'Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l wizard -d 'Run interactive onboarding'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l non-interactive -d 'Run onboarding without prompts'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l accept-risk -d 'Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l mode -d 'Onboard mode: local|remote'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l import-from -d 'Migration provider to run during onboarding'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l import-source -d 'Source agent home for --import-from'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l import-secrets -d 'Import supported secrets during onboarding migration'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l remote-url -d 'Remote Gateway WebSocket URL'
complete -c openclaw -n "__openclaw_command_path_matches setup -- --container --profile --log-level --workspace --mode --import-from --import-source --remote-url --remote-token" -l remote-token -d 'Remote Gateway token (optional)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l workspace -d 'Agent workspace directory (default: ~/.openclaw/workspace)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l reset -d 'Reset config + credentials + sessions before running onboard (workspace only with --reset-scope full)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l reset-scope -d 'Reset scope: config|config+creds+sessions|full'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l non-interactive -d 'Run without prompts'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l modern -d 'Use the conversational setup/repair assistant'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l accept-risk -d 'Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l flow -d 'Onboard flow: quickstart|advanced|manual|import'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l mode -d 'Onboard mode: local|remote'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l auth-choice -d 'Auth: custom-api-key|skip|claude-cli|apiKey|anthropic-cli|setup-token|arceeai-api-key|byteplus-api-key|cerebras-api-key|openai-device-code|openai|chutes|chutes-api-key|cloudflare-ai-gateway-api-key|zai-cn|codex|qwen-api-key-cn|qwen-api-key|zai-coding-cn|zai-coding-global|copilot-proxy|deepinfra-api-key|deepseek-api-key|fireworks-api-key|google-gemini-cli|github-copilot|zai-global|gmi-api-key|gemini-api-key|google-vertex-api-key|groq-api-key|huggingface-api-key|kilocode-api-key|kimi-code-api-key|litellm-api-key|lmstudio|microsoft-foundry-apikey|microsoft-foundry-entra|minimax-cn-api|minimax-global-api|minimax-cn-oauth|minimax-global-oauth|mistral-api-key|moonshot-api-key|moonshot-api-key-cn|novita-api-key|nvidia-api-key|ollama|ollama-cloud|openai-api-key|opencode-go|opencode-zen|arceeai-openrouter|openrouter-api-key|qianfan-api-key|qwen-oauth|sglang|qwen-standard-api-key-cn|qwen-standard-api-key|stepfun-standard-api-key-cn|stepfun-standard-api-key-intl|stepfun-plan-api-key-cn|stepfun-plan-api-key-intl|synthetic-api-key|tokenhub-api-key|together-api-key|venice-api-key|ai-gateway-api-key|vllm|volcengine-api-key|xai-api-key|xai-device-code|xai-oauth|xiaomi-api-key|xiaomi-token-plan-cn|xiaomi-token-plan-ams|xiaomi-token-plan-sgp|zai-api-key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l token-provider -d 'Token provider id (non-interactive; used with --auth-choice token)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l token -d 'Token value (non-interactive; used with --auth-choice token)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l token-profile-id -d 'Auth profile id (non-interactive; default: <provider>:manual)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l token-expires-in -d 'Optional token expiry duration (e.g. 365d, 12h)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l secret-input-mode -d 'API key persistence mode: plaintext|ref (default: plaintext)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l cloudflare-ai-gateway-account-id -d 'Cloudflare Account ID'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l cloudflare-ai-gateway-gateway-id -d 'Cloudflare AI Gateway ID'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l alibaba-model-studio-api-key -d 'Alibaba Model Studio API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l anthropic-api-key -d 'Anthropic API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l arceeai-api-key -d 'Arcee AI API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l openrouter-api-key -d 'OpenRouter API key for Arcee AI models'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l byteplus-api-key -d 'BytePlus API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l cerebras-api-key -d 'Cerebras API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l chutes-api-key -d 'Chutes API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l cloudflare-ai-gateway-api-key -d 'Cloudflare AI Gateway API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l comfy-api-key -d 'Comfy Cloud API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l deepinfra-api-key -d 'DeepInfra API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l deepseek-api-key -d 'DeepSeek API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l fal-api-key -d 'fal API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l fireworks-api-key -d 'Fireworks API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l github-copilot-token -d 'GitHub Copilot OAuth token'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gmi-api-key -d 'GMI Cloud API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gemini-api-key -d 'Gemini API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l huggingface-api-key -d 'Hugging Face API key (HF token)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l kilocode-api-key -d 'Kilo Gateway API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l kimi-code-api-key -d 'Kimi Code API key (subscription)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l litellm-api-key -d 'LiteLLM API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l lmstudio-api-key -d 'LM Studio API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l minimax-api-key -d 'MiniMax API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l mistral-api-key -d 'Mistral API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l moonshot-api-key -d 'Moonshot API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l novita-api-key -d 'NovitaAI API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l nvidia-api-key -d 'NVIDIA API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l ollama-cloud-api-key -d 'Ollama Cloud API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l openai-api-key -d 'OpenAI API Key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l opencode-zen-api-key -d 'OpenCode API key (Zen catalog)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l opencode-go-api-key -d 'OpenCode API key (Go catalog)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l qianfan-api-key -d 'QIANFAN API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l modelstudio-standard-api-key-cn -d 'Qwen Cloud standard API key (China)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l modelstudio-standard-api-key -d 'Qwen Cloud standard API key (Global/Intl)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l modelstudio-api-key-cn -d 'Qwen Cloud Coding Plan API key (China)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l modelstudio-api-key -d 'Qwen Cloud Coding Plan API key (Global/Intl)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l qwen-oauth-token -d 'Qwen OAuth token'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l runway-api-key -d 'Runway API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l stepfun-api-key -d 'StepFun API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l synthetic-api-key -d 'Synthetic API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l tokenhub-api-key -d 'Tencent TokenHub API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l together-api-key -d 'Together AI API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l venice-api-key -d 'Venice API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l ai-gateway-api-key -d 'Vercel AI Gateway API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l volcengine-api-key -d 'Volcano Engine API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l vydra-api-key -d 'Vydra API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l xai-api-key -d 'xAI API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l xiaomi-api-key -d 'Xiaomi MiMo pay-as-you-go API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l xiaomi-token-plan-api-key -d 'Xiaomi MiMo Token Plan API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l zai-api-key -d 'Z.AI API key'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-base-url -d 'Custom provider base URL'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-api-key -d 'Custom provider API key (optional)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-model-id -d 'Custom provider model ID'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-provider-id -d 'Custom provider ID (optional; auto-derived by default)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-compatibility -d 'Custom provider API compatibility: openai|openai-responses|anthropic (default: openai)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-image-input -d 'Mark the custom provider model as image-capable'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l custom-text-input -d 'Mark the custom provider model as text-only'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gateway-port -d 'Gateway port'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gateway-bind -d 'Gateway bind: loopback|tailnet|lan|auto|custom'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gateway-auth -d 'Gateway auth: token|password'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gateway-token -d 'Gateway token (token auth)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gateway-token-ref-env -d 'Gateway token SecretRef env var name (token auth; e.g. OPENCLAW_GATEWAY_TOKEN)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l gateway-password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l remote-url -d 'Remote Gateway WebSocket URL'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l remote-token -d 'Remote Gateway token (optional)'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l tailscale -d 'Tailscale: off|serve|funnel'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l tailscale-reset-on-exit -d 'Reset tailscale serve/funnel on exit'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l install-daemon -d 'Install gateway service'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l no-install-daemon -d 'Skip gateway service install'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-daemon -d 'Skip gateway service install'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l daemon-runtime -d 'Daemon runtime: node|bun'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-channels -d 'Skip channel setup'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-skills -d 'Skip skills setup'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-bootstrap -d 'Skip creating default agent workspace files'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-search -d 'Skip search provider setup'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-health -d 'Skip health check'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-ui -d 'Skip Control UI/TUI prompts'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l suppress-gateway-token-output -d 'Suppress token-bearing Gateway/UI output'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l skip-hooks -d 'Skip hook setup'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l node-manager -d 'Node manager for skills: npm|pnpm|bun'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l import-from -d 'Migration provider to run during onboarding'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l import-source -d 'Source agent home for --import-from'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l import-secrets -d 'Import supported secrets during onboarding migration'
complete -c openclaw -n "__openclaw_command_path_matches onboard -- --container --profile --log-level --workspace --reset-scope --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --alibaba-model-studio-api-key --anthropic-api-key --arceeai-api-key --openrouter-api-key --byteplus-api-key --cerebras-api-key --chutes-api-key --cloudflare-ai-gateway-api-key --comfy-api-key --deepinfra-api-key --deepseek-api-key --fal-api-key --fireworks-api-key --github-copilot-token --gmi-api-key --gemini-api-key --huggingface-api-key --kilocode-api-key --kimi-code-api-key --litellm-api-key --lmstudio-api-key --minimax-api-key --mistral-api-key --moonshot-api-key --novita-api-key --nvidia-api-key --ollama-cloud-api-key --openai-api-key --opencode-zen-api-key --opencode-go-api-key --qianfan-api-key --modelstudio-standard-api-key-cn --modelstudio-standard-api-key --modelstudio-api-key-cn --modelstudio-api-key --qwen-oauth-token --runway-api-key --stepfun-api-key --synthetic-api-key --tokenhub-api-key --together-api-key --venice-api-key --ai-gateway-api-key --volcengine-api-key --vydra-api-key --xai-api-key --xiaomi-api-key --xiaomi-token-plan-api-key --zai-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-token-ref-env --gateway-password --remote-url --remote-token --tailscale --daemon-runtime --node-manager --import-from --import-source" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches configure -- --container --profile --log-level --section" -l section -d 'Configuration sections (repeatable). Options: workspace, model, web, gateway, daemon, channels, plugins, skills, health'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "get" -d 'Get a config value by dot path'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "set" -d 'Set config values by path (value mode, ref/provider builder mode, or batch JSON mode).
Examples:
openclaw config set gateway.port 19001 --strict-json
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
openclaw config set secrets.providers.vault --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode json
openclaw config set --batch-file ./config-set.batch.json --dry-run'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "patch" -d 'Patch config from a JSON5 object in one validated write.
Objects merge recursively, arrays/scalars replace, and null deletes a path.
Examples:
openclaw config patch --file ./openclaw.patch.json5 --dry-run
openclaw config patch --stdin'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "unset" -d 'Remove a config value by dot path'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "file" -d 'Print the active config file path'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "schema" -d 'Print the JSON schema for openclaw.json'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -a "validate" -d 'Validate the current config against the schema without starting the gateway'
complete -c openclaw -n "__openclaw_command_path_matches config -- --container --profile --log-level --section" -l section -d 'Configuration sections for guided setup (repeatable). Use with no subcommand.'
complete -c openclaw -n "__openclaw_command_path_matches config get -- --container --profile --log-level --section" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l strict-json -d 'Strict JSON parsing (error instead of raw string fallback)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l json -d 'Legacy alias for --strict-json'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l dry-run -d 'Validate changes without writing openclaw.json (checks run in builder/json/batch modes; exec SecretRefs are skipped unless --allow-exec is set)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l allow-exec -d 'Dry-run only: allow exec SecretRef resolvability checks (may execute provider commands)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l merge -d 'Merge object/map values instead of replacing the target path'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l replace -d 'Allow full replacement of protected map/list paths such as agents.defaults.models'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l ref-provider -d 'SecretRef builder: provider alias'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l ref-source -d 'SecretRef builder: source (env|file|exec)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l ref-id -d 'SecretRef builder: ref id'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-source -d 'Provider builder: source (env|file|exec)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-allowlist -d 'Provider builder (env): allowlist entry (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-path -d 'Provider builder (file): path'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-mode -d 'Provider builder (file): mode (singleValue|json)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-timeout-ms -d 'Provider builder (file|exec): timeout ms'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-max-bytes -d 'Provider builder (file): max bytes'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-command -d 'Provider builder (exec): absolute command path'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-arg -d 'Provider builder (exec): command arg (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-no-output-timeout-ms -d 'Provider builder (exec): no-output timeout ms'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-max-output-bytes -d 'Provider builder (exec): max output bytes'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-json-only -d 'Provider builder (exec): require JSON output'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-env -d 'Provider builder (exec): env assignment (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-pass-env -d 'Provider builder (exec): pass host env var (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-trusted-dir -d 'Provider builder (exec): trusted directory (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-allow-insecure-path -d 'Provider builder (file|exec): bypass strict path permission checks'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l provider-allow-symlink-command -d 'Provider builder (exec): allow command symlink path'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l batch-json -d 'Batch mode: JSON array of set operations'
complete -c openclaw -n "__openclaw_command_path_matches config set -- --container --profile --log-level --section --ref-provider --ref-source --ref-id --provider-source --provider-allowlist --provider-path --provider-mode --provider-timeout-ms --provider-max-bytes --provider-command --provider-arg --provider-no-output-timeout-ms --provider-max-output-bytes --provider-env --provider-pass-env --provider-trusted-dir --batch-json --batch-file" -l batch-file -d 'Batch mode: read JSON array of set operations from file'
complete -c openclaw -n "__openclaw_command_path_matches config patch -- --container --profile --log-level --section --file --replace-path" -l file -d 'Read a JSON5 config patch object from file'
complete -c openclaw -n "__openclaw_command_path_matches config patch -- --container --profile --log-level --section --file --replace-path" -l stdin -d 'Read a JSON5 config patch object from stdin'
complete -c openclaw -n "__openclaw_command_path_matches config patch -- --container --profile --log-level --section --file --replace-path" -l dry-run -d 'Validate changes without writing openclaw.json (checks schema and SecretRef resolvability; exec SecretRefs are skipped unless --allow-exec is set)'
complete -c openclaw -n "__openclaw_command_path_matches config patch -- --container --profile --log-level --section --file --replace-path" -l allow-exec -d 'Dry-run only: allow exec SecretRef resolvability checks (may execute provider commands)'
complete -c openclaw -n "__openclaw_command_path_matches config patch -- --container --profile --log-level --section --file --replace-path" -l json -d 'Output dry-run result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches config patch -- --container --profile --log-level --section --file --replace-path" -l replace-path -d 'Replace the object or array at this dot/bracket path instead of recursively applying it (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches config unset -- --container --profile --log-level --section" -l dry-run -d 'validate the removal without writing the config file'
complete -c openclaw -n "__openclaw_command_path_matches config unset -- --container --profile --log-level --section" -l allow-exec -d 'allow exec SecretRef providers during --dry-run'
complete -c openclaw -n "__openclaw_command_path_matches config unset -- --container --profile --log-level --section" -l json -d 'print dry-run result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches config validate -- --container --profile --log-level --section" -l json -d 'Output validation result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches backup -- --container --profile --log-level" -a "create" -d 'Write a backup archive for config, credentials, sessions, and workspaces'
complete -c openclaw -n "__openclaw_command_path_matches backup -- --container --profile --log-level" -a "verify" -d 'Validate a backup archive and its embedded manifest'
complete -c openclaw -n "__openclaw_command_path_matches backup create -- --container --profile --log-level --output" -l output -d 'Archive path or destination directory'
complete -c openclaw -n "__openclaw_command_path_matches backup create -- --container --profile --log-level --output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches backup create -- --container --profile --log-level --output" -l dry-run -d 'Print the backup plan without writing the archive'
complete -c openclaw -n "__openclaw_command_path_matches backup create -- --container --profile --log-level --output" -l verify -d 'Verify the archive after writing it'
complete -c openclaw -n "__openclaw_command_path_matches backup create -- --container --profile --log-level --output" -l only-config -d 'Back up only the active JSON config file'
complete -c openclaw -n "__openclaw_command_path_matches backup create -- --container --profile --log-level --output" -l no-include-workspace -d 'Exclude workspace directories from the backup'
complete -c openclaw -n "__openclaw_command_path_matches backup verify -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -a "list" -d 'List migration providers'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -a "plan" -d 'Preview a migration without changing OpenClaw state'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -a "apply" -d 'Apply a migration after a verified backup'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l from -d 'Source directory to migrate from'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l include-secrets -d 'Import supported credentials and secrets'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l no-auth-credentials -d 'Skip auth credential migration'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l overwrite -d 'Overwrite conflicting target files after item-level backups'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l dry-run -d 'Preview only; do not apply changes'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l yes -d 'Apply without prompting after preview'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l skill -d 'Select one skill to migrate by name or item id; repeat for multiple skills'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l plugin -d 'Select one Codex plugin to migrate by name or item id; repeat for multiple plugins'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l backup-output -d 'Pre-migration backup archive path or directory'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l no-backup -d 'Skip the pre-migration OpenClaw backup'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l force -d 'Allow dangerous options such as --no-backup'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches migrate -- --container --profile --log-level --from --skill --plugin --backup-output" -l verify-plugin-apps -d 'Codex only: verify source plugin app accessibility with app/list before planning native plugin activation'
complete -c openclaw -n "__openclaw_command_path_matches migrate list -- --container --profile --log-level --from --skill --plugin --backup-output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l from -d 'Source directory to migrate from'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l include-secrets -d 'Import supported credentials and secrets'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l no-auth-credentials -d 'Skip auth credential migration'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l overwrite -d 'Overwrite conflicting target files after item-level backups'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l skill -d 'Select one skill to migrate by name or item id; repeat for multiple skills'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l plugin -d 'Select one Codex plugin to migrate by name or item id; repeat for multiple plugins'
complete -c openclaw -n "__openclaw_command_path_matches migrate plan -- --container --profile --log-level --from --skill --plugin --backup-output" -l verify-plugin-apps -d 'Codex only: verify source plugin app accessibility with app/list before planning native plugin activation'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l from -d 'Source directory to migrate from'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l include-secrets -d 'Import supported credentials and secrets'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l no-auth-credentials -d 'Skip auth credential migration'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l overwrite -d 'Overwrite conflicting target files after item-level backups'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l skill -d 'Select one skill to migrate by name or item id; repeat for multiple skills'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l plugin -d 'Select one Codex plugin to migrate by name or item id; repeat for multiple plugins'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l verify-plugin-apps -d 'Codex only: verify source plugin app accessibility with app/list before planning native plugin activation'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l yes -d 'Apply without prompting'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l backup-output -d 'Pre-migration backup archive path or directory'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l no-backup -d 'Skip the pre-migration OpenClaw backup'
complete -c openclaw -n "__openclaw_command_path_matches migrate apply -- --container --profile --log-level --from --skill --plugin --backup-output" -l force -d 'Allow dangerous options such as --no-backup'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l no-workspace-suggestions -d 'Disable workspace memory system suggestions'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l yes -d 'Accept defaults without prompting'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l repair -d 'Apply recommended repairs without prompting'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l fix -d 'Apply recommended repairs (alias for --repair)'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l force -d 'Apply aggressive repairs (overwrites custom service config)'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l non-interactive -d 'Run without prompts (safe migrations only)'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l generate-gateway-token -d 'Generate and configure a gateway token'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l allow-exec -d 'Allow doctor to execute exec SecretRefs while verifying configured secrets'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l deep -d 'Scan system services for extra gateway installs'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l lint -d 'Run read-only health checks and report findings'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l post-upgrade -d 'Emit plugin-compat findings only (machine-readable with --json)'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l json -d 'With --lint or --post-upgrade: emit machine-readable JSON output'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l severity-min -d 'With --lint: drop findings below this severity (info|warning|error)'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l skip -d 'With --lint: skip a specific check id (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches doctor -- --container --profile --log-level --severity-min --skip --only" -l only -d 'With --lint: run only the specified check id (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches dashboard -- --container --profile --log-level" -l no-open -d 'Print URL but do not launch a browser'
complete -c openclaw -n "__openclaw_command_path_matches dashboard -- --container --profile --log-level" -l yes -d 'Start/install the gateway without prompting when needed'
complete -c openclaw -n "__openclaw_command_path_matches reset -- --container --profile --log-level --scope" -l scope -d 'config|config+creds+sessions|full (default: interactive prompt)'
complete -c openclaw -n "__openclaw_command_path_matches reset -- --container --profile --log-level --scope" -l yes -d 'Skip confirmation prompts'
complete -c openclaw -n "__openclaw_command_path_matches reset -- --container --profile --log-level --scope" -l non-interactive -d 'Disable prompts (requires --scope + --yes)'
complete -c openclaw -n "__openclaw_command_path_matches reset -- --container --profile --log-level --scope" -l dry-run -d 'Print actions without removing files'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l service -d 'Remove the gateway service'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l state -d 'Remove state + config'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l workspace -d 'Remove workspace dirs'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l app -d 'Remove the macOS app'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l all -d 'Remove service + state + workspace + app'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l yes -d 'Skip confirmation prompts'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l non-interactive -d 'Disable prompts (requires --yes)'
complete -c openclaw -n "__openclaw_command_path_matches uninstall -- --container --profile --log-level" -l dry-run -d 'Print actions without removing files'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "send" -d 'Send a message'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "broadcast" -d 'Broadcast a message to multiple targets'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "poll" -d 'Send a poll'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "react" -d 'Add or remove a reaction'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "reactions" -d 'List reactions on a message'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "read" -d 'Read recent messages'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "edit" -d 'Edit a message'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "delete" -d 'Delete a message'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "pin" -d 'Pin a message'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "unpin" -d 'Unpin a message'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "pins" -d 'List pinned messages'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "permissions" -d 'Fetch channel permissions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "search" -d 'Search Discord messages'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "thread" -d 'Thread actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "emoji" -d 'Emoji actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "sticker" -d 'Sticker actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "role" -d 'Role actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "channel" -d 'Channel actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "member" -d 'Member actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "voice" -d 'Voice actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "event" -d 'Event actions'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "timeout" -d 'Timeout a member'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "kick" -d 'Kick a member'
complete -c openclaw -n "__openclaw_command_path_matches message -- --container --profile --log-level" -a "ban" -d 'Ban a member'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -s m -l message -d 'Message body (required unless --media is set)'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l media -d 'Attach media (image/audio/video/document). Accepts local paths or URLs.'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l presentation -d 'Shared presentation payload as JSON (text, context, dividers, buttons, selects)'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l delivery -d 'Shared delivery preferences as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l pin -d 'Request that the delivered message be pinned when supported'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l reply-to -d 'Reply-to message id'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l thread-id -d 'Thread id (Telegram forum thread)'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l gif-playback -d 'Treat video media as GIF playback (WhatsApp only).'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l force-document -d 'Send media as document to avoid channel compression (Telegram, WhatsApp). Applies to images, GIFs, and videos.'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l silent -d 'Send message silently without notification (Telegram + Discord)'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message send -- --container --profile --log-level -m --message -t --target --media --presentation --delivery --reply-to --thread-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l targets -d 'Recipient/channel targets (same format as --target); accepts ids or names when the directory is available.'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l message -d 'Message to send'
complete -c openclaw -n "__openclaw_command_path_matches message broadcast -- --container --profile --log-level --channel --account --targets --message --media" -l media -d 'Media URL'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-question -d 'Poll question'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-option -d 'Poll option (repeat 2-12 times)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-multi -d 'Allow multiple selections'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-duration-hours -d 'Poll duration in hours (Discord)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-duration-seconds -d 'Poll duration in seconds (Telegram; 5-600)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-anonymous -d 'Send an anonymous poll (Telegram)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l poll-public -d 'Send a non-anonymous poll (Telegram)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -s m -l message -d 'Optional message body'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l silent -d 'Send poll silently without notification (Telegram + Discord where supported)'
complete -c openclaw -n "__openclaw_command_path_matches message poll -- --container --profile --log-level -t --target --channel --account --poll-question --poll-option --poll-duration-hours --poll-duration-seconds -m --message --thread-id" -l thread-id -d 'Thread id (Telegram forum topic / Slack thread ts)'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l message-id -d 'Message id'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l emoji -d 'Emoji for reactions'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l remove -d 'Remove reaction'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l participant -d 'WhatsApp reaction participant'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l from-me -d 'WhatsApp reaction fromMe'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l target-author -d 'Signal reaction target author (uuid or phone)'
complete -c openclaw -n "__openclaw_command_path_matches message react -- --container --profile --log-level -t --target --channel --account --message-id --emoji --participant --target-author --target-author-uuid" -l target-author-uuid -d 'Signal reaction target author uuid'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l message-id -d 'Message id'
complete -c openclaw -n "__openclaw_command_path_matches message reactions -- --container --profile --log-level -t --target --channel --account --message-id --limit" -l limit -d 'Result limit'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l limit -d 'Result limit'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l message-id -d 'Read a specific message id'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l before -d 'Read/search before id'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l after -d 'Read/search after id'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l around -d 'Read around id'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l thread-id -d 'Thread id (Slack thread timestamp)'
complete -c openclaw -n "__openclaw_command_path_matches message read -- --container --profile --log-level -t --target --channel --account --limit --message-id --before --after --around --thread-id" -l include-thread -d 'Include thread replies (Discord)'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l message-id -d 'Message id'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -s m -l message -d 'Message body'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message edit -- --container --profile --log-level --message-id -m --message -t --target --channel --account --thread-id" -l thread-id -d 'Thread id (Telegram forum thread)'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -l message-id -d 'Message id'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message delete -- --container --profile --log-level --message-id -t --target --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message pin -- --container --profile --log-level -t --target --channel --account --message-id" -l message-id -d 'Message id'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l message-id -d 'Message id (or pinned message resource id for MSTeams)'
complete -c openclaw -n "__openclaw_command_path_matches message unpin -- --container --profile --log-level -t --target --channel --account --message-id --pinned-message-id" -l pinned-message-id -d 'Pinned message resource id (MSTeams: from pin or list-pins, not the chat message id)'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message pins -- --container --profile --log-level -t --target --channel --account --limit" -l limit -d 'Result limit'
complete -c openclaw -n "__openclaw_command_path_matches message permissions -- --container --profile --log-level -t --target --channel --account" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message permissions -- --container --profile --log-level -t --target --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message permissions -- --container --profile --log-level -t --target --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message permissions -- --container --profile --log-level -t --target --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message permissions -- --container --profile --log-level -t --target --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message permissions -- --container --profile --log-level -t --target --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l query -d 'Search query'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l channel-id -d 'Channel id'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l channel-ids -d 'Channel id (repeat)'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l author-id -d 'Author id'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l author-ids -d 'Author id (repeat)'
complete -c openclaw -n "__openclaw_command_path_matches message search -- --container --profile --log-level --channel --account --guild-id --query --channel-id --channel-ids --author-id --author-ids --limit" -l limit -d 'Result limit'
complete -c openclaw -n "__openclaw_command_path_matches message thread -- --container --profile --log-level" -a "create" -d 'Create a thread'
complete -c openclaw -n "__openclaw_command_path_matches message thread -- --container --profile --log-level" -a "list" -d 'List threads'
complete -c openclaw -n "__openclaw_command_path_matches message thread -- --container --profile --log-level" -a "reply" -d 'Reply in a thread'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l thread-name -d 'Thread name'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l message-id -d 'Message id (optional)'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -s m -l message -d 'Initial thread message text'
complete -c openclaw -n "__openclaw_command_path_matches message thread create -- --container --profile --log-level --thread-name -t --target --channel --account --message-id -m --message --auto-archive-min" -l auto-archive-min -d 'Thread auto-archive minutes'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l channel-id -d 'Channel id'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l include-archived -d 'Include archived threads'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l before -d 'Read/search before id'
complete -c openclaw -n "__openclaw_command_path_matches message thread list -- --container --profile --log-level --guild-id --channel --account --channel-id --before --limit" -l limit -d 'Result limit'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -s m -l message -d 'Message body'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l media -d 'Attach media (image/audio/video/document). Accepts local paths or URLs.'
complete -c openclaw -n "__openclaw_command_path_matches message thread reply -- --container --profile --log-level -m --message -t --target --channel --account --media --reply-to" -l reply-to -d 'Reply-to message id'
complete -c openclaw -n "__openclaw_command_path_matches message emoji -- --container --profile --log-level" -a "list" -d 'List emojis'
complete -c openclaw -n "__openclaw_command_path_matches message emoji -- --container --profile --log-level" -a "upload" -d 'Upload an emoji'
complete -c openclaw -n "__openclaw_command_path_matches message emoji list -- --container --profile --log-level --channel --account --guild-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message emoji list -- --container --profile --log-level --channel --account --guild-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message emoji list -- --container --profile --log-level --channel --account --guild-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message emoji list -- --container --profile --log-level --channel --account --guild-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message emoji list -- --container --profile --log-level --channel --account --guild-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message emoji list -- --container --profile --log-level --channel --account --guild-id" -l guild-id -d 'Guild id (Discord)'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l emoji-name -d 'Emoji name'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l media -d 'Emoji media (path or URL)'
complete -c openclaw -n "__openclaw_command_path_matches message emoji upload -- --container --profile --log-level --guild-id --channel --account --emoji-name --media --role-ids" -l role-ids -d 'Role id (repeat)'
complete -c openclaw -n "__openclaw_command_path_matches message sticker -- --container --profile --log-level" -a "send" -d 'Send stickers'
complete -c openclaw -n "__openclaw_command_path_matches message sticker -- --container --profile --log-level" -a "upload" -d 'Upload a sticker'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -l sticker-id -d 'Sticker id (repeat)'
complete -c openclaw -n "__openclaw_command_path_matches message sticker send -- --container --profile --log-level -t --target --channel --account --sticker-id -m --message" -s m -l message -d 'Optional message body'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l sticker-name -d 'Sticker name'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l sticker-desc -d 'Sticker description'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l sticker-tags -d 'Sticker tags'
complete -c openclaw -n "__openclaw_command_path_matches message sticker upload -- --container --profile --log-level --guild-id --channel --account --sticker-name --sticker-desc --sticker-tags --media" -l media -d 'Sticker media (path or URL)'
complete -c openclaw -n "__openclaw_command_path_matches message role -- --container --profile --log-level" -a "info" -d 'List roles'
complete -c openclaw -n "__openclaw_command_path_matches message role -- --container --profile --log-level" -a "add" -d 'Add role to a member'
complete -c openclaw -n "__openclaw_command_path_matches message role -- --container --profile --log-level" -a "remove" -d 'Remove role from a member'
complete -c openclaw -n "__openclaw_command_path_matches message role info -- --container --profile --log-level --guild-id --channel --account" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message role info -- --container --profile --log-level --guild-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message role info -- --container --profile --log-level --guild-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message role info -- --container --profile --log-level --guild-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message role info -- --container --profile --log-level --guild-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message role info -- --container --profile --log-level --guild-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l role-id -d 'Role id'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message role add -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l role-id -d 'Role id'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message role remove -- --container --profile --log-level --guild-id --user-id --role-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message channel -- --container --profile --log-level" -a "info" -d 'Fetch channel info'
complete -c openclaw -n "__openclaw_command_path_matches message channel -- --container --profile --log-level" -a "list" -d 'List channels'
complete -c openclaw -n "__openclaw_command_path_matches message channel info -- --container --profile --log-level -t --target --channel --account" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id'
complete -c openclaw -n "__openclaw_command_path_matches message channel info -- --container --profile --log-level -t --target --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message channel info -- --container --profile --log-level -t --target --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message channel info -- --container --profile --log-level -t --target --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message channel info -- --container --profile --log-level -t --target --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message channel info -- --container --profile --log-level -t --target --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message channel list -- --container --profile --log-level --guild-id --channel --account" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message channel list -- --container --profile --log-level --guild-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message channel list -- --container --profile --log-level --guild-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message channel list -- --container --profile --log-level --guild-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message channel list -- --container --profile --log-level --guild-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message channel list -- --container --profile --log-level --guild-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message member -- --container --profile --log-level" -a "info" -d 'Fetch member info'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message member info -- --container --profile --log-level --user-id --channel --account --guild-id" -l guild-id -d 'Guild id (Discord)'
complete -c openclaw -n "__openclaw_command_path_matches message voice -- --container --profile --log-level" -a "status" -d 'Fetch voice status'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message voice status -- --container --profile --log-level --guild-id --user-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message event -- --container --profile --log-level" -a "list" -d 'List scheduled events'
complete -c openclaw -n "__openclaw_command_path_matches message event -- --container --profile --log-level" -a "create" -d 'Create a scheduled event'
complete -c openclaw -n "__openclaw_command_path_matches message event list -- --container --profile --log-level --guild-id --channel --account" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message event list -- --container --profile --log-level --guild-id --channel --account" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message event list -- --container --profile --log-level --guild-id --channel --account" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message event list -- --container --profile --log-level --guild-id --channel --account" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message event list -- --container --profile --log-level --guild-id --channel --account" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message event list -- --container --profile --log-level --guild-id --channel --account" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l event-name -d 'Event name'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l start-time -d 'Event start time'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l end-time -d 'Event end time'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l desc -d 'Event description'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l channel-id -d 'Channel id'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l location -d 'Event location'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l event-type -d 'Event type'
complete -c openclaw -n "__openclaw_command_path_matches message event create -- --container --profile --log-level --guild-id --event-name --start-time --channel --account --end-time --desc --channel-id --location --event-type --image" -l image -d 'Cover image URL or local file path'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l duration-min -d 'Timeout duration minutes'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l until -d 'Timeout until'
complete -c openclaw -n "__openclaw_command_path_matches message timeout -- --container --profile --log-level --guild-id --user-id --channel --account --duration-min --until --reason" -l reason -d 'Moderation reason'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message kick -- --container --profile --log-level --guild-id --user-id --channel --account --reason" -l reason -d 'Moderation reason'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l guild-id -d 'Guild id'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l user-id -d 'User id'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l reason -d 'Moderation reason'
complete -c openclaw -n "__openclaw_command_path_matches message ban -- --container --profile --log-level --guild-id --user-id --channel --account --reason --delete-days" -l delete-days -d 'Ban delete message days'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "serve" -d 'Expose OpenClaw channels over MCP stdio'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "list" -d 'List configured MCP servers'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "show" -d 'Show one configured MCP server or the full MCP config'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "status" -d 'Show configured MCP server transport status without connecting'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "probe" -d 'Connect to configured MCP servers and list available capabilities'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "doctor" -d 'Check configured MCP servers for static setup problems'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "add" -d 'Add one MCP server from flags and probe it before saving'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "set" -d 'Set one configured MCP server from a JSON object'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "tools" -d 'Update per-server MCP tool include/exclude filters'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "configure" -d 'Update MCP server operator controls without replacing the server'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "login" -d 'Authorize an OAuth MCP server'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "logout" -d 'Clear stored OAuth credentials for an MCP server'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "reload" -d 'Dispose cached MCP runtimes so new config is used on the next turn'
complete -c openclaw -n "__openclaw_command_path_matches mcp -- --container --profile --log-level" -a "unset" -d 'Remove one configured MCP server'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -l token-file -d 'Read gateway token from file'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -l password -d 'Gateway password (if required)'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -l claude-channel-mode -d 'Claude channel notification mode: auto, on, or off'
complete -c openclaw -n "__openclaw_command_path_matches mcp serve -- --container --profile --log-level --url --token --token-file --password --password-file --claude-channel-mode" -s v -l verbose -d 'Verbose logging to stderr'
complete -c openclaw -n "__openclaw_command_path_matches mcp list -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches mcp show -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches mcp status -- --container --profile --log-level" -s v -l verbose -d 'Show transport, auth, timeout, and filter details'
complete -c openclaw -n "__openclaw_command_path_matches mcp status -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches mcp probe -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches mcp doctor -- --container --profile --log-level" -l probe -d 'Also connect to each checked server'
complete -c openclaw -n "__openclaw_command_path_matches mcp doctor -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l command -d 'Stdio command to spawn'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l arg -d 'Repeatable stdio argument'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l env -d 'Repeatable stdio environment entry'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l cwd -d 'Working directory for stdio server'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l url -d 'HTTP MCP server URL'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l transport -d 'HTTP transport: streamable-http or sse'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l header -d 'Repeatable HTTP header'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l auth -d 'HTTP auth mode: oauth'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l oauth-scope -d 'OAuth scope'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l oauth-redirect-url -d 'OAuth redirect URL'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l oauth-client-metadata-url -d 'OAuth client metadata URL'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l include -d 'Comma-separated MCP tool names or '\''*'\'' globs to expose'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l exclude -d 'Comma-separated MCP tool names or '\''*'\'' globs to hide'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l timeout -d 'Per-request timeout in seconds'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l connect-timeout -d 'Connection timeout in seconds'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l parallel -d 'Mark this server safe for concurrent tool calls'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l disabled -d 'Save the server disabled'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l ssl-verify -d 'Verify HTTPS certificates: true or false'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l client-cert -d 'HTTP mutual TLS client certificate path'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l client-key -d 'HTTP mutual TLS client key path'
complete -c openclaw -n "__openclaw_command_path_matches mcp add -- --container --profile --log-level --command --arg --env --cwd --url --transport --header --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --include --exclude --timeout --connect-timeout --ssl-verify --client-cert --client-key" -l no-probe -d 'Save without connecting first'
complete -c openclaw -n "__openclaw_command_path_matches mcp tools -- --container --profile --log-level --include --exclude" -l include -d 'Comma-separated MCP tool names or '\''*'\'' globs to expose'
complete -c openclaw -n "__openclaw_command_path_matches mcp tools -- --container --profile --log-level --include --exclude" -l exclude -d 'Comma-separated MCP tool names or '\''*'\'' globs to hide'
complete -c openclaw -n "__openclaw_command_path_matches mcp tools -- --container --profile --log-level --include --exclude" -l clear -d 'Clear this server'\''s MCP tool filter'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l enable -d 'Enable this saved server'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l disable -d 'Disable this saved server'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l include -d 'Comma-separated MCP tool names or '\''*'\'' globs to expose'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l exclude -d 'Comma-separated MCP tool names or '\''*'\'' globs to hide'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l clear-tools -d 'Clear this server'\''s MCP tool filter'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l timeout -d 'Per-request timeout in seconds'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l connect-timeout -d 'Connection timeout in seconds'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l clear-timeouts -d 'Clear request and connection timeout overrides'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l parallel -d 'Mark this server safe for concurrent tool calls'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l no-parallel -d 'Clear the concurrent tool-call marker'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l auth -d 'HTTP auth mode: oauth'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l clear-auth -d 'Clear auth and OAuth metadata'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l oauth-scope -d 'OAuth scope'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l oauth-redirect-url -d 'OAuth redirect URL'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l oauth-client-metadata-url -d 'OAuth client metadata URL'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l ssl-verify -d 'Verify HTTPS certificates: true or false'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l client-cert -d 'HTTP mutual TLS client certificate path'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l client-key -d 'HTTP mutual TLS client key path'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l clear-tls -d 'Clear TLS verification and mTLS overrides'
complete -c openclaw -n "__openclaw_command_path_matches mcp configure -- --container --profile --log-level --include --exclude --timeout --connect-timeout --auth --oauth-scope --oauth-redirect-url --oauth-client-metadata-url --ssl-verify --client-cert --client-key" -l probe -d 'Probe the updated server before saving'
complete -c openclaw -n "__openclaw_command_path_matches mcp login -- --container --profile --log-level --code" -l code -d 'Authorization code from the OAuth redirect'
complete -c openclaw -n "__openclaw_command_path_matches transcripts -- --container --profile --log-level" -a "list" -d 'List stored transcript sessions'
complete -c openclaw -n "__openclaw_command_path_matches transcripts -- --container --profile --log-level" -a "show" -d 'Print a transcript summary markdown file'
complete -c openclaw -n "__openclaw_command_path_matches transcripts -- --container --profile --log-level" -a "path" -d 'Print a stored transcripts artifact path'
complete -c openclaw -n "__openclaw_command_path_matches transcripts list -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches transcripts show -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches transcripts path -- --container --profile --log-level" -l dir -d 'Print the session directory'
complete -c openclaw -n "__openclaw_command_path_matches transcripts path -- --container --profile --log-level" -l metadata -d 'Print metadata.json'
complete -c openclaw -n "__openclaw_command_path_matches transcripts path -- --container --profile --log-level" -l transcript -d 'Print transcript.jsonl'
complete -c openclaw -n "__openclaw_command_path_matches transcripts path -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -s m -l message -d 'Message body for the agent'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -s t -l to -d 'Recipient number in E.164 used to derive the session key'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l session-key -d 'Explicit session key (agent:<id>:<key>, or scoped to --agent)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l session-id -d 'Use an explicit session id'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l agent -d 'Agent id (overrides routing bindings)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l model -d 'Model override for this run (provider/model or model id)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l thinking -d 'Thinking level: off | minimal | low | medium | high | xhigh | adaptive | max where supported'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l verbose -d 'Persist agent verbose level for the session'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l channel -d 'Delivery channel: last|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch (omit to use the main session channel)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l reply-to -d 'Delivery target override (separate from session routing)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l reply-channel -d 'Delivery channel override (separate from routing)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l reply-account -d 'Delivery account id override'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l local -d 'Run the embedded agent locally (requires model provider API keys in your shell)'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l deliver -d 'Send the agent'\''s reply back to the selected channel'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches agent -- --container --profile --log-level -m --message -t --to --session-key --session-id --agent --model --thinking --verbose --channel --reply-to --reply-channel --reply-account --timeout" -l timeout -d 'Override agent command timeout (seconds, default 600 or config value)'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "list" -d 'List configured agents'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "bindings" -d 'List routing bindings'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "bind" -d 'Add routing bindings for an agent'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "unbind" -d 'Remove routing bindings for an agent'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "add" -d 'Add a new isolated agent'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "set-identity" -d 'Update an agent identity (name/theme/emoji/avatar)'
complete -c openclaw -n "__openclaw_command_path_matches agents -- --container --profile --log-level" -a "delete" -d 'Delete an agent and prune workspace/state'
complete -c openclaw -n "__openclaw_command_path_matches agents list -- --container --profile --log-level" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches agents list -- --container --profile --log-level" -l bindings -d 'Include routing bindings'
complete -c openclaw -n "__openclaw_command_path_matches agents bindings -- --container --profile --log-level --agent" -l agent -d 'Filter by agent id'
complete -c openclaw -n "__openclaw_command_path_matches agents bindings -- --container --profile --log-level --agent" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches agents bind -- --container --profile --log-level --agent --bind" -l agent -d 'Agent id (defaults to current default agent)'
complete -c openclaw -n "__openclaw_command_path_matches agents bind -- --container --profile --log-level --agent --bind" -l bind -d 'Binding to add (repeatable). If omitted, accountId is resolved by channel defaults/hooks.'
complete -c openclaw -n "__openclaw_command_path_matches agents bind -- --container --profile --log-level --agent --bind" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches agents unbind -- --container --profile --log-level --agent --bind" -l agent -d 'Agent id (defaults to current default agent)'
complete -c openclaw -n "__openclaw_command_path_matches agents unbind -- --container --profile --log-level --agent --bind" -l bind -d 'Binding to remove (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches agents unbind -- --container --profile --log-level --agent --bind" -l all -d 'Remove all bindings for this agent'
complete -c openclaw -n "__openclaw_command_path_matches agents unbind -- --container --profile --log-level --agent --bind" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches agents add -- --container --profile --log-level --workspace --model --agent-dir --bind" -l workspace -d 'Workspace directory for the new agent'
complete -c openclaw -n "__openclaw_command_path_matches agents add -- --container --profile --log-level --workspace --model --agent-dir --bind" -l model -d 'Model id for this agent'
complete -c openclaw -n "__openclaw_command_path_matches agents add -- --container --profile --log-level --workspace --model --agent-dir --bind" -l agent-dir -d 'Agent state directory for this agent'
complete -c openclaw -n "__openclaw_command_path_matches agents add -- --container --profile --log-level --workspace --model --agent-dir --bind" -l bind -d 'Route channel binding (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches agents add -- --container --profile --log-level --workspace --model --agent-dir --bind" -l non-interactive -d 'Disable prompts; requires --workspace'
complete -c openclaw -n "__openclaw_command_path_matches agents add -- --container --profile --log-level --workspace --model --agent-dir --bind" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l agent -d 'Agent id to update'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l workspace -d 'Workspace directory used to locate the agent + IDENTITY.md'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l identity-file -d 'Explicit IDENTITY.md path to read'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l from-identity -d 'Read values from IDENTITY.md'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l name -d 'Identity name'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l theme -d 'Identity theme'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l emoji -d 'Identity emoji'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l avatar -d 'Identity avatar (workspace path, http(s) URL, or data URI)'
complete -c openclaw -n "__openclaw_command_path_matches agents set-identity -- --container --profile --log-level --agent --workspace --identity-file --name --theme --emoji --avatar" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches agents delete -- --container --profile --log-level" -l force -d 'Skip confirmation'
complete -c openclaw -n "__openclaw_command_path_matches agents delete -- --container --profile --log-level" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l all -d 'Full diagnosis (read-only, pasteable)'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l usage -d 'Show model provider usage/quota snapshots'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l deep -d 'Probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l timeout -d 'Probe timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches status -- --container --profile --log-level --timeout" -l debug -d 'Alias for --verbose'
complete -c openclaw -n "__openclaw_command_path_matches health -- --container --profile --log-level --timeout" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches health -- --container --profile --log-level --timeout" -l timeout -d 'Connection timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches health -- --container --profile --log-level --timeout" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches health -- --container --profile --log-level --timeout" -l debug -d 'Alias for --verbose'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -a "list" -d 'List stored conversation sessions'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -a "cleanup" -d 'Run session-store maintenance now'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -a "tail" -d 'Tail human-readable session trajectory progress'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -a "export-trajectory" -d 'Export a redacted trajectory bundle for a stored session'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l store -d 'Path to session store (default: resolved from config)'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l agent -d 'Agent id to inspect (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l all-agents -d 'Aggregate sessions across all configured agents'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l active -d 'Only show sessions updated within the past N minutes'
complete -c openclaw -n "__openclaw_command_path_matches sessions -- --container --profile --log-level --store --agent --active --limit" -l limit -d 'Max sessions to show (default: 100; use "all" for full output)'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l store -d 'Path to session store (default: resolved from config)'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l agent -d 'Agent id to inspect (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l all-agents -d 'Aggregate sessions across all configured agents'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l active -d 'Only show sessions updated within the past N minutes'
complete -c openclaw -n "__openclaw_command_path_matches sessions list -- --container --profile --log-level --store --agent --active --limit" -l limit -d 'Max sessions to show (default: 100; use "all" for full output)'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l store -d 'Path to session store (default: resolved from config)'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l agent -d 'Agent id to maintain (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l all-agents -d 'Run maintenance across all configured agents'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l dry-run -d 'Preview maintenance actions without writing'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l enforce -d 'Apply maintenance even when configured mode is warn'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l fix-missing -d 'Remove store entries whose transcript files are missing (bypasses age/count retention)'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l fix-dm-scope -d 'Retire stale direct-DM session rows that no longer match session.dmScope=main'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l active-key -d 'Protect this session key from budget-eviction'
complete -c openclaw -n "__openclaw_command_path_matches sessions cleanup -- --container --profile --log-level --store --agent --active --limit --active-key" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches sessions tail -- --container --profile --log-level --store --agent --active --limit --session-key --tail" -l session-key -d 'Session key to tail (default: active sessions or latest)'
complete -c openclaw -n "__openclaw_command_path_matches sessions tail -- --container --profile --log-level --store --agent --active --limit --session-key --tail" -l tail -d 'Number of existing trajectory events to show'
complete -c openclaw -n "__openclaw_command_path_matches sessions tail -- --container --profile --log-level --store --agent --active --limit --session-key --tail" -l follow -d 'Continue following for new trajectory events'
complete -c openclaw -n "__openclaw_command_path_matches sessions tail -- --container --profile --log-level --store --agent --active --limit --session-key --tail" -l store -d 'Path to session store (default: resolved from config)'
complete -c openclaw -n "__openclaw_command_path_matches sessions tail -- --container --profile --log-level --store --agent --active --limit --session-key --tail" -l agent -d 'Agent id to inspect (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches sessions tail -- --container --profile --log-level --store --agent --active --limit --session-key --tail" -l all-agents -d 'Aggregate sessions across all configured agents'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l session-key -d 'Session key to export'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l output -d 'Output directory name inside .openclaw/trajectory-exports'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l workspace -d 'Workspace root for the export (default: current directory)'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l store -d 'Path to session store (default: resolved from session key)'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l agent -d 'Agent id for resolving the default session store'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l request-json-base64 -d 'Base64url-encoded export request'
complete -c openclaw -n "__openclaw_command_path_matches sessions export-trajectory -- --container --profile --log-level --store --agent --active --limit --session-key --output --workspace --request-json-base64" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches commitments -- --container --profile --log-level --agent --status" -a "list" -d 'List inferred follow-up commitments'
complete -c openclaw -n "__openclaw_command_path_matches commitments -- --container --profile --log-level --agent --status" -a "dismiss" -d 'Dismiss inferred follow-up commitments'
complete -c openclaw -n "__openclaw_command_path_matches commitments -- --container --profile --log-level --agent --status" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches commitments -- --container --profile --log-level --agent --status" -l agent -d 'Agent id to inspect'
complete -c openclaw -n "__openclaw_command_path_matches commitments -- --container --profile --log-level --agent --status" -l status -d 'Filter by status (pending, sent, dismissed, snoozed, expired)'
complete -c openclaw -n "__openclaw_command_path_matches commitments -- --container --profile --log-level --agent --status" -l all -d 'Show all statuses'
complete -c openclaw -n "__openclaw_command_path_matches commitments list -- --container --profile --log-level --agent --status" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches commitments list -- --container --profile --log-level --agent --status" -l agent -d 'Agent id to inspect'
complete -c openclaw -n "__openclaw_command_path_matches commitments list -- --container --profile --log-level --agent --status" -l status -d 'Filter by status (pending, sent, dismissed, snoozed, expired)'
complete -c openclaw -n "__openclaw_command_path_matches commitments list -- --container --profile --log-level --agent --status" -l all -d 'Show all statuses'
complete -c openclaw -n "__openclaw_command_path_matches commitments dismiss -- --container --profile --log-level --agent --status" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "list" -d 'List tracked background tasks'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "audit" -d 'Show stale or broken background tasks and TaskFlows'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "maintenance" -d 'Preview or apply tasks and TaskFlow maintenance'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "show" -d 'Show one background task by task id, run id, or session key'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "notify" -d 'Set task notify policy'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "cancel" -d 'Cancel a running background task'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -a "flow" -d 'Inspect durable TaskFlow state under tasks'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -l runtime -d 'Filter by kind (subagent, acp, cron, cli)'
complete -c openclaw -n "__openclaw_command_path_matches tasks -- --container --profile --log-level --runtime --status" -l status -d 'Filter by status (queued, running, succeeded, failed, timed_out, cancelled, lost)'
complete -c openclaw -n "__openclaw_command_path_matches tasks list -- --container --profile --log-level --runtime --status" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tasks list -- --container --profile --log-level --runtime --status" -l runtime -d 'Filter by kind (subagent, acp, cron, cli)'
complete -c openclaw -n "__openclaw_command_path_matches tasks list -- --container --profile --log-level --runtime --status" -l status -d 'Filter by status (queued, running, succeeded, failed, timed_out, cancelled, lost)'
complete -c openclaw -n "__openclaw_command_path_matches tasks audit -- --container --profile --log-level --runtime --status --severity --code --limit" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tasks audit -- --container --profile --log-level --runtime --status --severity --code --limit" -l severity -d 'Filter by severity (warn, error)'
complete -c openclaw -n "__openclaw_command_path_matches tasks audit -- --container --profile --log-level --runtime --status --severity --code --limit" -l code -d 'Filter by finding code (stale_queued, stale_running, lost, delivery_failed, missing_cleanup, inconsistent_timestamps, restore_failed, stale_waiting, stale_blocked, cancel_stuck, missing_linked_tasks, blocked_task_missing)'
complete -c openclaw -n "__openclaw_command_path_matches tasks audit -- --container --profile --log-level --runtime --status --severity --code --limit" -l limit -d 'Limit displayed findings'
complete -c openclaw -n "__openclaw_command_path_matches tasks maintenance -- --container --profile --log-level --runtime --status" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tasks maintenance -- --container --profile --log-level --runtime --status" -l apply -d 'Apply reconciliation, cleanup stamping, and pruning'
complete -c openclaw -n "__openclaw_command_path_matches tasks show -- --container --profile --log-level --runtime --status" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tasks flow -- --container --profile --log-level --runtime --status" -a "list" -d 'List tracked TaskFlows'
complete -c openclaw -n "__openclaw_command_path_matches tasks flow -- --container --profile --log-level --runtime --status" -a "show" -d 'Show one TaskFlow by flow id or owner key'
complete -c openclaw -n "__openclaw_command_path_matches tasks flow -- --container --profile --log-level --runtime --status" -a "cancel" -d 'Cancel a running TaskFlow'
complete -c openclaw -n "__openclaw_command_path_matches tasks flow list -- --container --profile --log-level --runtime --status" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tasks flow list -- --container --profile --log-level --runtime --status" -l status -d 'Filter by status (queued, running, waiting, blocked, succeeded, failed, cancelled, lost)'
complete -c openclaw -n "__openclaw_command_path_matches tasks flow show -- --container --profile --log-level --runtime --status" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -a "client" -d 'Run an interactive ACP client against the local ACP bridge'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l token-file -d 'Read gateway token from file'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l password -d 'Gateway password (if required)'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l session -d 'Default session key (e.g. agent:main:main)'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l session-label -d 'Default session label to resolve'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l require-existing -d 'Fail if the session key/label does not exist'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l reset-session -d 'Reset the session key before first use'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l no-prefix-cwd -d 'Do not prefix prompts with the working directory'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -l provenance -d 'ACP provenance mode: off, meta, or meta+receipt'
complete -c openclaw -n "__openclaw_command_path_matches acp -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance" -s v -l verbose -d 'Verbose logging to stderr'
complete -c openclaw -n "__openclaw_command_path_matches acp client -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance --cwd --server --server-args" -l cwd -d 'Working directory for the ACP session'
complete -c openclaw -n "__openclaw_command_path_matches acp client -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance --cwd --server --server-args" -l server -d 'ACP server command (default: openclaw)'
complete -c openclaw -n "__openclaw_command_path_matches acp client -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance --cwd --server --server-args" -l server-args -d 'Extra arguments for the ACP server'
complete -c openclaw -n "__openclaw_command_path_matches acp client -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance --cwd --server --server-args" -l server-verbose -d 'Enable verbose logging on the ACP server'
complete -c openclaw -n "__openclaw_command_path_matches acp client -- --container --profile --log-level --url --token --token-file --password --password-file --session --session-label --provenance --cwd --server --server-args" -s v -l verbose -d 'Verbose client logging'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "run" -d 'Run the WebSocket Gateway (foreground)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "status" -d 'Show gateway service status + probe connectivity/capability'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "install" -d 'Install the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "uninstall" -d 'Uninstall the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "start" -d 'Start the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "stop" -d 'Stop the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "restart" -d 'Restart the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "call" -d 'Call a Gateway method'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "usage-cost" -d 'Fetch usage cost summary from session logs'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "health" -d 'Fetch Gateway health'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "stability" -d 'Fetch payload-free Gateway stability diagnostics'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "diagnostics" -d 'Export local support diagnostics'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "probe" -d 'Show gateway reachability, auth capability, and read-probe summary (local + remote)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "discover" -d 'Discover gateways via Bonjour (local + wide-area if configured)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l port -d 'Port for the gateway WebSocket'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l bind -d 'Bind mode ("loopback"|"lan"|"tailnet"|"auto"|"custom"). Defaults to config gateway.bind (or loopback).'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l token -d 'Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l auth -d 'Gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l password -d 'Password for auth mode=password'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l tailscale -d 'Tailscale exposure mode ("off"|"serve"|"funnel")'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l tailscale-reset-on-exit -d 'Reset Tailscale serve/funnel configuration on shutdown'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l allow-unconfigured -d 'Allow gateway start without enforcing gateway.mode=local in config (does not repair config)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l dev -d 'Create a dev config + workspace if missing (no BOOTSTRAP.md)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l reset -d 'Reset dev config + credentials + sessions + workspace (requires --dev)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l force -d 'Kill any existing listener on the target port before starting'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l verbose -d 'Verbose logging to stdout/stderr'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l cli-backend-logs -d 'Only show CLI backend logs in the console (includes stdout/stderr)'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l claude-cli-logs -d 'Deprecated alias for --cli-backend-logs'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l ws-log -d 'WebSocket log style ("auto"|"full"|"compact")'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l compact -d 'Alias for "--ws-log compact"'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l raw-stream -d 'Log raw model stream events to jsonl'
complete -c openclaw -n "__openclaw_command_path_matches gateway -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l raw-stream-path -d 'Raw stream jsonl path'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l port -d 'Port for the gateway WebSocket'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l bind -d 'Bind mode ("loopback"|"lan"|"tailnet"|"auto"|"custom"). Defaults to config gateway.bind (or loopback).'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l token -d 'Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l auth -d 'Gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l password -d 'Password for auth mode=password'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l tailscale -d 'Tailscale exposure mode ("off"|"serve"|"funnel")'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l tailscale-reset-on-exit -d 'Reset Tailscale serve/funnel configuration on shutdown'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l allow-unconfigured -d 'Allow gateway start without enforcing gateway.mode=local in config (does not repair config)'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l dev -d 'Create a dev config + workspace if missing (no BOOTSTRAP.md)'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l reset -d 'Reset dev config + credentials + sessions + workspace (requires --dev)'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l force -d 'Kill any existing listener on the target port before starting'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l verbose -d 'Verbose logging to stdout/stderr'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l cli-backend-logs -d 'Only show CLI backend logs in the console (includes stdout/stderr)'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l claude-cli-logs -d 'Deprecated alias for --cli-backend-logs'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l ws-log -d 'WebSocket log style ("auto"|"full"|"compact")'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l compact -d 'Alias for "--ws-log compact"'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l raw-stream -d 'Log raw model stream events to jsonl'
complete -c openclaw -n "__openclaw_command_path_matches gateway run -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l raw-stream-path -d 'Raw stream jsonl path'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l url -d 'Gateway WebSocket URL (defaults to config/remote/local)'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l no-probe -d 'Skip RPC probe'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l require-rpc -d 'Exit non-zero when the RPC probe fails'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l deep -d 'Scan system-level services'
complete -c openclaw -n "__openclaw_command_path_matches gateway status -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway install -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --runtime --wrapper" -l port -d 'Gateway port'
complete -c openclaw -n "__openclaw_command_path_matches gateway install -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --runtime --wrapper" -l runtime -d 'Daemon runtime (node|bun). Default: node'
complete -c openclaw -n "__openclaw_command_path_matches gateway install -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --runtime --wrapper" -l token -d 'Gateway token (token auth)'
complete -c openclaw -n "__openclaw_command_path_matches gateway install -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --runtime --wrapper" -l wrapper -d 'Executable wrapper for generated service ProgramArguments'
complete -c openclaw -n "__openclaw_command_path_matches gateway install -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --runtime --wrapper" -l force -d 'Reinstall/overwrite if already installed'
complete -c openclaw -n "__openclaw_command_path_matches gateway install -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --runtime --wrapper" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway uninstall -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway start -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway stop -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway stop -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -l disable -d 'Persistently suppress KeepAlive/RunAtLoad so the gateway does not respawn until next start (launchd only)'
complete -c openclaw -n "__openclaw_command_path_matches gateway restart -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --wait" -l force -d 'Restart immediately without waiting for active gateway work'
complete -c openclaw -n "__openclaw_command_path_matches gateway restart -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --wait" -l safe -d 'Request an OpenClaw-aware restart after active work drains'
complete -c openclaw -n "__openclaw_command_path_matches gateway restart -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --wait" -l skip-deferral -d 'Bypass the safe-restart deferral gate; requires --safe'
complete -c openclaw -n "__openclaw_command_path_matches gateway restart -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --wait" -l wait -d 'Wait duration before forcing restart (ms, 10s, 5m; 0 waits indefinitely)'
complete -c openclaw -n "__openclaw_command_path_matches gateway restart -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --wait" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l params -d 'JSON object string for params'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches gateway call -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --params --url --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l days -d 'Number of days to include'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches gateway usage-cost -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --days --url --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway health -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches gateway health -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches gateway health -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches gateway health -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway health -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches gateway health -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l limit -d 'Maximum number of recent events'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l type -d 'Filter by diagnostic event type'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l since-seq -d 'Only include events after this sequence'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l bundle -d 'Read a persisted stability bundle instead of calling Gateway; pass "latest" for newest'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l export -d 'Write a shareable support diagnostics export'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l output -d 'Diagnostics export output .zip path'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches gateway stability -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --limit --type --since-seq --bundle --output --url --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path" -a "export" -d 'Write a shareable, payload-free diagnostics .zip'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l output -d 'Output .zip path'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l log-lines -d 'Maximum sanitized log lines to include'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l log-bytes -d 'Maximum log bytes to inspect'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l url -d 'Gateway WebSocket URL for health snapshot'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l token -d 'Gateway token for health snapshot'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l password -d 'Gateway password for health snapshot'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l timeout -d 'Status/health snapshot timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l no-stability-bundle -d 'Skip persisted stability bundle lookup'
complete -c openclaw -n "__openclaw_command_path_matches gateway diagnostics export -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --output --log-lines --log-bytes --url --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l url -d 'Explicit Gateway WebSocket URL (still probes localhost)'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l ssh -d 'SSH target for remote gateway tunnel (user@host or user@host:port)'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l ssh-identity -d 'SSH identity file path'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l ssh-auto -d 'Try to derive an SSH target from Bonjour discovery'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l token -d 'Gateway token (applies to all probes)'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l password -d 'Gateway password (applies to all probes)'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l timeout -d 'Overall probe budget in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway probe -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --url --ssh --ssh-identity --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches gateway discover -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --timeout" -l timeout -d 'Per-command timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches gateway discover -- --container --profile --log-level --port --bind --token --auth --password --password-file --tailscale --ws-log --raw-stream-path --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches daemon -- --container --profile --log-level" -a "status" -d 'Show service install status + probe connectivity/capability'
complete -c openclaw -n "__openclaw_command_path_matches daemon -- --container --profile --log-level" -a "install" -d 'Install the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches daemon -- --container --profile --log-level" -a "uninstall" -d 'Uninstall the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches daemon -- --container --profile --log-level" -a "start" -d 'Start the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches daemon -- --container --profile --log-level" -a "stop" -d 'Stop the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches daemon -- --container --profile --log-level" -a "restart" -d 'Restart the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to config/remote/local)'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l no-probe -d 'Skip RPC probe'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l require-rpc -d 'Exit non-zero when the RPC probe fails'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l deep -d 'Scan system-level services'
complete -c openclaw -n "__openclaw_command_path_matches daemon status -- --container --profile --log-level --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches daemon install -- --container --profile --log-level --port --runtime --token --wrapper" -l port -d 'Gateway port'
complete -c openclaw -n "__openclaw_command_path_matches daemon install -- --container --profile --log-level --port --runtime --token --wrapper" -l runtime -d 'Daemon runtime (node|bun). Default: node'
complete -c openclaw -n "__openclaw_command_path_matches daemon install -- --container --profile --log-level --port --runtime --token --wrapper" -l token -d 'Gateway token (token auth)'
complete -c openclaw -n "__openclaw_command_path_matches daemon install -- --container --profile --log-level --port --runtime --token --wrapper" -l wrapper -d 'Executable wrapper for generated service ProgramArguments'
complete -c openclaw -n "__openclaw_command_path_matches daemon install -- --container --profile --log-level --port --runtime --token --wrapper" -l force -d 'Reinstall/overwrite if already installed'
complete -c openclaw -n "__openclaw_command_path_matches daemon install -- --container --profile --log-level --port --runtime --token --wrapper" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches daemon uninstall -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches daemon start -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches daemon stop -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches daemon stop -- --container --profile --log-level" -l disable -d 'Persistently suppress KeepAlive/RunAtLoad so the gateway does not respawn until next start (launchd only)'
complete -c openclaw -n "__openclaw_command_path_matches daemon restart -- --container --profile --log-level --wait" -l force -d 'Restart immediately without waiting for active gateway work'
complete -c openclaw -n "__openclaw_command_path_matches daemon restart -- --container --profile --log-level --wait" -l safe -d 'Request an OpenClaw-aware restart after active work drains'
complete -c openclaw -n "__openclaw_command_path_matches daemon restart -- --container --profile --log-level --wait" -l skip-deferral -d 'Bypass the safe-restart deferral gate; requires --safe'
complete -c openclaw -n "__openclaw_command_path_matches daemon restart -- --container --profile --log-level --wait" -l wait -d 'Wait duration before forcing restart (ms, 10s, 5m; 0 waits indefinitely)'
complete -c openclaw -n "__openclaw_command_path_matches daemon restart -- --container --profile --log-level --wait" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l limit -d 'Max lines to return'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l max-bytes -d 'Max bytes to read'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l follow -d 'Follow log output'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l interval -d 'Polling interval in ms'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l json -d 'Emit JSON log lines'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l plain -d 'Plain text output (no ANSI styling)'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l no-color -d 'Disable ANSI colors'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l local-time -d 'Display timestamps in local timezone (default)'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l utc -d 'Display timestamps in UTC'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches logs -- --container --profile --log-level --limit --max-bytes --interval --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches system -- --container --profile --log-level" -a "event" -d 'Enqueue a system event and optionally trigger a heartbeat'
complete -c openclaw -n "__openclaw_command_path_matches system -- --container --profile --log-level" -a "heartbeat" -d 'Heartbeat controls'
complete -c openclaw -n "__openclaw_command_path_matches system -- --container --profile --log-level" -a "presence" -d 'List system presence entries'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l text -d 'System event text'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l mode -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l session-key -d 'Target a specific session for the event (defaults to the agent'\''s main session)'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches system event -- --container --profile --log-level --text --mode --session-key --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat -- --container --profile --log-level" -a "last" -d 'Show the last heartbeat event'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat -- --container --profile --log-level" -a "enable" -d 'Enable heartbeats'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat -- --container --profile --log-level" -a "disable" -d 'Disable heartbeats'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat last -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat last -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat last -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat last -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat last -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat enable -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat enable -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat enable -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat enable -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat enable -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat disable -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat disable -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat disable -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat disable -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches system heartbeat disable -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches system presence -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches system presence -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches system presence -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches system presence -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches system presence -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "list" -d 'List models (configured by default)'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "status" -d 'Show configured model state'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "set" -d 'Set the default model'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "set-image" -d 'Set the image model'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "aliases" -d 'Manage model aliases'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "fallbacks" -d 'Manage model fallback list'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "image-fallbacks" -d 'Manage image model fallback list'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "scan" -d 'Scan OpenRouter free models for tools + images'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -a "auth" -d 'Manage model auth profiles'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -l status-json -d 'Output JSON (alias for `models status --json`)'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -l status-plain -d 'Plain output (alias for `models status --plain`)'
complete -c openclaw -n "__openclaw_command_path_matches models -- --container --profile --log-level --agent" -l agent -d 'Agent id to inspect (overrides OPENCLAW_AGENT_DIR)'
complete -c openclaw -n "__openclaw_command_path_matches models list -- --container --profile --log-level --agent --provider" -l all -d 'Show full model catalog'
complete -c openclaw -n "__openclaw_command_path_matches models list -- --container --profile --log-level --agent --provider" -l local -d 'Filter to local models'
complete -c openclaw -n "__openclaw_command_path_matches models list -- --container --profile --log-level --agent --provider" -l provider -d 'Filter by provider id'
complete -c openclaw -n "__openclaw_command_path_matches models list -- --container --profile --log-level --agent --provider" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models list -- --container --profile --log-level --agent --provider" -l plain -d 'Plain line output'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l plain -d 'Plain output'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l check -d 'Exit non-zero if auth is expiring/expired (1=expired/missing, 2=expiring)'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l probe -d 'Probe configured provider auth (live)'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l probe-provider -d 'Only probe a single provider'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l probe-profile -d 'Only probe specific auth profile ids (repeat or comma-separated)'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l probe-timeout -d 'Per-probe timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l probe-concurrency -d 'Concurrent probes'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l probe-max-tokens -d 'Probe max tokens (best-effort)'
complete -c openclaw -n "__openclaw_command_path_matches models status -- --container --profile --log-level --agent --probe-provider --probe-profile --probe-timeout --probe-concurrency --probe-max-tokens" -l agent -d 'Agent id to inspect (overrides OPENCLAW_AGENT_DIR)'
complete -c openclaw -n "__openclaw_command_path_matches models aliases -- --container --profile --log-level --agent" -a "list" -d 'List model aliases'
complete -c openclaw -n "__openclaw_command_path_matches models aliases -- --container --profile --log-level --agent" -a "add" -d 'Add or update a model alias'
complete -c openclaw -n "__openclaw_command_path_matches models aliases -- --container --profile --log-level --agent" -a "remove" -d 'Remove a model alias'
complete -c openclaw -n "__openclaw_command_path_matches models aliases list -- --container --profile --log-level --agent" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models aliases list -- --container --profile --log-level --agent" -l plain -d 'Plain output'
complete -c openclaw -n "__openclaw_command_path_matches models fallbacks -- --container --profile --log-level --agent" -a "list" -d 'List fallback models'
complete -c openclaw -n "__openclaw_command_path_matches models fallbacks -- --container --profile --log-level --agent" -a "add" -d 'Add a fallback model'
complete -c openclaw -n "__openclaw_command_path_matches models fallbacks -- --container --profile --log-level --agent" -a "remove" -d 'Remove a fallback model'
complete -c openclaw -n "__openclaw_command_path_matches models fallbacks -- --container --profile --log-level --agent" -a "clear" -d 'Clear all fallback models'
complete -c openclaw -n "__openclaw_command_path_matches models fallbacks list -- --container --profile --log-level --agent" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models fallbacks list -- --container --profile --log-level --agent" -l plain -d 'Plain output'
complete -c openclaw -n "__openclaw_command_path_matches models image-fallbacks -- --container --profile --log-level --agent" -a "list" -d 'List image fallback models'
complete -c openclaw -n "__openclaw_command_path_matches models image-fallbacks -- --container --profile --log-level --agent" -a "add" -d 'Add an image fallback model'
complete -c openclaw -n "__openclaw_command_path_matches models image-fallbacks -- --container --profile --log-level --agent" -a "remove" -d 'Remove an image fallback model'
complete -c openclaw -n "__openclaw_command_path_matches models image-fallbacks -- --container --profile --log-level --agent" -a "clear" -d 'Clear all image fallback models'
complete -c openclaw -n "__openclaw_command_path_matches models image-fallbacks list -- --container --profile --log-level --agent" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models image-fallbacks list -- --container --profile --log-level --agent" -l plain -d 'Plain output'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l min-params -d 'Minimum parameter size (billions)'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l max-age-days -d 'Skip models older than N days'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l provider -d 'Filter by provider prefix'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l max-candidates -d 'Max fallback candidates'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l timeout -d 'Per-probe timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l concurrency -d 'Probe concurrency'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l no-probe -d 'Skip live probes; list free candidates only'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l yes -d 'Accept defaults without prompting'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l no-input -d 'Disable prompts (use defaults)'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l set-default -d 'Set agents.defaults.model to the first selection'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l set-image -d 'Set agents.defaults.imageModel to the first image selection'
complete -c openclaw -n "__openclaw_command_path_matches models scan -- --container --profile --log-level --agent --min-params --max-age-days --provider --max-candidates --timeout --concurrency" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "list" -d 'List saved auth profiles'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "add" -d 'Interactive auth helper (provider auth or paste token)'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "login" -d 'Run a provider plugin auth flow (OAuth/API key)'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "setup-token" -d 'Run a provider CLI to create/sync a token (TTY required)'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "paste-token" -d 'Paste a token into auth-profiles.json and update config'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "paste-api-key" -d 'Paste an API key into auth-profiles.json and update config'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "login-github-copilot" -d 'Login to GitHub Copilot via GitHub device flow (TTY required)'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -a "order" -d 'Manage per-agent auth profile order overrides'
complete -c openclaw -n "__openclaw_command_path_matches models auth -- --container --profile --log-level --agent" -l agent -d 'Agent id for auth commands'
complete -c openclaw -n "__openclaw_command_path_matches models auth list -- --container --profile --log-level --agent --provider" -l provider -d 'Filter by provider id'
complete -c openclaw -n "__openclaw_command_path_matches models auth list -- --container --profile --log-level --agent --provider" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches models auth list -- --container --profile --log-level --agent --provider" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models auth login -- --container --profile --log-level --agent --provider --method --profile-id" -l provider -d 'Provider id registered by a plugin'
complete -c openclaw -n "__openclaw_command_path_matches models auth login -- --container --profile --log-level --agent --provider --method --profile-id" -l method -d 'Provider auth method id'
complete -c openclaw -n "__openclaw_command_path_matches models auth login -- --container --profile --log-level --agent --provider --method --profile-id" -l device-code -d 'Use the provider device-code auth method'
complete -c openclaw -n "__openclaw_command_path_matches models auth login -- --container --profile --log-level --agent --provider --method --profile-id" -l profile-id -d 'Auth profile id override for single-profile login methods'
complete -c openclaw -n "__openclaw_command_path_matches models auth login -- --container --profile --log-level --agent --provider --method --profile-id" -l set-default -d 'Apply the provider'\''s default model recommendation'
complete -c openclaw -n "__openclaw_command_path_matches models auth login -- --container --profile --log-level --agent --provider --method --profile-id" -l force -d 'Remove existing profiles for the provider before logging in (use when a cached OAuth profile is stuck or you want to switch accounts)'
complete -c openclaw -n "__openclaw_command_path_matches models auth setup-token -- --container --profile --log-level --agent --provider" -l provider -d 'Provider id'
complete -c openclaw -n "__openclaw_command_path_matches models auth setup-token -- --container --profile --log-level --agent --provider" -l yes -d 'Skip confirmation'
complete -c openclaw -n "__openclaw_command_path_matches models auth paste-token -- --container --profile --log-level --agent --provider --profile-id --expires-in" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__openclaw_command_path_matches models auth paste-token -- --container --profile --log-level --agent --provider --profile-id --expires-in" -l profile-id -d 'Auth profile id (default: <provider>:manual)'
complete -c openclaw -n "__openclaw_command_path_matches models auth paste-token -- --container --profile --log-level --agent --provider --profile-id --expires-in" -l expires-in -d 'Optional expiry duration (e.g. 365d, 12h). Stored as absolute expiresAt.'
complete -c openclaw -n "__openclaw_command_path_matches models auth paste-api-key -- --container --profile --log-level --agent --provider --profile-id" -l provider -d 'Provider id (e.g. openai)'
complete -c openclaw -n "__openclaw_command_path_matches models auth paste-api-key -- --container --profile --log-level --agent --provider --profile-id" -l profile-id -d 'Auth profile id (default: <provider>:manual)'
complete -c openclaw -n "__openclaw_command_path_matches models auth login-github-copilot -- --container --profile --log-level --agent" -l yes -d 'Overwrite existing profile without prompting'
complete -c openclaw -n "__openclaw_command_path_matches models auth order -- --container --profile --log-level --agent" -a "get" -d 'Show per-agent auth order override (from auth-state.json)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order -- --container --profile --log-level --agent" -a "set" -d 'Set per-agent auth order override (writes auth-state.json)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order -- --container --profile --log-level --agent" -a "clear" -d 'Clear per-agent auth order override (fall back to config/round-robin)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order get -- --container --profile --log-level --agent --provider" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order get -- --container --profile --log-level --agent --provider" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order get -- --container --profile --log-level --agent --provider" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches models auth order set -- --container --profile --log-level --agent --provider" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order set -- --container --profile --log-level --agent --provider" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order clear -- --container --profile --log-level --agent --provider" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__openclaw_command_path_matches models auth order clear -- --container --profile --log-level --agent --provider" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "list" -d 'List canonical capability ids and supported transports'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "inspect" -d 'Inspect one canonical capability id'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "model" -d 'Text inference and model catalog commands'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "image" -d 'Image generation and description'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "audio" -d 'Audio transcription'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "tts" -d 'Text to speech'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "video" -d 'Video generation and description'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "web" -d 'Web capabilities'
complete -c openclaw -n "__openclaw_command_path_matches infer -- --container --profile --log-level" -a "embedding" -d 'Embedding providers'
complete -c openclaw -n "__openclaw_command_path_matches infer list -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer inspect -- --container --profile --log-level --name" -l name -d 'Capability id'
complete -c openclaw -n "__openclaw_command_path_matches infer inspect -- --container --profile --log-level --name" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer model -- --container --profile --log-level" -a "run" -d 'Run a one-shot model turn'
complete -c openclaw -n "__openclaw_command_path_matches infer model -- --container --profile --log-level" -a "list" -d 'List known models'
complete -c openclaw -n "__openclaw_command_path_matches infer model -- --container --profile --log-level" -a "inspect" -d 'Inspect one model catalog entry'
complete -c openclaw -n "__openclaw_command_path_matches infer model -- --container --profile --log-level" -a "providers" -d 'List model providers from the catalog'
complete -c openclaw -n "__openclaw_command_path_matches infer model -- --container --profile --log-level" -a "auth" -d 'Provider auth helpers'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l prompt -d 'Prompt text'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l file -d 'Image file'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l thinking -d 'Thinking level override'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer model run -- --container --profile --log-level --prompt --file --model --thinking" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer model list -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer model inspect -- --container --profile --log-level --model" -l model -d 'Model id'
complete -c openclaw -n "__openclaw_command_path_matches infer model inspect -- --container --profile --log-level --model" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer model providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth -- --container --profile --log-level" -a "login" -d 'Run provider auth login'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth -- --container --profile --log-level" -a "logout" -d 'Remove saved auth profiles for one provider'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth -- --container --profile --log-level" -a "status" -d 'Show configured auth state'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth login -- --container --profile --log-level --provider --method" -l provider -d 'Provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth login -- --container --profile --log-level --provider --method" -l method -d 'Provider auth method id'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth logout -- --container --profile --log-level --provider --agent" -l provider -d 'Provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth logout -- --container --profile --log-level --provider --agent" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth logout -- --container --profile --log-level --provider --agent" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer model auth status -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer image -- --container --profile --log-level" -a "generate" -d 'Generate images'
complete -c openclaw -n "__openclaw_command_path_matches infer image -- --container --profile --log-level" -a "edit" -d 'Edit images with one or more input files'
complete -c openclaw -n "__openclaw_command_path_matches infer image -- --container --profile --log-level" -a "describe" -d 'Describe one image file'
complete -c openclaw -n "__openclaw_command_path_matches infer image -- --container --profile --log-level" -a "describe-many" -d 'Describe multiple image files'
complete -c openclaw -n "__openclaw_command_path_matches infer image -- --container --profile --log-level" -a "providers" -d 'List image generation providers'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l prompt -d 'Prompt text'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l count -d 'Number of images'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l size -d 'Size hint like 1024x1024'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l aspect-ratio -d 'Aspect ratio hint like 16:9'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l resolution -d 'Resolution hint: 1K, 2K, or 4K'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l output-format -d 'Output format hint: png, jpeg, or webp'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l background -d 'Background hint: transparent, opaque, or auto'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l openai-background -d 'OpenAI background hint: transparent, opaque, or auto'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l timeout-ms -d 'Provider request timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l output -d 'Output path'
complete -c openclaw -n "__openclaw_command_path_matches infer image generate -- --container --profile --log-level --prompt --model --count --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l file -d 'Input file'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l prompt -d 'Prompt text'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l size -d 'Size hint like 1024x1024'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l aspect-ratio -d 'Aspect ratio hint like 16:9'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l resolution -d 'Resolution hint: 1K, 2K, or 4K'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l output-format -d 'Output format hint: png, jpeg, or webp'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l background -d 'Background hint: transparent, opaque, or auto'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l openai-background -d 'OpenAI background hint: transparent, opaque, or auto'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l timeout-ms -d 'Provider request timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l output -d 'Output path'
complete -c openclaw -n "__openclaw_command_path_matches infer image edit -- --container --profile --log-level --file --prompt --model --size --aspect-ratio --resolution --output-format --background --openai-background --timeout-ms --output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe -- --container --profile --log-level --file --prompt --model --timeout-ms" -l file -d 'Image file'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe -- --container --profile --log-level --file --prompt --model --timeout-ms" -l prompt -d 'Prompt hint'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe -- --container --profile --log-level --file --prompt --model --timeout-ms" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe -- --container --profile --log-level --file --prompt --model --timeout-ms" -l timeout-ms -d 'Provider request timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe -- --container --profile --log-level --file --prompt --model --timeout-ms" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe-many -- --container --profile --log-level --file --prompt --model --timeout-ms" -l file -d 'Image file'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe-many -- --container --profile --log-level --file --prompt --model --timeout-ms" -l prompt -d 'Prompt hint'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe-many -- --container --profile --log-level --file --prompt --model --timeout-ms" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe-many -- --container --profile --log-level --file --prompt --model --timeout-ms" -l timeout-ms -d 'Provider request timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches infer image describe-many -- --container --profile --log-level --file --prompt --model --timeout-ms" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer image providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer audio -- --container --profile --log-level" -a "transcribe" -d 'Transcribe one audio file'
complete -c openclaw -n "__openclaw_command_path_matches infer audio -- --container --profile --log-level" -a "providers" -d 'List audio transcription providers'
complete -c openclaw -n "__openclaw_command_path_matches infer audio transcribe -- --container --profile --log-level --file --language --prompt --model" -l file -d 'Audio file'
complete -c openclaw -n "__openclaw_command_path_matches infer audio transcribe -- --container --profile --log-level --file --language --prompt --model" -l language -d 'Language hint'
complete -c openclaw -n "__openclaw_command_path_matches infer audio transcribe -- --container --profile --log-level --file --language --prompt --model" -l prompt -d 'Prompt hint'
complete -c openclaw -n "__openclaw_command_path_matches infer audio transcribe -- --container --profile --log-level --file --language --prompt --model" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer audio transcribe -- --container --profile --log-level --file --language --prompt --model" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer audio providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "convert" -d 'Convert text to speech'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "voices" -d 'List voices for a TTS provider'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "providers" -d 'List speech providers'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "personas" -d 'List TTS personas'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "status" -d 'Show TTS status'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "enable" -d 'Enable TTS'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "disable" -d 'Disable TTS'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "set-provider" -d 'Set the active TTS provider'
complete -c openclaw -n "__openclaw_command_path_matches infer tts -- --container --profile --log-level" -a "set-persona" -d 'Set the active TTS persona'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l text -d 'Input text'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l channel -d 'Channel hint'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l voice -d 'Voice hint'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l output -d 'Output path'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts convert -- --container --profile --log-level --text --channel --voice --model --output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts voices -- --container --profile --log-level --provider" -l provider -d 'Speech provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer tts voices -- --container --profile --log-level --provider" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts providers -- --container --profile --log-level" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts providers -- --container --profile --log-level" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts personas -- --container --profile --log-level" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts personas -- --container --profile --log-level" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts personas -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts status -- --container --profile --log-level" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts status -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts enable -- --container --profile --log-level" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts enable -- --container --profile --log-level" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts enable -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts disable -- --container --profile --log-level" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts disable -- --container --profile --log-level" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts disable -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-provider -- --container --profile --log-level --provider" -l provider -d 'Speech provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-provider -- --container --profile --log-level --provider" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-provider -- --container --profile --log-level --provider" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-provider -- --container --profile --log-level --provider" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-persona -- --container --profile --log-level --persona" -l persona -d 'TTS persona id'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-persona -- --container --profile --log-level --persona" -l off -d 'Disable the active TTS persona'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-persona -- --container --profile --log-level --persona" -l local -d 'Force local execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-persona -- --container --profile --log-level --persona" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__openclaw_command_path_matches infer tts set-persona -- --container --profile --log-level --persona" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer video -- --container --profile --log-level" -a "generate" -d 'Generate video'
complete -c openclaw -n "__openclaw_command_path_matches infer video -- --container --profile --log-level" -a "describe" -d 'Describe one video file'
complete -c openclaw -n "__openclaw_command_path_matches infer video -- --container --profile --log-level" -a "providers" -d 'List video generation and description providers'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l prompt -d 'Prompt text'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l size -d 'Size hint like 1280x720'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l aspect-ratio -d 'Aspect ratio hint like 16:9'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l resolution -d 'Resolution hint: 360P, 480P, 540P, 720P, 768P, or 1080P'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l duration -d 'Target duration in seconds'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l audio -d 'Enable generated audio when supported'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l watermark -d 'Request provider watermark when supported'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l timeout-ms -d 'Provider request timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l output -d 'Output path'
complete -c openclaw -n "__openclaw_command_path_matches infer video generate -- --container --profile --log-level --prompt --model --size --aspect-ratio --resolution --duration --timeout-ms --output" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer video describe -- --container --profile --log-level --file --model" -l file -d 'Video file'
complete -c openclaw -n "__openclaw_command_path_matches infer video describe -- --container --profile --log-level --file --model" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer video describe -- --container --profile --log-level --file --model" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer video providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer web -- --container --profile --log-level" -a "search" -d 'Run web search'
complete -c openclaw -n "__openclaw_command_path_matches infer web -- --container --profile --log-level" -a "fetch" -d 'Fetch one URL'
complete -c openclaw -n "__openclaw_command_path_matches infer web -- --container --profile --log-level" -a "providers" -d 'List web providers'
complete -c openclaw -n "__openclaw_command_path_matches infer web search -- --container --profile --log-level --query --provider --limit" -l query -d 'Search query'
complete -c openclaw -n "__openclaw_command_path_matches infer web search -- --container --profile --log-level --query --provider --limit" -l provider -d 'Provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer web search -- --container --profile --log-level --query --provider --limit" -l limit -d 'Result limit'
complete -c openclaw -n "__openclaw_command_path_matches infer web search -- --container --profile --log-level --query --provider --limit" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer web fetch -- --container --profile --log-level --url --provider --format" -l url -d 'URL'
complete -c openclaw -n "__openclaw_command_path_matches infer web fetch -- --container --profile --log-level --url --provider --format" -l provider -d 'Provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer web fetch -- --container --profile --log-level --url --provider --format" -l format -d 'Format hint'
complete -c openclaw -n "__openclaw_command_path_matches infer web fetch -- --container --profile --log-level --url --provider --format" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer web providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding -- --container --profile --log-level" -a "create" -d 'Create embeddings'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding -- --container --profile --log-level" -a "providers" -d 'List embedding providers'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding create -- --container --profile --log-level --text --provider --model" -l text -d 'Input text'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding create -- --container --profile --log-level --text --provider --model" -l provider -d 'Provider id'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding create -- --container --profile --log-level --text --provider --model" -l model -d 'Model override'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding create -- --container --profile --log-level --text --provider --model" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches infer embedding providers -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches approvals -- --container --profile --log-level" -a "get" -d 'Fetch exec approvals snapshot'
complete -c openclaw -n "__openclaw_command_path_matches approvals -- --container --profile --log-level" -a "set" -d 'Replace exec approvals with a JSON file'
complete -c openclaw -n "__openclaw_command_path_matches approvals -- --container --profile --log-level" -a "allowlist" -d 'Edit the per-agent allowlist'
complete -c openclaw -n "__openclaw_command_path_matches approvals get -- --container --profile --log-level --node --url --token --timeout" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__openclaw_command_path_matches approvals get -- --container --profile --log-level --node --url --token --timeout" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__openclaw_command_path_matches approvals get -- --container --profile --log-level --node --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches approvals get -- --container --profile --log-level --node --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches approvals get -- --container --profile --log-level --node --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches approvals get -- --container --profile --log-level --node --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l file -d 'Path to JSON file to upload'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l stdin -d 'Read JSON from stdin'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches approvals set -- --container --profile --log-level --node --file --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist -- --container --profile --log-level" -a "add" -d 'Add a glob pattern to an allowlist'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist -- --container --profile --log-level" -a "remove" -d 'Remove a glob pattern from an allowlist'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l agent -d 'Agent id (defaults to "*")'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist add -- --container --profile --log-level --node --agent --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l agent -d 'Agent id (defaults to "*")'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches approvals allowlist remove -- --container --profile --log-level --node --agent --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy -- --container --profile --log-level" -a "show" -d 'Show the local config policy, host approvals, and effective merge'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy -- --container --profile --log-level" -a "preset" -d 'Apply a synchronized preset: "yolo", "cautious", or "deny-all"'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy -- --container --profile --log-level" -a "set" -d 'Synchronize local config and host approvals using explicit values'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy show -- --container --profile --log-level" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy preset -- --container --profile --log-level" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy set -- --container --profile --log-level --host --security --ask --ask-fallback" -l host -d 'Exec host target: auto|sandbox|gateway|node'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy set -- --container --profile --log-level --host --security --ask --ask-fallback" -l security -d 'Exec security: deny|allowlist|full'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy set -- --container --profile --log-level --host --security --ask --ask-fallback" -l ask -d 'Exec ask mode: off|on-miss|always'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy set -- --container --profile --log-level --host --security --ask --ask-fallback" -l ask-fallback -d 'Host approvals fallback: deny|allowlist|full'
complete -c openclaw -n "__openclaw_command_path_matches exec-policy set -- --container --profile --log-level --host --security --ask --ask-fallback" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "status" -d 'List known nodes with connection status and capabilities'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "describe" -d 'Describe a node (capabilities + supported invoke commands)'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "list" -d 'List pending and paired nodes'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "pending" -d 'List pending pairing requests'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "approve" -d 'Approve a pending pairing request'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "reject" -d 'Reject a pending pairing request'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "remove" -d 'Remove a paired node entry'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "rename" -d 'Rename a paired node (display name override)'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "invoke" -d 'Invoke a command on a paired node'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "notify" -d 'Send a local notification on a node (mac only)'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "push" -d 'Send an APNs test push to an iOS node'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "camera" -d 'Capture camera media from a paired node'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "screen" -d 'Capture screen recordings from a paired node'
complete -c openclaw -n "__openclaw_command_path_matches nodes -- --container --profile --log-level" -a "location" -d 'Fetch location from a paired node'
complete -c openclaw -n "__openclaw_command_path_matches nodes status -- --container --profile --log-level --last-connected --url --token --timeout" -l connected -d 'Only show connected nodes'
complete -c openclaw -n "__openclaw_command_path_matches nodes status -- --container --profile --log-level --last-connected --url --token --timeout" -l last-connected -d 'Only show nodes connected within duration (e.g. 24h)'
complete -c openclaw -n "__openclaw_command_path_matches nodes status -- --container --profile --log-level --last-connected --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes status -- --container --profile --log-level --last-connected --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes status -- --container --profile --log-level --last-connected --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes status -- --container --profile --log-level --last-connected --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes describe -- --container --profile --log-level --node --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes describe -- --container --profile --log-level --node --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes describe -- --container --profile --log-level --node --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes describe -- --container --profile --log-level --node --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes describe -- --container --profile --log-level --node --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes list -- --container --profile --log-level --last-connected --url --token --timeout" -l connected -d 'Only show connected nodes'
complete -c openclaw -n "__openclaw_command_path_matches nodes list -- --container --profile --log-level --last-connected --url --token --timeout" -l last-connected -d 'Only show nodes connected within duration (e.g. 24h)'
complete -c openclaw -n "__openclaw_command_path_matches nodes list -- --container --profile --log-level --last-connected --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes list -- --container --profile --log-level --last-connected --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes list -- --container --profile --log-level --last-connected --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes list -- --container --profile --log-level --last-connected --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes pending -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes pending -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes pending -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes pending -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes approve -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes approve -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes approve -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes approve -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes reject -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes reject -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes reject -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes reject -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes remove -- --container --profile --log-level --node --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes remove -- --container --profile --log-level --node --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes remove -- --container --profile --log-level --node --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes remove -- --container --profile --log-level --node --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes remove -- --container --profile --log-level --node --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes rename -- --container --profile --log-level --node --name --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes rename -- --container --profile --log-level --node --name --url --token --timeout" -l name -d 'New display name'
complete -c openclaw -n "__openclaw_command_path_matches nodes rename -- --container --profile --log-level --node --name --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes rename -- --container --profile --log-level --node --name --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes rename -- --container --profile --log-level --node --name --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes rename -- --container --profile --log-level --node --name --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l command -d 'Command (e.g. canvas.eval)'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l params -d 'JSON object string for params'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l invoke-timeout -d 'Node invoke timeout in ms (default 15000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l idempotency-key -d 'Idempotency key (optional)'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes invoke -- --container --profile --log-level --node --command --params --invoke-timeout --idempotency-key --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l title -d 'Notification title'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l body -d 'Notification body'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l sound -d 'Notification sound'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l priority -d 'Notification priority'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l delivery -d 'Delivery mode'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l invoke-timeout -d 'Node invoke timeout in ms (default 15000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes notify -- --container --profile --log-level --node --title --body --sound --priority --delivery --invoke-timeout --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l title -d 'Push title'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l body -d 'Push body'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l environment -d 'Override APNs environment'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes push -- --container --profile --log-level --node --title --body --environment --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera -- --container --profile --log-level" -a "list" -d 'List available cameras on a node'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera -- --container --profile --log-level" -a "snap" -d 'Capture a photo from a node camera (prints the saved path)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera -- --container --profile --log-level" -a "clip" -d 'Capture a short video clip from a node camera (prints the saved path)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera list -- --container --profile --log-level --node --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera list -- --container --profile --log-level --node --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera list -- --container --profile --log-level --node --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera list -- --container --profile --log-level --node --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera list -- --container --profile --log-level --node --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l facing -d 'Camera facing'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l device-id -d 'Camera device id (from nodes camera list)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l max-width -d 'Max width in px (optional)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l quality -d 'JPEG quality (default 0.9)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l delay-ms -d 'Delay before capture in ms (macOS default 2000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l invoke-timeout -d 'Node invoke timeout in ms (default 20000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera snap -- --container --profile --log-level --node --facing --device-id --max-width --quality --delay-ms --invoke-timeout --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l facing -d 'Camera facing'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l device-id -d 'Camera device id (from nodes camera list)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l duration -d 'Duration (default 3000ms; supports ms/s/m, e.g. 10s)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l no-audio -d 'Disable audio capture'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l invoke-timeout -d 'Node invoke timeout in ms (default 90000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes camera clip -- --container --profile --log-level --node --facing --device-id --duration --invoke-timeout --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen -- --container --profile --log-level" -a "record" -d 'Capture a short screen recording from a node (prints the saved path)'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l screen -d 'Screen index (0 = primary)'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l duration -d 'Clip duration (ms or 10s)'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l fps -d 'Frames per second'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l no-audio -d 'Disable microphone audio capture'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l out -d 'Output path'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l invoke-timeout -d 'Node invoke timeout in ms (default 120000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes screen record -- --container --profile --log-level --node --screen --duration --fps --out --invoke-timeout --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches nodes location -- --container --profile --log-level" -a "get" -d 'Fetch the current location from a node'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l max-age -d 'Use cached location newer than this (ms)'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l accuracy -d 'Desired accuracy (default: balanced/precise depending on node setting)'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l location-timeout -d 'Location fix timeout (ms)'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l invoke-timeout -d 'Node invoke timeout in ms (default 20000)'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches nodes location get -- --container --profile --log-level --node --max-age --accuracy --location-timeout --invoke-timeout --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "list" -d 'List pending and paired devices'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "remove" -d 'Remove a paired device entry'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "clear" -d 'Clear paired devices from the gateway table'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "approve" -d 'Approve a pending device pairing request'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "reject" -d 'Reject a pending device pairing request'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "rotate" -d 'Rotate a device token for a role'
complete -c openclaw -n "__openclaw_command_path_matches devices -- --container --profile --log-level" -a "revoke" -d 'Revoke a device token for a role'
complete -c openclaw -n "__openclaw_command_path_matches devices list -- --container --profile --log-level --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices list -- --container --profile --log-level --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices list -- --container --profile --log-level --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices list -- --container --profile --log-level --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices list -- --container --profile --log-level --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices remove -- --container --profile --log-level --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices remove -- --container --profile --log-level --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices remove -- --container --profile --log-level --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices remove -- --container --profile --log-level --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices remove -- --container --profile --log-level --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l pending -d 'Also reject all pending pairing requests'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l yes -d 'Confirm destructive clear'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices clear -- --container --profile --log-level --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices approve -- --container --profile --log-level --url --token --password --timeout" -l latest -d 'Show the most recent pending request to approve explicitly'
complete -c openclaw -n "__openclaw_command_path_matches devices approve -- --container --profile --log-level --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices approve -- --container --profile --log-level --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices approve -- --container --profile --log-level --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices approve -- --container --profile --log-level --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices approve -- --container --profile --log-level --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices reject -- --container --profile --log-level --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices reject -- --container --profile --log-level --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices reject -- --container --profile --log-level --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices reject -- --container --profile --log-level --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices reject -- --container --profile --log-level --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l device -d 'Device id'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l role -d 'Role name'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l scope -d 'Scopes to attach to the token (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices rotate -- --container --profile --log-level --device --role --scope --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l device -d 'Device id'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l role -d 'Role name'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches devices revoke -- --container --profile --log-level --device --role --url --token --password --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "run" -d 'Run the headless node host (foreground)'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "status" -d 'Show node host status'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "install" -d 'Install the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "uninstall" -d 'Uninstall the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "stop" -d 'Stop the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "start" -d 'Start the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches node -- --container --profile --log-level" -a "restart" -d 'Restart the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__openclaw_command_path_matches node run -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name" -l host -d 'Gateway host'
complete -c openclaw -n "__openclaw_command_path_matches node run -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name" -l port -d 'Gateway port'
complete -c openclaw -n "__openclaw_command_path_matches node run -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name" -l tls -d 'Use TLS for the gateway connection'
complete -c openclaw -n "__openclaw_command_path_matches node run -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name" -l tls-fingerprint -d 'Expected TLS certificate fingerprint (sha256)'
complete -c openclaw -n "__openclaw_command_path_matches node run -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name" -l node-id -d 'Override node id (clears pairing token)'
complete -c openclaw -n "__openclaw_command_path_matches node run -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name" -l display-name -d 'Override node display name'
complete -c openclaw -n "__openclaw_command_path_matches node status -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l host -d 'Gateway host'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l port -d 'Gateway port'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l tls -d 'Use TLS for the gateway connection'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l tls-fingerprint -d 'Expected TLS certificate fingerprint (sha256)'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l node-id -d 'Override node id (clears pairing token)'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l display-name -d 'Override node display name'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l runtime -d 'Service runtime (node|bun). Default: node'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l force -d 'Reinstall/overwrite if already installed'
complete -c openclaw -n "__openclaw_command_path_matches node install -- --container --profile --log-level --host --port --tls-fingerprint --node-id --display-name --runtime" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches node uninstall -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches node stop -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches node start -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches node restart -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches sandbox -- --container --profile --log-level" -a "list" -d 'List sandbox containers and their status'
complete -c openclaw -n "__openclaw_command_path_matches sandbox -- --container --profile --log-level" -a "recreate" -d 'Remove containers to force recreation with updated config'
complete -c openclaw -n "__openclaw_command_path_matches sandbox -- --container --profile --log-level" -a "explain" -d 'Explain effective sandbox/tool policy for a session/agent'
complete -c openclaw -n "__openclaw_command_path_matches sandbox list -- --container --profile --log-level" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches sandbox list -- --container --profile --log-level" -l browser -d 'List browser containers only'
complete -c openclaw -n "__openclaw_command_path_matches sandbox recreate -- --container --profile --log-level --session --agent" -l all -d 'Recreate all sandbox containers'
complete -c openclaw -n "__openclaw_command_path_matches sandbox recreate -- --container --profile --log-level --session --agent" -l session -d 'Recreate container for specific session'
complete -c openclaw -n "__openclaw_command_path_matches sandbox recreate -- --container --profile --log-level --session --agent" -l agent -d 'Recreate containers for specific agent'
complete -c openclaw -n "__openclaw_command_path_matches sandbox recreate -- --container --profile --log-level --session --agent" -l browser -d 'Only recreate browser containers'
complete -c openclaw -n "__openclaw_command_path_matches sandbox recreate -- --container --profile --log-level --session --agent" -l force -d 'Skip confirmation prompt'
complete -c openclaw -n "__openclaw_command_path_matches sandbox explain -- --container --profile --log-level --session --agent" -l session -d 'Session key to inspect (defaults to agent main)'
complete -c openclaw -n "__openclaw_command_path_matches sandbox explain -- --container --profile --log-level --session --agent" -l agent -d 'Agent id to inspect (defaults to derived agent)'
complete -c openclaw -n "__openclaw_command_path_matches sandbox explain -- --container --profile --log-level --session --agent" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l local -d 'Run against the local embedded agent runtime'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l password -d 'Gateway password (if required)'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l session -d 'Session key (default: "main", or "global" when scope is global)'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l deliver -d 'Deliver assistant replies'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l thinking -d 'Thinking level override'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l message -d 'Send an initial message after connecting'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l timeout-ms -d 'Agent timeout in ms (defaults to agents.defaults.timeoutSeconds)'
complete -c openclaw -n "__openclaw_command_path_matches tui -- --container --profile --log-level --url --token --password --session --thinking --message --timeout-ms --history-limit" -l history-limit -d 'History entries to load'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "status" -d 'Show cron scheduler status'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "list" -d 'List cron jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "add" -d 'Add a cron job'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "rm" -d 'Remove a cron job'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "enable" -d 'Enable a cron job'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "disable" -d 'Disable a cron job'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "get" -d 'Get a cron job as JSON'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "show" -d 'Show a cron job'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "runs" -d 'Show cron run history (JSONL-backed)'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "run" -d 'Run a cron job now (debug)'
complete -c openclaw -n "__openclaw_command_path_matches cron -- --container --profile --log-level" -a "edit" -d 'Edit a cron job (patch fields)'
complete -c openclaw -n "__openclaw_command_path_matches cron status -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches cron status -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron status -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron status -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron status -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l all -d 'Include disabled jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l agent -d 'Filter by agent id'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron list -- --container --profile --log-level --agent --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l name -d 'Job name'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l description -d 'Optional description'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l disabled -d 'Create job disabled'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l delete-after-run -d 'Delete one-shot job after it succeeds'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l keep-after-run -d 'Keep one-shot job after it succeeds'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l agent -d 'Agent id for this job'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l session -d 'Session target (main|isolated)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l session-key -d 'Session key for job routing (e.g. agent:my-agent:my-session)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l wake -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l at -d 'Run once at time (ISO with offset, or +duration). Use --tz for offset-less datetimes'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l every -d 'Run every duration (e.g. 10m, 1h)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l cron -d 'Cron expression (5-field or 6-field with seconds)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l tz -d 'Timezone for cron expressions (IANA; cron default: Gateway host local timezone)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l stagger -d 'Cron stagger window (e.g. 30s, 5m)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l exact -d 'Disable cron staggering (set stagger to 0)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l system-event -d 'System event payload (main session)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l message -d 'Agent message payload'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l command -d 'Command payload run as sh -lc <shell> on the Gateway'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l command-argv -d 'Command payload argv as JSON array of strings'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l command-cwd -d 'Working directory for command payloads'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l command-env -d 'Environment override for command payloads (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l command-input -d 'stdin for command payloads'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l thinking -d 'Thinking level for agent jobs (off|minimal|low|medium|high|xhigh)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l model -d 'Model override for agent jobs (provider/model or alias)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l timeout-seconds -d 'Timeout seconds for agent or command jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l no-output-timeout-seconds -d 'No-output timeout seconds for command jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l output-max-bytes -d 'Maximum captured stdout/stderr bytes for command jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l light-context -d 'Use lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l tools -d 'Tool allow-list (e.g. exec,read,write or exec read write)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l announce -d 'Fallback-deliver final text to a chat'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l deliver -d 'Deprecated (use --announce). Fallback-delivers final text to a chat.'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l no-deliver -d 'Disable runner fallback delivery'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l webhook -d 'POST the finished payload to a webhook URL'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l channel -d 'Delivery channel (last|<channel-id>)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l to -d 'Delivery destination (E.164, Telegram chatId, or Discord channel/user)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l thread-id -d 'Telegram forum topic thread id'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l account -d 'Channel account id for delivery (multi-account setups)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l best-effort-deliver -d 'Do not fail the job if delivery fails'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron add -- --container --profile --log-level --name --description --agent --session --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron rm -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches cron rm -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron rm -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron rm -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron rm -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron enable -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron enable -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron enable -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron enable -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron disable -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron disable -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron disable -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron disable -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron get -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron get -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron get -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron get -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron show -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches cron show -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron show -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron show -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron show -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l id -d 'Job id'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l run-id -d 'Filter by cron run id'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l limit -d 'Max entries (default 50)'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron runs -- --container --profile --log-level --id --run-id --limit --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l due -d 'Run only when due (default behavior in older versions)'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l wait -d 'Wait for the queued run to finish'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l wait-timeout -d 'Maximum time to wait for --wait'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l poll-interval -d 'Polling interval for --wait'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron run -- --container --profile --log-level --wait-timeout --poll-interval --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l name -d 'Set name'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l description -d 'Set description'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l enable -d 'Enable job'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l disable -d 'Disable job'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l delete-after-run -d 'Delete one-shot job after it succeeds'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l keep-after-run -d 'Keep one-shot job after it succeeds'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l session -d 'Session target (main|isolated)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l agent -d 'Set agent id'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l clear-agent -d 'Unset agent and use default'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l session-key -d 'Set session key for job routing'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l clear-session-key -d 'Unset session key'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l wake -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l at -d 'Set one-shot time (ISO) or duration like 20m'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l every -d 'Set interval duration like 10m'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l cron -d 'Set cron expression'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l tz -d 'Timezone for cron expressions (IANA; cron default: Gateway host local timezone)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l stagger -d 'Cron stagger window (e.g. 30s, 5m)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l exact -d 'Disable cron staggering (set stagger to 0)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l system-event -d 'Set systemEvent payload'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l message -d 'Set agentTurn payload message'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l command -d 'Set command payload run as sh -lc <shell> on the Gateway'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l command-argv -d 'Set command payload argv as JSON array of strings'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l command-cwd -d 'Set command payload working directory'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l command-env -d 'Set command payload environment overrides (repeatable)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l command-input -d 'Set command payload stdin'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l thinking -d 'Thinking level for agent jobs (off|minimal|low|medium|high|xhigh)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l model -d 'Model override for agent jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l timeout-seconds -d 'Timeout seconds for agent or command jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l no-output-timeout-seconds -d 'No-output timeout seconds for command jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l output-max-bytes -d 'Maximum captured stdout/stderr bytes for command jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l light-context -d 'Enable lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l no-light-context -d 'Disable lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l tools -d 'Tool allow-list (e.g. exec,read,write or exec read write)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l clear-tools -d 'Remove tool allow-list (use all tools)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l announce -d 'Fallback-deliver final text to a chat'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l deliver -d 'Deprecated (use --announce). Fallback-delivers final text to a chat.'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l no-deliver -d 'Disable runner fallback delivery'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l webhook -d 'POST the finished payload to a webhook URL'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l channel -d 'Delivery channel (last|<channel-id>)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l to -d 'Delivery destination (E.164, Telegram chatId, or Discord channel/user)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l thread-id -d 'Telegram forum topic thread id'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l account -d 'Channel account id for delivery (multi-account setups)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l best-effort-deliver -d 'Do not fail job if delivery fails (also implies --announce when used alone)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l no-best-effort-deliver -d 'Fail job when delivery fails'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert -d 'Enable failure alerts for this job'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l no-failure-alert -d 'Disable failure alerts for this job'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-after -d 'Alert after N consecutive job errors'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-channel -d 'Failure alert channel (last|<channel-id>)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-to -d 'Failure alert destination'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-cooldown -d 'Minimum time between alerts (e.g. 1h, 30m)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-include-skipped -d 'Count consecutive skipped runs toward alerts'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-exclude-skipped -d 'Alert only on execution errors'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-mode -d 'Failure alert delivery mode (announce or webhook)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l failure-alert-account-id -d 'Account ID for failure alert channel (multi-account setups)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches cron edit -- --container --profile --log-level --name --description --session --agent --session-key --wake --at --every --cron --tz --stagger --system-event --message --command --command-argv --command-cwd --command-env --command-input --thinking --model --timeout-seconds --no-output-timeout-seconds --output-max-bytes --tools --webhook --channel --to --thread-id --account --failure-alert-after --failure-alert-channel --failure-alert-to --failure-alert-cooldown --failure-alert-mode --failure-alert-account-id --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches dns -- --container --profile --log-level" -a "setup" -d 'Set up CoreDNS to serve your discovery domain for unicast DNS-SD (Wide-Area Bonjour)'
complete -c openclaw -n "__openclaw_command_path_matches dns setup -- --container --profile --log-level --domain" -l domain -d 'Wide-area discovery domain (e.g. openclaw.internal)'
complete -c openclaw -n "__openclaw_command_path_matches dns setup -- --container --profile --log-level --domain" -l apply -d 'Install/update CoreDNS config and (re)start the service (requires sudo)'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "start" -d 'Start the local explicit debug proxy'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "run" -d 'Run a child command with OpenClaw debug proxy capture enabled'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "validate" -d 'Validate the operator-managed network proxy'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "coverage" -d 'Report current debug proxy transport coverage and remaining gaps'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "sessions" -d 'List recent capture sessions'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "query" -d 'Run a built-in query preset against captured traffic'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "blob" -d 'Read a captured payload blob by id'
complete -c openclaw -n "__openclaw_command_path_matches proxy -- --container --profile --log-level" -a "purge" -d 'Delete all captured traffic metadata and blobs'
complete -c openclaw -n "__openclaw_command_path_matches proxy start -- --container --profile --log-level --host --port" -l host -d 'Bind host'
complete -c openclaw -n "__openclaw_command_path_matches proxy start -- --container --profile --log-level --host --port" -l port -d 'Bind port'
complete -c openclaw -n "__openclaw_command_path_matches proxy run -- --container --profile --log-level --host --port" -l host -d 'Bind host'
complete -c openclaw -n "__openclaw_command_path_matches proxy run -- --container --profile --log-level --host --port" -l port -d 'Bind port'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l json -d 'Print machine-readable JSON'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l proxy-url -d 'Proxy URL to validate instead of config/env'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l proxy-ca-file -d 'CA bundle file for verifying an HTTPS proxy endpoint'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l allowed-url -d 'Destination expected to succeed through the proxy'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l denied-url -d 'Destination expected to be blocked by the proxy'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l apns-reachable -d 'Also verify sandbox APNs HTTP/2 is reachable through the proxy'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l apns-authority -d 'APNs authority to probe with --apns-reachable'
complete -c openclaw -n "__openclaw_command_path_matches proxy validate -- --container --profile --log-level --proxy-url --proxy-ca-file --allowed-url --denied-url --apns-authority --timeout-ms" -l timeout-ms -d 'Per-request timeout in milliseconds'
complete -c openclaw -n "__openclaw_command_path_matches proxy sessions -- --container --profile --log-level --limit" -l limit -d 'Maximum sessions to show'
complete -c openclaw -n "__openclaw_command_path_matches proxy query -- --container --profile --log-level --preset --session" -l preset -d 'Query preset: double-sends, retry-storms, cache-busting, ws-duplicate-frames, missing-ack, error-bursts'
complete -c openclaw -n "__openclaw_command_path_matches proxy query -- --container --profile --log-level --preset --session" -l session -d 'Restrict to a capture session id'
complete -c openclaw -n "__openclaw_command_path_matches proxy blob -- --container --profile --log-level --id" -l id -d 'Blob id'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "list" -d 'List all hooks'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "info" -d 'Show detailed information about a hook'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "check" -d 'Check hooks eligibility status'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "enable" -d 'Enable a hook'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "disable" -d 'Disable a hook'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "relay" -d 'Internal native harness hook relay'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "install" -d 'Deprecated: install a hook pack via `openclaw plugins install`'
complete -c openclaw -n "__openclaw_command_path_matches hooks -- --container --profile --log-level" -a "update" -d 'Deprecated: update hook packs via `openclaw plugins update`'
complete -c openclaw -n "__openclaw_command_path_matches hooks list -- --container --profile --log-level" -l eligible -d 'Show only eligible hooks'
complete -c openclaw -n "__openclaw_command_path_matches hooks list -- --container --profile --log-level" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches hooks list -- --container --profile --log-level" -s v -l verbose -d 'Show more details including missing requirements'
complete -c openclaw -n "__openclaw_command_path_matches hooks info -- --container --profile --log-level" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches hooks check -- --container --profile --log-level" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches hooks relay -- --container --profile --log-level --provider --relay-id --generation --event --pre-tool-use-unavailable --timeout" -l provider -d 'Native harness provider'
complete -c openclaw -n "__openclaw_command_path_matches hooks relay -- --container --profile --log-level --provider --relay-id --generation --event --pre-tool-use-unavailable --timeout" -l relay-id -d 'Native hook relay id'
complete -c openclaw -n "__openclaw_command_path_matches hooks relay -- --container --profile --log-level --provider --relay-id --generation --event --pre-tool-use-unavailable --timeout" -l generation -d 'Native hook relay registration generation'
complete -c openclaw -n "__openclaw_command_path_matches hooks relay -- --container --profile --log-level --provider --relay-id --generation --event --pre-tool-use-unavailable --timeout" -l event -d 'Native hook event'
complete -c openclaw -n "__openclaw_command_path_matches hooks relay -- --container --profile --log-level --provider --relay-id --generation --event --pre-tool-use-unavailable --timeout" -l pre-tool-use-unavailable -d 'PreToolUse fallback mode when the originating relay is unavailable'
complete -c openclaw -n "__openclaw_command_path_matches hooks relay -- --container --profile --log-level --provider --relay-id --generation --event --pre-tool-use-unavailable --timeout" -l timeout -d 'Gateway timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches hooks install -- --container --profile --log-level" -s l -l link -d 'Link a local path instead of copying'
complete -c openclaw -n "__openclaw_command_path_matches hooks install -- --container --profile --log-level" -l pin -d 'Record npm installs as exact resolved <name>@<version>'
complete -c openclaw -n "__openclaw_command_path_matches hooks update -- --container --profile --log-level" -l all -d 'Update all tracked hooks'
complete -c openclaw -n "__openclaw_command_path_matches hooks update -- --container --profile --log-level" -l dry-run -d 'Show what would change without writing'
complete -c openclaw -n "__openclaw_command_path_matches webhooks -- --container --profile --log-level" -a "gmail" -d 'Gmail Pub/Sub hooks (via gogcli)'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail -- --container --profile --log-level" -a "setup" -d 'Configure Gmail watch + Pub/Sub + OpenClaw hooks'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail -- --container --profile --log-level" -a "run" -d 'Run gog watch serve + auto-renew loop'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l account -d 'Gmail account to watch'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l project -d 'GCP project id (OAuth client owner)'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l topic -d 'Pub/Sub topic name'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l subscription -d 'Pub/Sub subscription name'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l label -d 'Gmail label to watch'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l hook-url -d 'OpenClaw hook URL'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l hook-token -d 'OpenClaw hook token'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l push-token -d 'Push token for gog watch serve'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l bind -d 'gog watch serve bind host'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l port -d 'gog watch serve port'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l path -d 'gog watch serve path'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l include-body -d 'Include email body snippets'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l max-bytes -d 'Max bytes for body snippets'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l renew-minutes -d 'Renew watch every N minutes'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l tailscale -d 'Expose push endpoint via tailscale (funnel|serve|off)'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l tailscale-path -d 'Path for tailscale serve/funnel'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l tailscale-target -d 'Tailscale serve/funnel target (port, host:port, or URL)'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l push-endpoint -d 'Explicit Pub/Sub push endpoint'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail setup -- --container --profile --log-level --account --project --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target --push-endpoint" -l json -d 'Output JSON summary'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l account -d 'Gmail account to watch'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l topic -d 'Pub/Sub topic path (projects/.../topics/..)'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l subscription -d 'Pub/Sub subscription name'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l label -d 'Gmail label to watch'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l hook-url -d 'OpenClaw hook URL'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l hook-token -d 'OpenClaw hook token'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l push-token -d 'Push token for gog watch serve'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l bind -d 'gog watch serve bind host'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l port -d 'gog watch serve port'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l path -d 'gog watch serve path'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l include-body -d 'Include email body snippets'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l max-bytes -d 'Max bytes for body snippets'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l renew-minutes -d 'Renew watch every N minutes'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l tailscale -d 'Expose push endpoint via tailscale (funnel|serve|off)'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l tailscale-path -d 'Path for tailscale serve/funnel'
complete -c openclaw -n "__openclaw_command_path_matches webhooks gmail run -- --container --profile --log-level --account --topic --subscription --label --hook-url --hook-token --push-token --bind --port --path --max-bytes --renew-minutes --tailscale --tailscale-path --tailscale-target" -l tailscale-target -d 'Tailscale serve/funnel target (port, host:port, or URL)'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l remote -d 'Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l url -d 'Override gateway URL used in the setup payload'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l public-url -d 'Override gateway public URL used in the setup payload'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l token -d 'Override gateway token for setup payload'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l password -d 'Override gateway password for setup payload'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l setup-code-only -d 'Print only the setup code'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l no-ascii -d 'Skip ASCII QR rendering'
complete -c openclaw -n "__openclaw_command_path_matches qr -- --container --profile --log-level --url --public-url --token --password" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches clawbot -- --container --profile --log-level" -a "qr" -d 'Generate a mobile pairing QR code and setup code'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l remote -d 'Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l url -d 'Override gateway URL used in the setup payload'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l public-url -d 'Override gateway public URL used in the setup payload'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l token -d 'Override gateway token for setup payload'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l password -d 'Override gateway password for setup payload'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l setup-code-only -d 'Print only the setup code'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l no-ascii -d 'Skip ASCII QR rendering'
complete -c openclaw -n "__openclaw_command_path_matches clawbot qr -- --container --profile --log-level --url --public-url --token --password" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches pairing -- --container --profile --log-level" -a "list" -d 'List pending pairing requests'
complete -c openclaw -n "__openclaw_command_path_matches pairing -- --container --profile --log-level" -a "approve" -d 'Approve a pairing code and allow that sender'
complete -c openclaw -n "__openclaw_command_path_matches pairing list -- --container --profile --log-level --channel --account" -l channel -d 'Channel ()'
complete -c openclaw -n "__openclaw_command_path_matches pairing list -- --container --profile --log-level --channel --account" -l account -d 'Account id (for multi-account channels)'
complete -c openclaw -n "__openclaw_command_path_matches pairing list -- --container --profile --log-level --channel --account" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches pairing approve -- --container --profile --log-level --channel --account" -l channel -d 'Channel ()'
complete -c openclaw -n "__openclaw_command_path_matches pairing approve -- --container --profile --log-level --channel --account" -l account -d 'Account id (for multi-account channels)'
complete -c openclaw -n "__openclaw_command_path_matches pairing approve -- --container --profile --log-level --channel --account" -l notify -d 'Notify the requester on the same channel'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "list" -d 'List discovered plugins'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "search" -d 'Search ClawHub plugin packages'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "inspect" -d 'Inspect plugin details'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "enable" -d 'Enable a plugin in config'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "disable" -d 'Disable a plugin in config'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "uninstall" -d 'Uninstall a plugin'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "install" -d 'Install a plugin or hook pack (path, archive, npm spec, git repo, clawhub:package, or marketplace entry)'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "update" -d 'Update installed plugins and tracked hook packs'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "registry" -d 'Inspect or rebuild the persisted plugin registry'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "doctor" -d 'Report plugin load issues'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "build" -d 'Generate simple tool plugin metadata'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "validate" -d 'Validate simple tool plugin metadata'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "init" -d 'Create a simple tool plugin project'
complete -c openclaw -n "__openclaw_command_path_matches plugins -- --container --profile --log-level" -a "marketplace" -d 'Inspect Claude-compatible plugin marketplaces'
complete -c openclaw -n "__openclaw_command_path_matches plugins list -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches plugins list -- --container --profile --log-level" -l enabled -d 'Only show enabled plugins'
complete -c openclaw -n "__openclaw_command_path_matches plugins list -- --container --profile --log-level" -l verbose -d 'Show detailed entries'
complete -c openclaw -n "__openclaw_command_path_matches plugins search -- --container --profile --log-level --limit" -l limit -d 'Max results'
complete -c openclaw -n "__openclaw_command_path_matches plugins search -- --container --profile --log-level --limit" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches plugins inspect -- --container --profile --log-level" -l all -d 'Inspect all plugins'
complete -c openclaw -n "__openclaw_command_path_matches plugins inspect -- --container --profile --log-level" -l runtime -d 'Load plugin runtime for hooks/tools/diagnostics'
complete -c openclaw -n "__openclaw_command_path_matches plugins inspect -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches plugins uninstall -- --container --profile --log-level" -l keep-files -d 'Keep installed files on disk'
complete -c openclaw -n "__openclaw_command_path_matches plugins uninstall -- --container --profile --log-level" -l keep-config -d 'Deprecated alias for --keep-files'
complete -c openclaw -n "__openclaw_command_path_matches plugins uninstall -- --container --profile --log-level" -l force -d 'Skip confirmation prompt'
complete -c openclaw -n "__openclaw_command_path_matches plugins uninstall -- --container --profile --log-level" -l dry-run -d 'Show what would be removed without making changes'
complete -c openclaw -n "__openclaw_command_path_matches plugins install -- --container --profile --log-level --marketplace" -s l -l link -d 'Link a local path instead of copying'
complete -c openclaw -n "__openclaw_command_path_matches plugins install -- --container --profile --log-level --marketplace" -l force -d 'Overwrite an existing installed plugin or hook pack'
complete -c openclaw -n "__openclaw_command_path_matches plugins install -- --container --profile --log-level --marketplace" -l pin -d 'Record npm installs as exact resolved <name>@<version>'
complete -c openclaw -n "__openclaw_command_path_matches plugins install -- --container --profile --log-level --marketplace" -l dangerously-force-unsafe-install -d 'Deprecated no-op; install policy and plugin hooks may still block'
complete -c openclaw -n "__openclaw_command_path_matches plugins install -- --container --profile --log-level --marketplace" -l marketplace -d 'Install a Claude marketplace plugin from a local repo/path or git/GitHub source'
complete -c openclaw -n "__openclaw_command_path_matches plugins update -- --container --profile --log-level" -l all -d 'Update all tracked plugins and hook packs'
complete -c openclaw -n "__openclaw_command_path_matches plugins update -- --container --profile --log-level" -l dry-run -d 'Show what would change without writing'
complete -c openclaw -n "__openclaw_command_path_matches plugins update -- --container --profile --log-level" -l dangerously-force-unsafe-install -d 'Deprecated no-op; install policy and plugin hooks may still block'
complete -c openclaw -n "__openclaw_command_path_matches plugins registry -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches plugins registry -- --container --profile --log-level" -l refresh -d 'Rebuild the persisted registry from current plugin manifests'
complete -c openclaw -n "__openclaw_command_path_matches plugins build -- --container --profile --log-level --root --entry" -l root -d 'Plugin package root'
complete -c openclaw -n "__openclaw_command_path_matches plugins build -- --container --profile --log-level --root --entry" -l entry -d 'Plugin entry module relative to --root'
complete -c openclaw -n "__openclaw_command_path_matches plugins build -- --container --profile --log-level --root --entry" -l check -d 'Fail if generated metadata is out of date'
complete -c openclaw -n "__openclaw_command_path_matches plugins validate -- --container --profile --log-level --root --entry" -l root -d 'Plugin package root'
complete -c openclaw -n "__openclaw_command_path_matches plugins validate -- --container --profile --log-level --root --entry" -l entry -d 'Plugin entry module relative to --root'
complete -c openclaw -n "__openclaw_command_path_matches plugins init -- --container --profile --log-level --directory --name" -l directory -d 'Output directory'
complete -c openclaw -n "__openclaw_command_path_matches plugins init -- --container --profile --log-level --directory --name" -l name -d 'Display name'
complete -c openclaw -n "__openclaw_command_path_matches plugins init -- --container --profile --log-level --directory --name" -l force -d 'Overwrite an existing output directory'
complete -c openclaw -n "__openclaw_command_path_matches plugins marketplace -- --container --profile --log-level" -a "list" -d 'List plugins published by a marketplace source'
complete -c openclaw -n "__openclaw_command_path_matches plugins marketplace list -- --container --profile --log-level" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "list" -d 'List chat channels (configured by default; pass --all for installable catalog)'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "status" -d 'Show gateway channel status (use status --deep for local)'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "capabilities" -d 'Show provider capabilities (intents/scopes + supported features)'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "resolve" -d 'Resolve channel/user names to IDs'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "logs" -d 'Show recent channel logs from the gateway log file'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "add" -d 'Add or update a channel account'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "remove" -d 'Disable or delete a channel account'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "login" -d 'Link a channel account (if supported)'
complete -c openclaw -n "__openclaw_command_path_matches channels -- --container --profile --log-level" -a "logout" -d 'Log out of a channel session (if supported)'
complete -c openclaw -n "__openclaw_command_path_matches channels list -- --container --profile --log-level" -l all -d 'Include bundled and installable catalog channels'
complete -c openclaw -n "__openclaw_command_path_matches channels list -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches channels status -- --container --profile --log-level --channel --timeout" -l channel -d 'Only show one channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch)'
complete -c openclaw -n "__openclaw_command_path_matches channels status -- --container --profile --log-level --channel --timeout" -l probe -d 'Probe channel credentials'
complete -c openclaw -n "__openclaw_command_path_matches channels status -- --container --profile --log-level --channel --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches channels status -- --container --profile --log-level --channel --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches channels capabilities -- --container --profile --log-level --channel --account --target --timeout" -l channel -d 'Channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch)'
complete -c openclaw -n "__openclaw_command_path_matches channels capabilities -- --container --profile --log-level --channel --account --target --timeout" -l account -d 'Account id (only with --channel)'
complete -c openclaw -n "__openclaw_command_path_matches channels capabilities -- --container --profile --log-level --channel --account --target --timeout" -l target -d 'Channel target for permission audit (Discord channel:<id>)'
complete -c openclaw -n "__openclaw_command_path_matches channels capabilities -- --container --profile --log-level --channel --account --target --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches channels capabilities -- --container --profile --log-level --channel --account --target --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches channels resolve -- --container --profile --log-level --channel --account --kind" -l channel -d 'Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch)'
complete -c openclaw -n "__openclaw_command_path_matches channels resolve -- --container --profile --log-level --channel --account --kind" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches channels resolve -- --container --profile --log-level --channel --account --kind" -l kind -d 'Target kind (auto|user|group)'
complete -c openclaw -n "__openclaw_command_path_matches channels resolve -- --container --profile --log-level --channel --account --kind" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches channels logs -- --container --profile --log-level --channel --lines" -l channel -d 'Channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch)'
complete -c openclaw -n "__openclaw_command_path_matches channels logs -- --container --profile --log-level --channel --lines" -l lines -d 'Number of lines (default: 200)'
complete -c openclaw -n "__openclaw_command_path_matches channels logs -- --container --profile --log-level --channel --lines" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l channel -d 'Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch)'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l account -d 'Account id (default when omitted)'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l name -d 'Display name for this account'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l token -d 'Channel token or credential payload'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l token-file -d 'Read channel token or credential payload from file'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l secret -d 'Channel shared secret'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l secret-file -d 'Read channel shared secret from file'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l bot-token -d 'Bot token'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l app-token -d 'App token'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l password -d 'Channel password or login secret'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l cli-path -d 'Channel CLI path'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l url -d 'Channel setup URL'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l base-url -d 'Channel base URL'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l http-url -d 'Channel HTTP service URL'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l auth-dir -d 'Channel auth directory override'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l use-env -d 'Use env-backed credentials when supported'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l db-path -d 'iMessage database path'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l service -d 'iMessage service (imessage|sms|auto)'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l region -d 'iMessage region (for SMS)'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l signal-number -d 'Signal account number (E.164)'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l http-host -d 'Signal HTTP daemon host'
complete -c openclaw -n "__openclaw_command_path_matches channels add -- --container --profile --log-level --channel --account --name --token --token-file --secret --secret-file --bot-token --app-token --password --cli-path --url --base-url --http-url --auth-dir --db-path --service --region --signal-number --http-host --http-port" -l http-port -d 'Signal HTTP daemon port'
complete -c openclaw -n "__openclaw_command_path_matches channels remove -- --container --profile --log-level --channel --account" -l channel -d 'Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|feishu|nostr|msteams|mattermost|nextcloud-talk|matrix|line|zalo|clickclack|zalouser|sms|synology-chat|tlon|qa-channel|qqbot|twitch)'
complete -c openclaw -n "__openclaw_command_path_matches channels remove -- --container --profile --log-level --channel --account" -l account -d 'Account id (default when omitted)'
complete -c openclaw -n "__openclaw_command_path_matches channels remove -- --container --profile --log-level --channel --account" -l delete -d 'Delete config entries (no prompt)'
complete -c openclaw -n "__openclaw_command_path_matches channels login -- --container --profile --log-level --channel --account" -l channel -d 'Channel alias (auto when only one is configured)'
complete -c openclaw -n "__openclaw_command_path_matches channels login -- --container --profile --log-level --channel --account" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches channels login -- --container --profile --log-level --channel --account" -l verbose -d 'Verbose connection logs'
complete -c openclaw -n "__openclaw_command_path_matches channels logout -- --container --profile --log-level --channel --account" -l channel -d 'Channel alias (auto when only one is configured)'
complete -c openclaw -n "__openclaw_command_path_matches channels logout -- --container --profile --log-level --channel --account" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches directory -- --container --profile --log-level" -a "self" -d 'Show the current account user'
complete -c openclaw -n "__openclaw_command_path_matches directory -- --container --profile --log-level" -a "peers" -d 'Peer directory (contacts/users)'
complete -c openclaw -n "__openclaw_command_path_matches directory -- --container --profile --log-level" -a "groups" -d 'Group directory'
complete -c openclaw -n "__openclaw_command_path_matches directory self -- --container --profile --log-level --channel --account" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__openclaw_command_path_matches directory self -- --container --profile --log-level --channel --account" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches directory self -- --container --profile --log-level --channel --account" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches directory peers -- --container --profile --log-level" -a "list" -d 'List peers'
complete -c openclaw -n "__openclaw_command_path_matches directory peers list -- --container --profile --log-level --channel --account --query --limit" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__openclaw_command_path_matches directory peers list -- --container --profile --log-level --channel --account --query --limit" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches directory peers list -- --container --profile --log-level --channel --account --query --limit" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches directory peers list -- --container --profile --log-level --channel --account --query --limit" -l query -d 'Optional search query'
complete -c openclaw -n "__openclaw_command_path_matches directory peers list -- --container --profile --log-level --channel --account --query --limit" -l limit -d 'Limit results'
complete -c openclaw -n "__openclaw_command_path_matches directory groups -- --container --profile --log-level" -a "list" -d 'List groups'
complete -c openclaw -n "__openclaw_command_path_matches directory groups -- --container --profile --log-level" -a "members" -d 'List group members'
complete -c openclaw -n "__openclaw_command_path_matches directory groups list -- --container --profile --log-level --channel --account --query --limit" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__openclaw_command_path_matches directory groups list -- --container --profile --log-level --channel --account --query --limit" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches directory groups list -- --container --profile --log-level --channel --account --query --limit" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches directory groups list -- --container --profile --log-level --channel --account --query --limit" -l query -d 'Optional search query'
complete -c openclaw -n "__openclaw_command_path_matches directory groups list -- --container --profile --log-level --channel --account --query --limit" -l limit -d 'Limit results'
complete -c openclaw -n "__openclaw_command_path_matches directory groups members -- --container --profile --log-level --group-id --channel --account --limit" -l group-id -d 'Group id'
complete -c openclaw -n "__openclaw_command_path_matches directory groups members -- --container --profile --log-level --group-id --channel --account --limit" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__openclaw_command_path_matches directory groups members -- --container --profile --log-level --group-id --channel --account --limit" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__openclaw_command_path_matches directory groups members -- --container --profile --log-level --group-id --channel --account --limit" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches directory groups members -- --container --profile --log-level --group-id --channel --account --limit" -l limit -d 'Limit results'
complete -c openclaw -n "__openclaw_command_path_matches security -- --container --profile --log-level" -a "audit" -d 'Audit config + local state for common security foot-guns'
complete -c openclaw -n "__openclaw_command_path_matches security audit -- --container --profile --log-level --auth --token --password" -l deep -d 'Attempt live Gateway probes and plugin-owned collector checks'
complete -c openclaw -n "__openclaw_command_path_matches security audit -- --container --profile --log-level --auth --token --password" -l auth -d 'Runtime gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__openclaw_command_path_matches security audit -- --container --profile --log-level --auth --token --password" -l token -d 'Use explicit gateway token for deep probe auth'
complete -c openclaw -n "__openclaw_command_path_matches security audit -- --container --profile --log-level --auth --token --password" -l password -d 'Use explicit gateway password for deep probe auth'
complete -c openclaw -n "__openclaw_command_path_matches security audit -- --container --profile --log-level --auth --token --password" -l fix -d 'Apply safe fixes (tighten defaults + chmod state/config)'
complete -c openclaw -n "__openclaw_command_path_matches security audit -- --container --profile --log-level --auth --token --password" -l json -d 'Print JSON'
complete -c openclaw -n "__openclaw_command_path_matches secrets -- --container --profile --log-level" -a "reload" -d 'Re-resolve secret references and atomically swap runtime snapshot'
complete -c openclaw -n "__openclaw_command_path_matches secrets -- --container --profile --log-level" -a "audit" -d 'Audit plaintext secrets, unresolved refs, and precedence drift'
complete -c openclaw -n "__openclaw_command_path_matches secrets -- --container --profile --log-level" -a "configure" -d 'Interactive secrets helper (provider setup + SecretRef mapping + preflight)'
complete -c openclaw -n "__openclaw_command_path_matches secrets -- --container --profile --log-level" -a "apply" -d 'Apply a previously generated secrets plan'
complete -c openclaw -n "__openclaw_command_path_matches secrets reload -- --container --profile --log-level --url --token --timeout" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches secrets reload -- --container --profile --log-level --url --token --timeout" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__openclaw_command_path_matches secrets reload -- --container --profile --log-level --url --token --timeout" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__openclaw_command_path_matches secrets reload -- --container --profile --log-level --url --token --timeout" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__openclaw_command_path_matches secrets reload -- --container --profile --log-level --url --token --timeout" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__openclaw_command_path_matches secrets audit -- --container --profile --log-level" -l check -d 'Exit non-zero when findings are present'
complete -c openclaw -n "__openclaw_command_path_matches secrets audit -- --container --profile --log-level" -l allow-exec -d 'Allow exec SecretRef resolution during audit (may execute provider commands)'
complete -c openclaw -n "__openclaw_command_path_matches secrets audit -- --container --profile --log-level" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l apply -d 'Apply changes immediately after preflight'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l yes -d 'Skip apply confirmation prompt'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l providers-only -d 'Configure secrets.providers only, skip credential mapping'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l skip-provider-setup -d 'Skip provider setup and only map credential fields to existing providers'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l agent -d 'Agent id for auth-profiles targets (default: configured default agent)'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l allow-exec -d 'Allow exec SecretRef preflight checks (may execute provider commands)'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l plan-out -d 'Write generated plan JSON to a file'
complete -c openclaw -n "__openclaw_command_path_matches secrets configure -- --container --profile --log-level --agent --plan-out" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches secrets apply -- --container --profile --log-level --from" -l from -d 'Path to plan JSON'
complete -c openclaw -n "__openclaw_command_path_matches secrets apply -- --container --profile --log-level --from" -l dry-run -d 'Validate/preflight only'
complete -c openclaw -n "__openclaw_command_path_matches secrets apply -- --container --profile --log-level --from" -l allow-exec -d 'Allow exec SecretRef checks (may execute provider commands)'
complete -c openclaw -n "__openclaw_command_path_matches secrets apply -- --container --profile --log-level --from" -l json -d 'Output JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "search" -d 'Search ClawHub skills'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "install" -d 'Install a skill from ClawHub, git, or a local directory'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "update" -d 'Update ClawHub-installed skills in the active or shared managed directory'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "verify" -d 'Verify a ClawHub skill with ClawHub'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "workshop" -d 'Manage pending skill proposals'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "list" -d 'List all available skills'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "info" -d 'Show detailed information about a skill'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -a "check" -d 'Check which skills are ready, visible, or missing requirements'
complete -c openclaw -n "__openclaw_command_path_matches skills -- --container --profile --log-level --agent" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills search -- --container --profile --log-level --agent --limit" -l limit -d 'Max results'
complete -c openclaw -n "__openclaw_command_path_matches skills search -- --container --profile --log-level --agent --limit" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills install -- --container --profile --log-level --agent --version --as" -l version -d 'Install a specific version'
complete -c openclaw -n "__openclaw_command_path_matches skills install -- --container --profile --log-level --agent --version --as" -l force -d 'Overwrite an existing workspace skill'
complete -c openclaw -n "__openclaw_command_path_matches skills install -- --container --profile --log-level --agent --version --as" -l force-install -d 'Install a pending GitHub-backed skill before ClawHub scan completes'
complete -c openclaw -n "__openclaw_command_path_matches skills install -- --container --profile --log-level --agent --version --as" -l global -d 'Install into the shared managed skills directory'
complete -c openclaw -n "__openclaw_command_path_matches skills install -- --container --profile --log-level --agent --version --as" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills install -- --container --profile --log-level --agent --version --as" -l as -d 'Install a git/local skill under this slug'
complete -c openclaw -n "__openclaw_command_path_matches skills update -- --container --profile --log-level --agent" -l all -d 'Update all tracked ClawHub skills'
complete -c openclaw -n "__openclaw_command_path_matches skills update -- --container --profile --log-level --agent" -l force-install -d 'Install a pending GitHub-backed skill before ClawHub scan completes'
complete -c openclaw -n "__openclaw_command_path_matches skills update -- --container --profile --log-level --agent" -l global -d 'Update skills in the shared managed skills directory'
complete -c openclaw -n "__openclaw_command_path_matches skills update -- --container --profile --log-level --agent" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills verify -- --container --profile --log-level --agent --version --tag" -l version -d 'Verify a specific version'
complete -c openclaw -n "__openclaw_command_path_matches skills verify -- --container --profile --log-level --agent --version --tag" -l tag -d 'Verify a dist tag'
complete -c openclaw -n "__openclaw_command_path_matches skills verify -- --container --profile --log-level --agent --version --tag" -l card -d 'Print the generated Skill Card Markdown'
complete -c openclaw -n "__openclaw_command_path_matches skills verify -- --container --profile --log-level --agent --version --tag" -l global -d 'Resolve installed skill metadata from the shared managed skills directory'
complete -c openclaw -n "__openclaw_command_path_matches skills verify -- --container --profile --log-level --agent --version --tag" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "list" -d 'List pending and completed skill proposals'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "inspect" -d 'Inspect a skill proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "propose-create" -d 'Create a pending proposal for a new workspace skill'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "propose-update" -d 'Create a pending proposal for an existing workspace skill'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "revise" -d 'Revise a pending skill proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "apply" -d 'Apply a pending skill proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "reject" -d 'Reject a pending skill proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -a "quarantine" -d 'Quarantine a skill proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop -- --container --profile --log-level --agent" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop list -- --container --profile --log-level --agent" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop inspect -- --container --profile --log-level --agent" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l name -d 'Skill name'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l description -d 'Skill description'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l proposal -d 'Path to PROPOSAL.md draft content'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l proposal-dir -d 'Path to proposal directory with PROPOSAL.md and UTF-8 text support files'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l goal -d 'Proposal or improvement goal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l evidence -d 'Evidence or notes for the proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-create -- --container --profile --log-level --agent --name --description --proposal --proposal-dir --goal --evidence" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-update -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l proposal -d 'Path to PROPOSAL.md draft content'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-update -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l proposal-dir -d 'Path to proposal directory with PROPOSAL.md and UTF-8 text support files'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-update -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l description -d 'Concise proposal description'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-update -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l goal -d 'Proposal or improvement goal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-update -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l evidence -d 'Evidence or notes for the proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop propose-update -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop revise -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l proposal -d 'Path to revised PROPOSAL.md draft content'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop revise -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l proposal-dir -d 'Path to revised proposal directory with PROPOSAL.md and UTF-8 text support files'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop revise -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l description -d 'Replacement proposal description'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop revise -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l goal -d 'Replacement research or improvement goal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop revise -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l evidence -d 'Replacement evidence or notes for the proposal'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop revise -- --container --profile --log-level --agent --proposal --proposal-dir --description --goal --evidence" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop apply -- --container --profile --log-level --agent" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop reject -- --container --profile --log-level --agent --reason" -l reason -d 'Reason for rejection'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop reject -- --container --profile --log-level --agent --reason" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop quarantine -- --container --profile --log-level --agent --reason" -l reason -d 'Reason for quarantine'
complete -c openclaw -n "__openclaw_command_path_matches skills workshop quarantine -- --container --profile --log-level --agent --reason" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills list -- --container --profile --log-level --agent" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills list -- --container --profile --log-level --agent" -l eligible -d 'Show only eligible (ready to use) skills'
complete -c openclaw -n "__openclaw_command_path_matches skills list -- --container --profile --log-level --agent" -s v -l verbose -d 'Show more details including missing requirements'
complete -c openclaw -n "__openclaw_command_path_matches skills list -- --container --profile --log-level --agent" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills info -- --container --profile --log-level --agent" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches skills info -- --container --profile --log-level --agent" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills check -- --container --profile --log-level --agent" -l agent -d 'Target agent workspace (defaults to cwd-inferred, then default agent)'
complete -c openclaw -n "__openclaw_command_path_matches skills check -- --container --profile --log-level --agent" -l json -d 'Output as JSON'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -a "finalize" -d 'Run OpenClaw update finalization after an external core runtime change'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -a "wizard" -d 'Interactive update wizard'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -a "status" -d 'Show update channel and version status'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l no-restart -d 'Skip restarting the gateway service after a successful update'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l dry-run -d 'Preview update actions without making changes'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l channel -d 'Persist update channel (git + npm)'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l tag -d 'Override the package target for this update (dist-tag, version, or package spec)'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l timeout -d 'Timeout for each update step in seconds (default: 1800)'
complete -c openclaw -n "__openclaw_command_path_matches update -- --container --profile --log-level --channel --tag --timeout" -l yes -d 'Skip confirmation prompts (non-interactive)'
complete -c openclaw -n "__openclaw_command_path_matches update finalize -- --container --profile --log-level --channel --tag --timeout" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches update finalize -- --container --profile --log-level --channel --tag --timeout" -l channel -d 'Persist update channel for finalization'
complete -c openclaw -n "__openclaw_command_path_matches update finalize -- --container --profile --log-level --channel --tag --timeout" -l timeout -d 'Timeout for update finalization steps in seconds (default: 1800)'
complete -c openclaw -n "__openclaw_command_path_matches update finalize -- --container --profile --log-level --channel --tag --timeout" -l yes -d 'Skip confirmation prompts (non-interactive)'
complete -c openclaw -n "__openclaw_command_path_matches update finalize -- --container --profile --log-level --channel --tag --timeout" -l no-restart -d 'Accepted for update command parity; finalization never restarts'
complete -c openclaw -n "__openclaw_command_path_matches update wizard -- --container --profile --log-level --channel --tag --timeout" -l timeout -d 'Timeout for each update step in seconds (default: 1800)'
complete -c openclaw -n "__openclaw_command_path_matches update status -- --container --profile --log-level --channel --tag --timeout" -l json -d 'Output result as JSON'
complete -c openclaw -n "__openclaw_command_path_matches update status -- --container --profile --log-level --channel --tag --timeout" -l timeout -d 'Timeout for update checks in seconds (default: 3)'
