complete -c openclaw -n "__fish_use_subcommand" -a "completion" -d 'Generate shell completion script'
complete -c openclaw -n "__fish_use_subcommand" -a "setup" -d 'Initialize the active OpenClaw config and agent workspace'
complete -c openclaw -n "__fish_use_subcommand" -a "onboard" -d 'Interactive onboarding for the gateway, workspace, 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/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 "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 "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 "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 "browser" -d 'Manage OpenClaw'\''s dedicated browser (Chrome/Chromium)'
complete -c openclaw -n "__fish_use_subcommand" -a "memory" -d 'Search, inspect, and reindex memory files'
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 "__fish_seen_subcommand_from completion" -s s -l shell -d 'Shell to generate completion for (default: zsh)'
complete -c openclaw -n "__fish_seen_subcommand_from completion" -s i -l install -d 'Install completion script to shell profile'
complete -c openclaw -n "__fish_seen_subcommand_from completion" -l write-state -d 'Write completion scripts to $OPENCLAW_STATE_DIR/completions (no stdout)'
complete -c openclaw -n "__fish_seen_subcommand_from completion" -s y -l yes -d 'Skip confirmation (non-interactive)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l workspace -d 'Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l wizard -d 'Run interactive onboarding'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l non-interactive -d 'Run onboarding without prompts'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l mode -d 'Onboard mode: local|remote'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l remote-url -d 'Remote Gateway WebSocket URL'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l remote-token -d 'Remote Gateway token (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l workspace -d 'Agent workspace directory (default: ~/.openclaw/workspace)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l reset -d 'Reset config + credentials + sessions before running onboard (workspace only with --reset-scope full)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l reset-scope -d 'Reset scope: config|config+creds+sessions|full'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l non-interactive -d 'Run without prompts'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l accept-risk -d 'Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l flow -d 'Onboard flow: quickstart|advanced|manual'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l mode -d 'Onboard mode: local|remote'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l auth-choice -d 'Auth: custom-api-key|skip|claude-cli|codex-cli|apiKey|anthropic-cli|setup-token|arceeai-api-key|byteplus-api-key|chutes|chutes-api-key|cloudflare-ai-gateway-api-key|zai-cn|qwen-api-key-cn|qwen-api-key|zai-coding-cn|zai-coding-global|copilot-proxy|deepseek-api-key|fireworks-api-key|google-gemini-cli|github-copilot|zai-global|gemini-api-key|huggingface-api-key|kilocode-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|litellm-api-key|microsoft-foundry-apikey|microsoft-foundry-entra|minimax-cn-api|minimax-global-api|minimax-cn-oauth|minimax-global-oauth|mistral-api-key|ollama|openai-api-key|openai-codex|opencode-go|opencode-zen|arceeai-openrouter|openrouter-api-key|qianfan-api-key|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|together-api-key|venice-api-key|ai-gateway-api-key|vllm|volcengine-api-key|xai-api-key|xiaomi-api-key|zai-api-key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token-provider -d 'Token provider id (non-interactive; used with --auth-choice token)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token -d 'Token value (non-interactive; used with --auth-choice token)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token-profile-id -d 'Auth profile id (non-interactive; default: <provider>:manual)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token-expires-in -d 'Optional token expiry duration (e.g. 365d, 12h)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l secret-input-mode -d 'API key persistence mode: plaintext|ref (default: plaintext)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l cloudflare-ai-gateway-account-id -d 'Cloudflare Account ID'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l cloudflare-ai-gateway-gateway-id -d 'Cloudflare AI Gateway ID'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l alibaba-model-studio-api-key -d 'Alibaba Model Studio API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l anthropic-api-key -d 'Anthropic API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l arceeai-api-key -d 'Arcee AI API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l openrouter-api-key -d 'OpenRouter API key for Arcee AI models'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l byteplus-api-key -d 'BytePlus API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l chutes-api-key -d 'Chutes API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l cloudflare-ai-gateway-api-key -d 'Cloudflare AI Gateway API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l deepseek-api-key -d 'DeepSeek API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l fal-api-key -d 'fal API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l fireworks-api-key -d 'Fireworks API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gemini-api-key -d 'Gemini API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l huggingface-api-key -d 'Hugging Face API key (HF token)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l kilocode-api-key -d 'Kilo Gateway API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l kimi-code-api-key -d 'Kimi Code API key (subscription)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l litellm-api-key -d 'LiteLLM API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l lmstudio-api-key -d 'LM Studio API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l minimax-api-key -d 'MiniMax API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l mistral-api-key -d 'Mistral API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l moonshot-api-key -d 'Moonshot API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l openai-api-key -d 'OpenAI API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l opencode-zen-api-key -d 'OpenCode API key (Zen catalog)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l opencode-go-api-key -d 'OpenCode API key (Go catalog)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l qianfan-api-key -d 'QIANFAN API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l modelstudio-standard-api-key-cn -d 'Qwen Cloud standard API key (China)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l modelstudio-standard-api-key -d 'Qwen Cloud standard API key (Global/Intl)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l modelstudio-api-key-cn -d 'Qwen Cloud Coding Plan API key (China)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l modelstudio-api-key -d 'Qwen Cloud Coding Plan API key (Global/Intl)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l runway-api-key -d 'Runway API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l stepfun-api-key -d 'StepFun API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l synthetic-api-key -d 'Synthetic API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l together-api-key -d 'Together AI API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l venice-api-key -d 'Venice API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l ai-gateway-api-key -d 'Vercel AI Gateway API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l volcengine-api-key -d 'Volcano Engine API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l vydra-api-key -d 'Vydra API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l xai-api-key -d 'xAI API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l xiaomi-api-key -d 'Xiaomi API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l zai-api-key -d 'Z.AI API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-base-url -d 'Custom provider base URL'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-api-key -d 'Custom provider API key (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-model-id -d 'Custom provider model ID'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-provider-id -d 'Custom provider ID (optional; auto-derived by default)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-compatibility -d 'Custom provider API compatibility: openai|anthropic (default: openai)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-port -d 'Gateway port'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-bind -d 'Gateway bind: loopback|tailnet|lan|auto|custom'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-auth -d 'Gateway auth: token|password'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-token -d 'Gateway token (token auth)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-token-ref-env -d 'Gateway token SecretRef env var name (token auth; e.g. OPENCLAW_GATEWAY_TOKEN)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l remote-url -d 'Remote Gateway WebSocket URL'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l remote-token -d 'Remote Gateway token (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l tailscale -d 'Tailscale: off|serve|funnel'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l tailscale-reset-on-exit -d 'Reset tailscale serve/funnel on exit'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l install-daemon -d 'Install gateway service'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l no-install-daemon -d 'Skip gateway service install'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l skip-daemon -d 'Skip gateway service install'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l daemon-runtime -d 'Daemon runtime: node|bun'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l skip-channels -d 'Skip channel setup'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l skip-skills -d 'Skip skills setup'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l skip-search -d 'Skip search provider setup'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l skip-health -d 'Skip health check'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l skip-ui -d 'Skip Control UI/TUI prompts'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l node-manager -d 'Node manager for skills: npm|pnpm|bun'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l section -d 'Configuration sections (repeatable). Options: workspace, model, web, gateway, daemon, channels, plugins, skills, health'
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "get" -d 'Get a config value by dot path'
complete -c openclaw -n "__fish_seen_subcommand_from config" -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 "__fish_seen_subcommand_from config" -a "unset" -d 'Remove a config value by dot path'
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "file" -d 'Print the active config file path'
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "schema" -d 'Print the JSON schema for openclaw.json'
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "validate" -d 'Validate the current config against the schema without starting the gateway'
complete -c openclaw -n "__fish_seen_subcommand_from config" -l section -d 'Configuration sections for guided setup (repeatable). Use with no subcommand.'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l strict-json -d 'Strict JSON parsing (error instead of raw string fallback)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l json -d 'Legacy alias for --strict-json'
complete -c openclaw -n "__fish_seen_subcommand_from set" -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 "__fish_seen_subcommand_from set" -l allow-exec -d 'Dry-run only: allow exec SecretRef resolvability checks (may execute provider commands)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l ref-provider -d 'SecretRef builder: provider alias'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l ref-source -d 'SecretRef builder: source (env|file|exec)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l ref-id -d 'SecretRef builder: ref id'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-source -d 'Provider builder: source (env|file|exec)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-allowlist -d 'Provider builder (env): allowlist entry (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-path -d 'Provider builder (file): path'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-mode -d 'Provider builder (file): mode (singleValue|json)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-timeout-ms -d 'Provider builder (file|exec): timeout ms'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-max-bytes -d 'Provider builder (file): max bytes'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-command -d 'Provider builder (exec): absolute command path'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-arg -d 'Provider builder (exec): command arg (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-no-output-timeout-ms -d 'Provider builder (exec): no-output timeout ms'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-max-output-bytes -d 'Provider builder (exec): max output bytes'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-json-only -d 'Provider builder (exec): require JSON output'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-env -d 'Provider builder (exec): env assignment (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-pass-env -d 'Provider builder (exec): pass host env var (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-trusted-dir -d 'Provider builder (exec): trusted directory (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-allow-insecure-path -d 'Provider builder (exec): bypass strict path permission checks'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider-allow-symlink-command -d 'Provider builder (exec): allow command symlink path'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l batch-json -d 'Batch mode: JSON array of set operations'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l batch-file -d 'Batch mode: read JSON array of set operations from file'
complete -c openclaw -n "__fish_seen_subcommand_from validate" -l json -d 'Output validation result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from backup" -a "create" -d 'Write a backup archive for config, credentials, sessions, and workspaces'
complete -c openclaw -n "__fish_seen_subcommand_from backup" -a "verify" -d 'Validate a backup archive and its embedded manifest'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l output -d 'Archive path or destination directory'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l dry-run -d 'Print the backup plan without writing the archive'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l verify -d 'Verify the archive after writing it'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l only-config -d 'Back up only the active JSON config file'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l no-include-workspace -d 'Exclude workspace directories from the backup'
complete -c openclaw -n "__fish_seen_subcommand_from verify" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l no-workspace-suggestions -d 'Disable workspace memory system suggestions'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l yes -d 'Accept defaults without prompting'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l repair -d 'Apply recommended repairs without prompting'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l fix -d 'Apply recommended repairs (alias for --repair)'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l force -d 'Apply aggressive repairs (overwrites custom service config)'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l non-interactive -d 'Run without prompts (safe migrations only)'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l generate-gateway-token -d 'Generate and configure a gateway token'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l deep -d 'Scan system services for extra gateway installs'
complete -c openclaw -n "__fish_seen_subcommand_from dashboard" -l no-open -d 'Print URL but do not launch a browser'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l scope -d 'config|config+creds+sessions|full (default: interactive prompt)'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l yes -d 'Skip confirmation prompts'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l non-interactive -d 'Disable prompts (requires --scope + --yes)'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l dry-run -d 'Print actions without removing files'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l service -d 'Remove the gateway service'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l state -d 'Remove state + config'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l workspace -d 'Remove workspace dirs'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l app -d 'Remove the macOS app'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l all -d 'Remove service + state + workspace + app'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l yes -d 'Skip confirmation prompts'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l non-interactive -d 'Disable prompts (requires --yes)'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l dry-run -d 'Print actions without removing files'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "send" -d 'Send a message'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "broadcast" -d 'Broadcast a message to multiple targets'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "poll" -d 'Send a poll'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "react" -d 'Add or remove a reaction'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "reactions" -d 'List reactions on a message'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "read" -d 'Read recent messages'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "edit" -d 'Edit a message'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "delete" -d 'Delete a message'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "pin" -d 'Pin a message'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "unpin" -d 'Unpin a message'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "pins" -d 'List pinned messages'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "permissions" -d 'Fetch channel permissions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "search" -d 'Search Discord messages'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "thread" -d 'Thread actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "emoji" -d 'Emoji actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "sticker" -d 'Sticker actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "role" -d 'Role actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "channel" -d 'Channel actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "member" -d 'Member actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "voice" -d 'Voice actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "event" -d 'Event actions'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "timeout" -d 'Timeout a member'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "kick" -d 'Kick a member'
complete -c openclaw -n "__fish_seen_subcommand_from message" -a "ban" -d 'Ban a member'
complete -c openclaw -n "__fish_seen_subcommand_from send" -s m -l message -d 'Message body (required unless --media is set)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l media -d 'Attach media (image/audio/video/document). Accepts local paths or URLs.'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l interactive -d 'Shared interactive payload as JSON (buttons/selects rendered natively by supported channels)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l buttons -d 'Telegram inline keyboard buttons as JSON (array of button rows)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l components -d 'Discord components payload as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l card -d 'Adaptive Card JSON object (when supported by the channel)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l reply-to -d 'Reply-to message id'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l thread-id -d 'Thread id (Telegram forum thread)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l gif-playback -d 'Treat video media as GIF playback (WhatsApp only).'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l force-document -d 'Send media as document to avoid Telegram compression (Telegram only). Applies to images and GIFs.'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l silent -d 'Send message silently without notification (Telegram + Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l targets -d 'Recipient/channel targets (same format as --target); accepts ids or names when the directory is available.'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l message -d 'Message to send'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l media -d 'Media URL'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-question -d 'Poll question'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-option -d 'Poll option (repeat 2-12 times)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-multi -d 'Allow multiple selections'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-duration-hours -d 'Poll duration in hours (Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-duration-seconds -d 'Poll duration in seconds (Telegram; 5-600)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-anonymous -d 'Send an anonymous poll (Telegram)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-public -d 'Send a non-anonymous poll (Telegram)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -s m -l message -d 'Optional message body'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l silent -d 'Send poll silently without notification (Telegram + Discord where supported)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l thread-id -d 'Thread id (Telegram forum topic / Slack thread ts)'
complete -c openclaw -n "__fish_seen_subcommand_from react" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l emoji -d 'Emoji for reactions'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l remove -d 'Remove reaction'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l participant -d 'WhatsApp reaction participant'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l from-me -d 'WhatsApp reaction fromMe'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l target-author -d 'Signal reaction target author (uuid or phone)'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l target-author-uuid -d 'Signal reaction target author uuid'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from read" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l before -d 'Read/search before id'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l after -d 'Read/search after id'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l around -d 'Read around id'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l include-thread -d 'Include thread replies (Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -s m -l message -d 'Message body'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l thread-id -d 'Thread id (Telegram forum thread)'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l message-id -d 'Message id (or pinned message resource id for MSTeams)'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l pinned-message-id -d 'Pinned message resource id (MSTeams: from pin or list-pins, not the chat message id)'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l query -d 'Search query'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l channel-id -d 'Channel id'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l channel-ids -d 'Channel id (repeat)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l author-id -d 'Author id'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l author-ids -d 'Author id (repeat)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from thread" -a "create" -d 'Create a thread'
complete -c openclaw -n "__fish_seen_subcommand_from thread" -a "list" -d 'List threads'
complete -c openclaw -n "__fish_seen_subcommand_from thread" -a "reply" -d 'Reply in a thread'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l thread-name -d 'Thread name'
complete -c openclaw -n "__fish_seen_subcommand_from create" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l message-id -d 'Message id (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from create" -s m -l message -d 'Initial thread message text'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l auto-archive-min -d 'Thread auto-archive minutes'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel-id -d 'Channel id'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l include-archived -d 'Include archived threads'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l before -d 'Read/search before id'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -s m -l message -d 'Message body'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l media -d 'Attach media (image/audio/video/document). Accepts local paths or URLs.'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l reply-to -d 'Reply-to message id'
complete -c openclaw -n "__fish_seen_subcommand_from emoji" -a "list" -d 'List emojis'
complete -c openclaw -n "__fish_seen_subcommand_from emoji" -a "upload" -d 'Upload an emoji'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id (Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l emoji-name -d 'Emoji name'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l media -d 'Emoji media (path or URL)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l role-ids -d 'Role id (repeat)'
complete -c openclaw -n "__fish_seen_subcommand_from sticker" -a "send" -d 'Send stickers'
complete -c openclaw -n "__fish_seen_subcommand_from sticker" -a "upload" -d 'Upload a sticker'
complete -c openclaw -n "__fish_seen_subcommand_from send" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l sticker-id -d 'Sticker id (repeat)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -s m -l message -d 'Optional message body'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l sticker-name -d 'Sticker name'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l sticker-desc -d 'Sticker description'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l sticker-tags -d 'Sticker tags'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l media -d 'Sticker media (path or URL)'
complete -c openclaw -n "__fish_seen_subcommand_from role" -a "info" -d 'List roles'
complete -c openclaw -n "__fish_seen_subcommand_from role" -a "add" -d 'Add role to a member'
complete -c openclaw -n "__fish_seen_subcommand_from role" -a "remove" -d 'Remove role from a member'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l role-id -d 'Role id'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l role-id -d 'Role id'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from channel" -a "info" -d 'Fetch channel info'
complete -c openclaw -n "__fish_seen_subcommand_from channel" -a "list" -d 'List channels'
complete -c openclaw -n "__fish_seen_subcommand_from info" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from member" -a "info" -d 'Fetch member info'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l guild-id -d 'Guild id (Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from voice" -a "status" -d 'Fetch voice status'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from event" -a "list" -d 'List scheduled events'
complete -c openclaw -n "__fish_seen_subcommand_from event" -a "create" -d 'Create a scheduled event'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l event-name -d 'Event name'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l start-time -d 'Event start time'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l end-time -d 'Event end time'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l desc -d 'Event description'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel-id -d 'Channel id'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l location -d 'Event location'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l event-type -d 'Event type'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l image -d 'Cover image URL or local file path'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l duration-min -d 'Timeout duration minutes'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l until -d 'Timeout until'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l reason -d 'Moderation reason'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l reason -d 'Moderation reason'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l channel -d 'Channel: feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l reason -d 'Moderation reason'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l delete-days -d 'Ban delete message days'
complete -c openclaw -n "__fish_seen_subcommand_from mcp" -a "serve" -d 'Expose OpenClaw channels over MCP stdio'
complete -c openclaw -n "__fish_seen_subcommand_from mcp" -a "list" -d 'List configured MCP servers'
complete -c openclaw -n "__fish_seen_subcommand_from mcp" -a "show" -d 'Show one configured MCP server or the full MCP config'
complete -c openclaw -n "__fish_seen_subcommand_from mcp" -a "set" -d 'Set one configured MCP server from a JSON object'
complete -c openclaw -n "__fish_seen_subcommand_from mcp" -a "unset" -d 'Remove one configured MCP server'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -l token-file -d 'Read gateway token from file'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -l password -d 'Gateway password (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -l claude-channel-mode -d 'Claude channel notification mode: auto, on, or off'
complete -c openclaw -n "__fish_seen_subcommand_from serve" -s v -l verbose -d 'Verbose logging to stderr'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -s m -l message -d 'Message body for the agent'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -s t -l to -d 'Recipient number in E.164 used to derive the session key'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l session-id -d 'Use an explicit session id'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l agent -d 'Agent id (overrides routing bindings)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l thinking -d 'Thinking level: off | minimal | low | medium | high | xhigh'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l verbose -d 'Persist agent verbose level for the session'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l channel -d 'Delivery channel: last|feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp (omit to use the main session channel)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l reply-to -d 'Delivery target override (separate from session routing)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l reply-channel -d 'Delivery channel override (separate from routing)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l reply-account -d 'Delivery account id override'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l local -d 'Run the embedded agent locally (requires model provider API keys in your shell)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l deliver -d 'Send the agent'\''s reply back to the selected channel'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l timeout -d 'Override agent command timeout (seconds, default 600 or config value)'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "list" -d 'List configured agents'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "bindings" -d 'List routing bindings'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "bind" -d 'Add routing bindings for an agent'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "unbind" -d 'Remove routing bindings for an agent'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "add" -d 'Add a new isolated agent'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "set-identity" -d 'Update an agent identity (name/theme/emoji/avatar)'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "delete" -d 'Delete an agent and prune workspace/state'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l bindings -d 'Include routing bindings'
complete -c openclaw -n "__fish_seen_subcommand_from bindings" -l agent -d 'Filter by agent id'
complete -c openclaw -n "__fish_seen_subcommand_from bindings" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__fish_seen_subcommand_from bind" -l agent -d 'Agent id (defaults to current default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from bind" -l bind -d 'Binding to add (repeatable). If omitted, accountId is resolved by channel defaults/hooks.'
complete -c openclaw -n "__fish_seen_subcommand_from bind" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l agent -d 'Agent id (defaults to current default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l bind -d 'Binding to remove (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l all -d 'Remove all bindings for this agent'
complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l workspace -d 'Workspace directory for the new agent'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l model -d 'Model id for this agent'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l agent-dir -d 'Agent state directory for this agent'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l bind -d 'Route channel binding (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l non-interactive -d 'Disable prompts; requires --workspace'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l agent -d 'Agent id to update'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l workspace -d 'Workspace directory used to locate the agent + IDENTITY.md'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l identity-file -d 'Explicit IDENTITY.md path to read'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l from-identity -d 'Read values from IDENTITY.md'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l name -d 'Identity name'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l theme -d 'Identity theme'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l emoji -d 'Identity emoji'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l avatar -d 'Identity avatar (workspace path, http(s) URL, or data URI)'
complete -c openclaw -n "__fish_seen_subcommand_from set-identity" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l force -d 'Skip confirmation'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l all -d 'Full diagnosis (read-only, pasteable)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l usage -d 'Show model provider usage/quota snapshots'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l deep -d 'Probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Probe timeout in milliseconds'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l debug -d 'Alias for --verbose'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l timeout -d 'Connection timeout in milliseconds'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l debug -d 'Alias for --verbose'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -a "cleanup" -d 'Run session-store maintenance now'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l store -d 'Path to session store (default: resolved from config)'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l agent -d 'Agent id to inspect (default: configured default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l all-agents -d 'Aggregate sessions across all configured agents'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l active -d 'Only show sessions updated within the past N minutes'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l store -d 'Path to session store (default: resolved from config)'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l agent -d 'Agent id to maintain (default: configured default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l all-agents -d 'Run maintenance across all configured agents'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l dry-run -d 'Preview maintenance actions without writing'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l enforce -d 'Apply maintenance even when configured mode is warn'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l fix-missing -d 'Remove store entries whose transcript files are missing (bypasses age/count retention)'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l active-key -d 'Protect this session key from budget-eviction'
complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "list" -d 'List tracked background tasks'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "audit" -d 'Show stale or broken background tasks and TaskFlows'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "maintenance" -d 'Preview or apply tasks and TaskFlow maintenance'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "show" -d 'Show one background task by task id, run id, or session key'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "notify" -d 'Set task notify policy'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "cancel" -d 'Cancel a running background task'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -a "flow" -d 'Inspect durable TaskFlow state under tasks'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -l runtime -d 'Filter by kind (subagent, acp, cron, cli)'
complete -c openclaw -n "__fish_seen_subcommand_from tasks" -l status -d 'Filter by status (queued, running, succeeded, failed, timed_out, cancelled, lost)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l runtime -d 'Filter by kind (subagent, acp, cron, cli)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l status -d 'Filter by status (queued, running, succeeded, failed, timed_out, cancelled, lost)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l severity -d 'Filter by severity (warn, error)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -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 "__fish_seen_subcommand_from audit" -l limit -d 'Limit displayed findings'
complete -c openclaw -n "__fish_seen_subcommand_from maintenance" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from maintenance" -l apply -d 'Apply reconciliation, cleanup stamping, and pruning'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from flow" -a "list" -d 'List tracked TaskFlows'
complete -c openclaw -n "__fish_seen_subcommand_from flow" -a "show" -d 'Show one TaskFlow by flow id or owner key'
complete -c openclaw -n "__fish_seen_subcommand_from flow" -a "cancel" -d 'Cancel a running TaskFlow'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l status -d 'Filter by status (queued, running, waiting, blocked, succeeded, failed, cancelled, lost)'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -a "client" -d 'Run an interactive ACP client against the local ACP bridge'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l token-file -d 'Read gateway token from file'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l password -d 'Gateway password (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l session -d 'Default session key (e.g. agent:main:main)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l session-label -d 'Default session label to resolve'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l require-existing -d 'Fail if the session key/label does not exist'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l reset-session -d 'Reset the session key before first use'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l no-prefix-cwd -d 'Do not prefix prompts with the working directory'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l provenance -d 'ACP provenance mode: off, meta, or meta+receipt'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -s v -l verbose -d 'Verbose logging to stderr'
complete -c openclaw -n "__fish_seen_subcommand_from client" -l cwd -d 'Working directory for the ACP session'
complete -c openclaw -n "__fish_seen_subcommand_from client" -l server -d 'ACP server command (default: openclaw)'
complete -c openclaw -n "__fish_seen_subcommand_from client" -l server-args -d 'Extra arguments for the ACP server'
complete -c openclaw -n "__fish_seen_subcommand_from client" -l server-verbose -d 'Enable verbose logging on the ACP server'
complete -c openclaw -n "__fish_seen_subcommand_from client" -s v -l verbose -d 'Verbose client logging'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "run" -d 'Run the WebSocket Gateway (foreground)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "status" -d 'Show gateway service status + probe connectivity/capability'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "install" -d 'Install the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "uninstall" -d 'Uninstall the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "start" -d 'Start the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "stop" -d 'Stop the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "restart" -d 'Restart the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "call" -d 'Call a Gateway method'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "usage-cost" -d 'Fetch usage cost summary from session logs'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "health" -d 'Fetch Gateway health'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "probe" -d 'Show gateway reachability, auth capability, and read-probe summary (local + remote)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "discover" -d 'Discover gateways via Bonjour (local + wide-area if configured)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l port -d 'Port for the gateway WebSocket'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l bind -d 'Bind mode ("loopback"|"lan"|"tailnet"|"auto"|"custom"). Defaults to config gateway.bind (or loopback).'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l token -d 'Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l auth -d 'Gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l password -d 'Password for auth mode=password'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l tailscale -d 'Tailscale exposure mode ("off"|"serve"|"funnel")'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l tailscale-reset-on-exit -d 'Reset Tailscale serve/funnel configuration on shutdown'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l allow-unconfigured -d 'Allow gateway start without enforcing gateway.mode=local in config (does not repair config)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l dev -d 'Create a dev config + workspace if missing (no BOOTSTRAP.md)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l reset -d 'Reset dev config + credentials + sessions + workspace (requires --dev)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l force -d 'Kill any existing listener on the target port before starting'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l verbose -d 'Verbose logging to stdout/stderr'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l cli-backend-logs -d 'Only show CLI backend logs in the console (includes stdout/stderr)'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l claude-cli-logs -d 'Deprecated alias for --cli-backend-logs'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l ws-log -d 'WebSocket log style ("auto"|"full"|"compact")'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l compact -d 'Alias for "--ws-log compact"'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l raw-stream -d 'Log raw model stream events to jsonl'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l raw-stream-path -d 'Raw stream jsonl path'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l port -d 'Port for the gateway WebSocket'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l bind -d 'Bind mode ("loopback"|"lan"|"tailnet"|"auto"|"custom"). Defaults to config gateway.bind (or loopback).'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l token -d 'Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l auth -d 'Gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l password -d 'Password for auth mode=password'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale -d 'Tailscale exposure mode ("off"|"serve"|"funnel")'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale-reset-on-exit -d 'Reset Tailscale serve/funnel configuration on shutdown'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l allow-unconfigured -d 'Allow gateway start without enforcing gateway.mode=local in config (does not repair config)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l dev -d 'Create a dev config + workspace if missing (no BOOTSTRAP.md)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l reset -d 'Reset dev config + credentials + sessions + workspace (requires --dev)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l force -d 'Kill any existing listener on the target port before starting'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l verbose -d 'Verbose logging to stdout/stderr'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l cli-backend-logs -d 'Only show CLI backend logs in the console (includes stdout/stderr)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l claude-cli-logs -d 'Deprecated alias for --cli-backend-logs'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l ws-log -d 'WebSocket log style ("auto"|"full"|"compact")'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l compact -d 'Alias for "--ws-log compact"'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l raw-stream -d 'Log raw model stream events to jsonl'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l raw-stream-path -d 'Raw stream jsonl path'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l url -d 'Gateway WebSocket URL (defaults to config/remote/local)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l no-probe -d 'Skip RPC probe'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l require-rpc -d 'Exit non-zero when the RPC probe fails'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l deep -d 'Scan system-level services'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l port -d 'Gateway port'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l runtime -d 'Daemon runtime (node|bun). Default: node'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l token -d 'Gateway token (token auth)'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l force -d 'Reinstall/overwrite if already installed'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from stop" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from restart" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l params -d 'JSON object string for params'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from call" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l days -d 'Number of days to include'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from usage-cost" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l url -d 'Explicit Gateway WebSocket URL (still probes localhost)'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l ssh -d 'SSH target for remote gateway tunnel (user@host or user@host:port)'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l ssh-identity -d 'SSH identity file path'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l ssh-auto -d 'Try to derive an SSH target from Bonjour discovery'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l token -d 'Gateway token (applies to all probes)'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l password -d 'Gateway password (applies to all probes)'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l timeout -d 'Overall probe budget in ms'
complete -c openclaw -n "__fish_seen_subcommand_from probe" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from discover" -l timeout -d 'Per-command timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from discover" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from daemon" -a "status" -d 'Show service install status + probe connectivity/capability'
complete -c openclaw -n "__fish_seen_subcommand_from daemon" -a "install" -d 'Install the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from daemon" -a "uninstall" -d 'Uninstall the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from daemon" -a "start" -d 'Start the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from daemon" -a "stop" -d 'Stop the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from daemon" -a "restart" -d 'Restart the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l url -d 'Gateway WebSocket URL (defaults to config/remote/local)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l no-probe -d 'Skip RPC probe'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l require-rpc -d 'Exit non-zero when the RPC probe fails'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l deep -d 'Scan system-level services'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l port -d 'Gateway port'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l runtime -d 'Daemon runtime (node|bun). Default: node'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l token -d 'Gateway token (token auth)'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l force -d 'Reinstall/overwrite if already installed'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from stop" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from restart" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l limit -d 'Max lines to return'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l max-bytes -d 'Max bytes to read'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l follow -d 'Follow log output'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l interval -d 'Polling interval in ms'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l json -d 'Emit JSON log lines'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l plain -d 'Plain text output (no ANSI styling)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l no-color -d 'Disable ANSI colors'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l local-time -d 'Display timestamps in local timezone'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from system" -a "event" -d 'Enqueue a system event and optionally trigger a heartbeat'
complete -c openclaw -n "__fish_seen_subcommand_from system" -a "heartbeat" -d 'Heartbeat controls'
complete -c openclaw -n "__fish_seen_subcommand_from system" -a "presence" -d 'List system presence entries'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l text -d 'System event text'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l mode -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from event" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from heartbeat" -a "last" -d 'Show the last heartbeat event'
complete -c openclaw -n "__fish_seen_subcommand_from heartbeat" -a "enable" -d 'Enable heartbeats'
complete -c openclaw -n "__fish_seen_subcommand_from heartbeat" -a "disable" -d 'Disable heartbeats'
complete -c openclaw -n "__fish_seen_subcommand_from last" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from last" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from last" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from last" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from last" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from presence" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from presence" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from presence" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from presence" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from presence" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "list" -d 'List models (configured by default)'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "status" -d 'Show configured model state'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "set" -d 'Set the default model'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "set-image" -d 'Set the image model'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "aliases" -d 'Manage model aliases'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "fallbacks" -d 'Manage model fallback list'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "image-fallbacks" -d 'Manage image model fallback list'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "scan" -d 'Scan OpenRouter free models for tools + images'
complete -c openclaw -n "__fish_seen_subcommand_from models" -a "auth" -d 'Manage model auth profiles'
complete -c openclaw -n "__fish_seen_subcommand_from models" -l status-json -d 'Output JSON (alias for `models status --json`)'
complete -c openclaw -n "__fish_seen_subcommand_from models" -l status-plain -d 'Plain output (alias for `models status --plain`)'
complete -c openclaw -n "__fish_seen_subcommand_from models" -l agent -d 'Agent id to inspect (overrides OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l all -d 'Show full model catalog'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l local -d 'Filter to local models'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l provider -d 'Filter by provider'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l plain -d 'Plain line output'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l plain -d 'Plain output'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l check -d 'Exit non-zero if auth is expiring/expired (1=expired/missing, 2=expiring)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe -d 'Probe configured provider auth (live)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe-provider -d 'Only probe a single provider'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe-profile -d 'Only probe specific auth profile ids (repeat or comma-separated)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe-timeout -d 'Per-probe timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe-concurrency -d 'Concurrent probes'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe-max-tokens -d 'Probe max tokens (best-effort)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l agent -d 'Agent id to inspect (overrides OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)'
complete -c openclaw -n "__fish_seen_subcommand_from aliases" -a "list" -d 'List model aliases'
complete -c openclaw -n "__fish_seen_subcommand_from aliases" -a "add" -d 'Add or update a model alias'
complete -c openclaw -n "__fish_seen_subcommand_from aliases" -a "remove" -d 'Remove a model alias'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l plain -d 'Plain output'
complete -c openclaw -n "__fish_seen_subcommand_from fallbacks" -a "list" -d 'List fallback models'
complete -c openclaw -n "__fish_seen_subcommand_from fallbacks" -a "add" -d 'Add a fallback model'
complete -c openclaw -n "__fish_seen_subcommand_from fallbacks" -a "remove" -d 'Remove a fallback model'
complete -c openclaw -n "__fish_seen_subcommand_from fallbacks" -a "clear" -d 'Clear all fallback models'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l plain -d 'Plain output'
complete -c openclaw -n "__fish_seen_subcommand_from image-fallbacks" -a "list" -d 'List image fallback models'
complete -c openclaw -n "__fish_seen_subcommand_from image-fallbacks" -a "add" -d 'Add an image fallback model'
complete -c openclaw -n "__fish_seen_subcommand_from image-fallbacks" -a "remove" -d 'Remove an image fallback model'
complete -c openclaw -n "__fish_seen_subcommand_from image-fallbacks" -a "clear" -d 'Clear all image fallback models'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l plain -d 'Plain output'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l min-params -d 'Minimum parameter size (billions)'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l max-age-days -d 'Skip models older than N days'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l provider -d 'Filter by provider prefix'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l max-candidates -d 'Max fallback candidates'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l timeout -d 'Per-probe timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l concurrency -d 'Probe concurrency'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l no-probe -d 'Skip live probes; list free candidates only'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l yes -d 'Accept defaults without prompting'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l no-input -d 'Disable prompts (use defaults)'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l set-default -d 'Set agents.defaults.model to the first selection'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l set-image -d 'Set agents.defaults.imageModel to the first image selection'
complete -c openclaw -n "__fish_seen_subcommand_from scan" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "add" -d 'Interactive auth helper (provider auth or paste token)'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "login" -d 'Run a provider plugin auth flow (OAuth/API key)'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "setup-token" -d 'Run a provider CLI to create/sync a token (TTY required)'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "paste-token" -d 'Paste a token into auth-profiles.json and update config'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "login-github-copilot" -d 'Login to GitHub Copilot via GitHub device flow (TTY required)'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "order" -d 'Manage per-agent auth profile order overrides'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -l agent -d 'Agent id for auth order get/set/clear'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l provider -d 'Provider id registered by a plugin'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l method -d 'Provider auth method id'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l set-default -d 'Apply the provider'\''s default model recommendation'
complete -c openclaw -n "__fish_seen_subcommand_from setup-token" -l provider -d 'Provider id'
complete -c openclaw -n "__fish_seen_subcommand_from setup-token" -l yes -d 'Skip confirmation'
complete -c openclaw -n "__fish_seen_subcommand_from paste-token" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__fish_seen_subcommand_from paste-token" -l profile-id -d 'Auth profile id (default: <provider>:manual)'
complete -c openclaw -n "__fish_seen_subcommand_from paste-token" -l expires-in -d 'Optional expiry duration (e.g. 365d, 12h). Stored as absolute expiresAt.'
complete -c openclaw -n "__fish_seen_subcommand_from login-github-copilot" -l yes -d 'Overwrite existing profile without prompting'
complete -c openclaw -n "__fish_seen_subcommand_from order" -a "get" -d 'Show per-agent auth order override (from auth-state.json)'
complete -c openclaw -n "__fish_seen_subcommand_from order" -a "set" -d 'Set per-agent auth order override (writes auth-state.json)'
complete -c openclaw -n "__fish_seen_subcommand_from order" -a "clear" -d 'Clear per-agent auth order override (fall back to config/round-robin)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l provider -d 'Provider id (e.g. anthropic)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l agent -d 'Agent id (default: configured default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "list" -d 'List canonical capability ids and supported transports'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "inspect" -d 'Inspect one canonical capability id'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "model" -d 'Text inference and model catalog commands'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "image" -d 'Image generation and description'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "audio" -d 'Audio transcription'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "tts" -d 'Text to speech'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "video" -d 'Video generation and description'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "web" -d 'Web capabilities'
complete -c openclaw -n "__fish_seen_subcommand_from infer" -a "embedding" -d 'Embedding providers'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from inspect" -l name -d 'Capability id'
complete -c openclaw -n "__fish_seen_subcommand_from inspect" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from model" -a "run" -d 'Run a one-shot model turn'
complete -c openclaw -n "__fish_seen_subcommand_from model" -a "list" -d 'List known models'
complete -c openclaw -n "__fish_seen_subcommand_from model" -a "inspect" -d 'Inspect one model catalog entry'
complete -c openclaw -n "__fish_seen_subcommand_from model" -a "providers" -d 'List model providers from the catalog'
complete -c openclaw -n "__fish_seen_subcommand_from model" -a "auth" -d 'Provider auth helpers'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l prompt -d 'Prompt text'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l local -d 'Force local execution'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from inspect" -l model -d 'Model id'
complete -c openclaw -n "__fish_seen_subcommand_from inspect" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "login" -d 'Run provider auth login'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "logout" -d 'Remove saved auth profiles for one provider'
complete -c openclaw -n "__fish_seen_subcommand_from auth" -a "status" -d 'Show configured auth state'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l provider -d 'Provider id'
complete -c openclaw -n "__fish_seen_subcommand_from logout" -l provider -d 'Provider id'
complete -c openclaw -n "__fish_seen_subcommand_from logout" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from image" -a "generate" -d 'Generate images'
complete -c openclaw -n "__fish_seen_subcommand_from image" -a "edit" -d 'Edit images with one or more input files'
complete -c openclaw -n "__fish_seen_subcommand_from image" -a "describe" -d 'Describe one image file'
complete -c openclaw -n "__fish_seen_subcommand_from image" -a "describe-many" -d 'Describe multiple image files'
complete -c openclaw -n "__fish_seen_subcommand_from image" -a "providers" -d 'List image generation providers'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l prompt -d 'Prompt text'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l count -d 'Number of images'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l size -d 'Size hint like 1024x1024'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l aspect-ratio -d 'Aspect ratio hint like 16:9'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l resolution -d 'Resolution hint: 1K, 2K, or 4K'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l output -d 'Output path'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l file -d 'Input file'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l prompt -d 'Prompt text'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l output -d 'Output path'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l file -d 'Image file'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from describe-many" -l file -d 'Image file'
complete -c openclaw -n "__fish_seen_subcommand_from describe-many" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from describe-many" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from audio" -a "transcribe" -d 'Transcribe one audio file'
complete -c openclaw -n "__fish_seen_subcommand_from audio" -a "providers" -d 'List audio transcription providers'
complete -c openclaw -n "__fish_seen_subcommand_from transcribe" -l file -d 'Audio file'
complete -c openclaw -n "__fish_seen_subcommand_from transcribe" -l language -d 'Language hint'
complete -c openclaw -n "__fish_seen_subcommand_from transcribe" -l prompt -d 'Prompt hint'
complete -c openclaw -n "__fish_seen_subcommand_from transcribe" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from transcribe" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "convert" -d 'Convert text to speech'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "voices" -d 'List voices for a TTS provider'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "providers" -d 'List speech providers'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "status" -d 'Show TTS status'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "enable" -d 'Enable TTS'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "disable" -d 'Disable TTS'
complete -c openclaw -n "__fish_seen_subcommand_from tts" -a "set-provider" -d 'Set the active TTS provider'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l text -d 'Input text'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l channel -d 'Channel hint'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l voice -d 'Voice hint'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l output -d 'Output path'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l local -d 'Force local execution'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from convert" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from voices" -l provider -d 'Speech provider id'
complete -c openclaw -n "__fish_seen_subcommand_from voices" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l local -d 'Force local execution'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l local -d 'Force local execution'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l local -d 'Force local execution'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from set-provider" -l provider -d 'Speech provider id'
complete -c openclaw -n "__fish_seen_subcommand_from set-provider" -l local -d 'Force local execution'
complete -c openclaw -n "__fish_seen_subcommand_from set-provider" -l gateway -d 'Force gateway execution'
complete -c openclaw -n "__fish_seen_subcommand_from set-provider" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from video" -a "generate" -d 'Generate video'
complete -c openclaw -n "__fish_seen_subcommand_from video" -a "describe" -d 'Describe one video file'
complete -c openclaw -n "__fish_seen_subcommand_from video" -a "providers" -d 'List video generation and description providers'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l prompt -d 'Prompt text'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l output -d 'Output path'
complete -c openclaw -n "__fish_seen_subcommand_from generate" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l file -d 'Video file'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from web" -a "search" -d 'Run web search'
complete -c openclaw -n "__fish_seen_subcommand_from web" -a "fetch" -d 'Fetch one URL'
complete -c openclaw -n "__fish_seen_subcommand_from web" -a "providers" -d 'List web providers'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l query -d 'Search query'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l provider -d 'Provider id'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from fetch" -l url -d 'URL'
complete -c openclaw -n "__fish_seen_subcommand_from fetch" -l provider -d 'Provider id'
complete -c openclaw -n "__fish_seen_subcommand_from fetch" -l format -d 'Format hint'
complete -c openclaw -n "__fish_seen_subcommand_from fetch" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from embedding" -a "create" -d 'Create embeddings'
complete -c openclaw -n "__fish_seen_subcommand_from embedding" -a "providers" -d 'List embedding providers'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l text -d 'Input text'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l provider -d 'Provider id'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l model -d 'Model override'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from providers" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from approvals" -a "get" -d 'Fetch exec approvals snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from approvals" -a "set" -d 'Replace exec approvals with a JSON file'
complete -c openclaw -n "__fish_seen_subcommand_from approvals" -a "allowlist" -d 'Edit the per-agent allowlist'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l file -d 'Path to JSON file to upload'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l stdin -d 'Read JSON from stdin'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from allowlist" -a "add" -d 'Add a glob pattern to an allowlist'
complete -c openclaw -n "__fish_seen_subcommand_from allowlist" -a "remove" -d 'Remove a glob pattern from an allowlist'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l agent -d 'Agent id (defaults to "*")'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l node -d 'Target node id/name/IP'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l gateway -d 'Force gateway approvals'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l agent -d 'Agent id (defaults to "*")'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from exec-policy" -a "show" -d 'Show the local config policy, host approvals, and effective merge'
complete -c openclaw -n "__fish_seen_subcommand_from exec-policy" -a "preset" -d 'Apply a synchronized preset: "yolo", "cautious", or "deny-all"'
complete -c openclaw -n "__fish_seen_subcommand_from exec-policy" -a "set" -d 'Synchronize local config and host approvals using explicit values'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from preset" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l host -d 'Exec host target: auto|sandbox|gateway|node'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l security -d 'Exec security: deny|allowlist|full'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l ask -d 'Exec ask mode: off|on-miss|always'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l ask-fallback -d 'Host approvals fallback: deny|allowlist|full'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "status" -d 'List known nodes with connection status and capabilities'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "describe" -d 'Describe a node (capabilities + supported invoke commands)'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "list" -d 'List pending and paired nodes'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "pending" -d 'List pending pairing requests'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "approve" -d 'Approve a pending pairing request'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "reject" -d 'Reject a pending pairing request'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "rename" -d 'Rename a paired node (display name override)'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "invoke" -d 'Invoke a command on a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "notify" -d 'Send a local notification on a node (mac only)'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "push" -d 'Send an APNs test push to an iOS node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "canvas" -d 'Capture or render canvas content from a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "camera" -d 'Capture camera media from a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "screen" -d 'Capture screen recordings from a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "location" -d 'Fetch location from a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l connected -d 'Only show connected nodes'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l last-connected -d 'Only show nodes connected within duration (e.g. 24h)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from describe" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l connected -d 'Only show connected nodes'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l last-connected -d 'Only show nodes connected within duration (e.g. 24h)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pending" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from pending" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from pending" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from pending" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from rename" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from rename" -l name -d 'New display name'
complete -c openclaw -n "__fish_seen_subcommand_from rename" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from rename" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from rename" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from rename" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l command -d 'Command (e.g. canvas.eval)'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l params -d 'JSON object string for params'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l invoke-timeout -d 'Node invoke timeout in ms (default 15000)'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l idempotency-key -d 'Idempotency key (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from invoke" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l title -d 'Notification title'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l body -d 'Notification body'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l sound -d 'Notification sound'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l priority -d 'Notification priority'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l delivery -d 'Delivery mode'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l invoke-timeout -d 'Node invoke timeout in ms (default 15000)'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l title -d 'Push title'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l body -d 'Push body'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l environment -d 'Override APNs environment'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "snapshot" -d 'Capture a canvas snapshot (prints MEDIA:<path>)'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "present" -d 'Show the canvas (optionally with a target URL/path)'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "hide" -d 'Hide the canvas'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "navigate" -d 'Navigate the canvas to a URL'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "eval" -d 'Evaluate JavaScript in the canvas'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "a2ui" -d 'Render A2UI content on the canvas'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l format -d 'Image format'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l max-width -d 'Max width in px (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l quality -d 'JPEG quality (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l invoke-timeout -d 'Node invoke timeout in ms (default 20000)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l target -d 'Target URL/path (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l x -d 'Placement x coordinate'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l y -d 'Placement y coordinate'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l width -d 'Placement width'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l height -d 'Placement height'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l invoke-timeout -d 'Node invoke timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from present" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from hide" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from hide" -l invoke-timeout -d 'Node invoke timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from hide" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from hide" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from hide" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from hide" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l invoke-timeout -d 'Node invoke timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l js -d 'JavaScript to evaluate'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l invoke-timeout -d 'Node invoke timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from eval" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from a2ui" -a "push" -d 'Push A2UI JSONL to the canvas'
complete -c openclaw -n "__fish_seen_subcommand_from a2ui" -a "reset" -d 'Reset A2UI renderer state'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l jsonl -d 'Path to JSONL payload'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l text -d 'Render a quick A2UI text payload'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l invoke-timeout -d 'Node invoke timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from push" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l invoke-timeout -d 'Node invoke timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from reset" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from camera" -a "list" -d 'List available cameras on a node'
complete -c openclaw -n "__fish_seen_subcommand_from camera" -a "snap" -d 'Capture a photo from a node camera (prints MEDIA:<path>)'
complete -c openclaw -n "__fish_seen_subcommand_from camera" -a "clip" -d 'Capture a short video clip from a node camera (prints MEDIA:<path>)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l facing -d 'Camera facing'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l device-id -d 'Camera device id (from nodes camera list)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l max-width -d 'Max width in px (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l quality -d 'JPEG quality (default 0.9)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l delay-ms -d 'Delay before capture in ms (macOS default 2000)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l invoke-timeout -d 'Node invoke timeout in ms (default 20000)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from snap" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l facing -d 'Camera facing'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l device-id -d 'Camera device id (from nodes camera list)'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l duration -d 'Duration (default 3000ms; supports ms/s/m, e.g. 10s)'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l no-audio -d 'Disable audio capture'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l invoke-timeout -d 'Node invoke timeout in ms (default 90000)'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from clip" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from screen" -a "record" -d 'Capture a short screen recording from a node (prints MEDIA:<path>)'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l screen -d 'Screen index (0 = primary)'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l duration -d 'Clip duration (ms or 10s)'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l fps -d 'Frames per second'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l no-audio -d 'Disable microphone audio capture'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l out -d 'Output path'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l invoke-timeout -d 'Node invoke timeout in ms (default 120000)'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from record" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from location" -a "get" -d 'Fetch the current location from a node'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l node -d 'Node id, name, or IP'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l max-age -d 'Use cached location newer than this (ms)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l accuracy -d 'Desired accuracy (default: balanced/precise depending on node setting)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l location-timeout -d 'Location fix timeout (ms)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l invoke-timeout -d 'Node invoke timeout in ms (default 20000)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "list" -d 'List pending and paired devices'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "remove" -d 'Remove a paired device entry'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "clear" -d 'Clear paired devices from the gateway table'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "approve" -d 'Approve a pending device pairing request'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "reject" -d 'Reject a pending device pairing request'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "rotate" -d 'Rotate a device token for a role'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "revoke" -d 'Revoke a device token for a role'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l pending -d 'Also reject all pending pairing requests'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l yes -d 'Confirm destructive clear'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l latest -d 'Show the most recent pending request to approve explicitly'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from reject" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l device -d 'Device id'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l role -d 'Role name'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l scope -d 'Scopes to attach to the token (repeatable)'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from rotate" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l device -d 'Device id'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l role -d 'Role name'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from revoke" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from node" -a "run" -d 'Run the headless node host (foreground)'
complete -c openclaw -n "__fish_seen_subcommand_from node" -a "status" -d 'Show node host status'
complete -c openclaw -n "__fish_seen_subcommand_from node" -a "install" -d 'Install the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from node" -a "uninstall" -d 'Uninstall the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from node" -a "stop" -d 'Stop the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from node" -a "restart" -d 'Restart the node host service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l host -d 'Gateway host'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l port -d 'Gateway port'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tls -d 'Use TLS for the gateway connection'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tls-fingerprint -d 'Expected TLS certificate fingerprint (sha256)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l node-id -d 'Override node id (clears pairing token)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l display-name -d 'Override node display name'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l host -d 'Gateway host'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l port -d 'Gateway port'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l tls -d 'Use TLS for the gateway connection'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l tls-fingerprint -d 'Expected TLS certificate fingerprint (sha256)'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l node-id -d 'Override node id (clears pairing token)'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l display-name -d 'Override node display name'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l runtime -d 'Service runtime (node|bun). Default: node'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l force -d 'Reinstall/overwrite if already installed'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from stop" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from restart" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from sandbox" -a "list" -d 'List sandbox containers and their status'
complete -c openclaw -n "__fish_seen_subcommand_from sandbox" -a "recreate" -d 'Remove containers to force recreation with updated config'
complete -c openclaw -n "__fish_seen_subcommand_from sandbox" -a "explain" -d 'Explain effective sandbox/tool policy for a session/agent'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l browser -d 'List browser containers only'
complete -c openclaw -n "__fish_seen_subcommand_from recreate" -l all -d 'Recreate all sandbox containers'
complete -c openclaw -n "__fish_seen_subcommand_from recreate" -l session -d 'Recreate container for specific session'
complete -c openclaw -n "__fish_seen_subcommand_from recreate" -l agent -d 'Recreate containers for specific agent'
complete -c openclaw -n "__fish_seen_subcommand_from recreate" -l browser -d 'Only recreate browser containers'
complete -c openclaw -n "__fish_seen_subcommand_from recreate" -l force -d 'Skip confirmation prompt'
complete -c openclaw -n "__fish_seen_subcommand_from explain" -l session -d 'Session key to inspect (defaults to agent main)'
complete -c openclaw -n "__fish_seen_subcommand_from explain" -l agent -d 'Agent id to inspect (defaults to derived agent)'
complete -c openclaw -n "__fish_seen_subcommand_from explain" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l password -d 'Gateway password (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l session -d 'Session key (default: "main", or "global" when scope is global)'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l deliver -d 'Deliver assistant replies'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l thinking -d 'Thinking level override'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l message -d 'Send an initial message after connecting'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l timeout-ms -d 'Agent timeout in ms (defaults to agents.defaults.timeoutSeconds)'
complete -c openclaw -n "__fish_seen_subcommand_from tui" -l history-limit -d 'History entries to load'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "status" -d 'Show cron scheduler status'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "list" -d 'List cron jobs'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "add" -d 'Add a cron job'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "rm" -d 'Remove a cron job'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "enable" -d 'Enable a cron job'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "disable" -d 'Disable a cron job'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "show" -d 'Show a cron job'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "runs" -d 'Show cron run history (JSONL-backed)'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "run" -d 'Run a cron job now (debug)'
complete -c openclaw -n "__fish_seen_subcommand_from cron" -a "edit" -d 'Edit a cron job (patch fields)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l all -d 'Include disabled jobs'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l name -d 'Job name'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l description -d 'Optional description'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l disabled -d 'Create job disabled'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l delete-after-run -d 'Delete one-shot job after it succeeds'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l keep-after-run -d 'Keep one-shot job after it succeeds'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l agent -d 'Agent id for this job'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l session -d 'Session target (main|isolated)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l session-key -d 'Session key for job routing (e.g. agent:my-agent:my-session)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l wake -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l at -d 'Run once at time (ISO with offset, or +duration). Use --tz for offset-less datetimes'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l every -d 'Run every duration (e.g. 10m, 1h)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l cron -d 'Cron expression (5-field or 6-field with seconds)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l tz -d 'Timezone for cron expressions (IANA)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l stagger -d 'Cron stagger window (e.g. 30s, 5m)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l exact -d 'Disable cron staggering (set stagger to 0)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l system-event -d 'System event payload (main session)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l message -d 'Agent message payload'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l thinking -d 'Thinking level for agent jobs (off|minimal|low|medium|high|xhigh)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l model -d 'Model override for agent jobs (provider/model or alias)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l timeout-seconds -d 'Timeout seconds for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l light-context -d 'Use lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l tools -d 'Tool allow-list (e.g. exec,read,write or exec read write)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l announce -d 'Fallback-deliver final text to a chat'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l deliver -d 'Deprecated (use --announce). Fallback-delivers final text to a chat.'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l no-deliver -d 'Disable runner fallback delivery'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Delivery channel (last|<channel-id>)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l to -d 'Delivery destination (E.164, Telegram chatId, or Discord channel/user)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l account -d 'Channel account id for delivery (multi-account setups)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l best-effort-deliver -d 'Do not fail the job if delivery fails'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from rm" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from rm" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from rm" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from rm" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from rm" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from enable" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from disable" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from show" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from runs" -l id -d 'Job id'
complete -c openclaw -n "__fish_seen_subcommand_from runs" -l limit -d 'Max entries (default 50)'
complete -c openclaw -n "__fish_seen_subcommand_from runs" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from runs" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from runs" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from runs" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l due -d 'Run only when due (default behavior in older versions)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l name -d 'Set name'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l description -d 'Set description'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l enable -d 'Enable job'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l disable -d 'Disable job'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l delete-after-run -d 'Delete one-shot job after it succeeds'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l keep-after-run -d 'Keep one-shot job after it succeeds'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l session -d 'Session target (main|isolated)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l agent -d 'Set agent id'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l clear-agent -d 'Unset agent and use default'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l session-key -d 'Set session key for job routing'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l clear-session-key -d 'Unset session key'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l wake -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l at -d 'Set one-shot time (ISO) or duration like 20m'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l every -d 'Set interval duration like 10m'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l cron -d 'Set cron expression'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l tz -d 'Timezone for cron expressions (IANA)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l stagger -d 'Cron stagger window (e.g. 30s, 5m)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l exact -d 'Disable cron staggering (set stagger to 0)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l system-event -d 'Set systemEvent payload'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l message -d 'Set agentTurn payload message'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l thinking -d 'Thinking level for agent jobs (off|minimal|low|medium|high|xhigh)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l model -d 'Model override for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l timeout-seconds -d 'Timeout seconds for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l light-context -d 'Enable lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-light-context -d 'Disable lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l tools -d 'Tool allow-list (e.g. exec,read,write or exec read write)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l clear-tools -d 'Remove tool allow-list (use all tools)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l announce -d 'Fallback-deliver final text to a chat'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l deliver -d 'Deprecated (use --announce). Fallback-delivers final text to a chat.'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-deliver -d 'Disable runner fallback delivery'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l channel -d 'Delivery channel (last|<channel-id>)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l to -d 'Delivery destination (E.164, Telegram chatId, or Discord channel/user)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l account -d 'Channel account id for delivery (multi-account setups)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l best-effort-deliver -d 'Do not fail job if delivery fails'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-best-effort-deliver -d 'Fail job when delivery fails'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert -d 'Enable failure alerts for this job'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-failure-alert -d 'Disable failure alerts for this job'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-after -d 'Alert after N consecutive job errors'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-channel -d 'Failure alert channel (last|<channel-id>)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-to -d 'Failure alert destination'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-cooldown -d 'Minimum time between alerts (e.g. 1h, 30m)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-mode -d 'Failure alert delivery mode (announce or webhook)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-account-id -d 'Account ID for failure alert channel (multi-account setups)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from dns" -a "setup" -d 'Set up CoreDNS to serve your discovery domain for unicast DNS-SD (Wide-Area Bonjour)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l domain -d 'Wide-area discovery domain (e.g. openclaw.internal)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l apply -d 'Install/update CoreDNS config and (re)start the service (requires sudo)'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "start" -d 'Start the local explicit debug proxy'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "run" -d 'Run a child command with OpenClaw debug proxy capture enabled'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "coverage" -d 'Report current debug proxy transport coverage and remaining gaps'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "sessions" -d 'List recent capture sessions'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "query" -d 'Run a built-in query preset against captured traffic'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "blob" -d 'Read a captured payload blob by id'
complete -c openclaw -n "__fish_seen_subcommand_from proxy" -a "purge" -d 'Delete all captured traffic metadata and blobs'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l host -d 'Bind host'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l port -d 'Bind port'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l host -d 'Bind host'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l port -d 'Bind port'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l limit -d 'Maximum sessions to show'
complete -c openclaw -n "__fish_seen_subcommand_from query" -l preset -d 'Query preset: double-sends, retry-storms, cache-busting, ws-duplicate-frames, missing-ack, error-bursts'
complete -c openclaw -n "__fish_seen_subcommand_from query" -l session -d 'Restrict to a capture session id'
complete -c openclaw -n "__fish_seen_subcommand_from blob" -l id -d 'Blob id'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "list" -d 'List all hooks'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "info" -d 'Show detailed information about a hook'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "check" -d 'Check hooks eligibility status'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "enable" -d 'Enable a hook'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "disable" -d 'Disable a hook'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "install" -d 'Deprecated: install a hook pack via `openclaw plugins install`'
complete -c openclaw -n "__fish_seen_subcommand_from hooks" -a "update" -d 'Deprecated: update hook packs via `openclaw plugins update`'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l eligible -d 'Show only eligible hooks'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -s v -l verbose -d 'Show more details including missing requirements'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from check" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from install" -s l -l link -d 'Link a local path instead of copying'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l pin -d 'Record npm installs as exact resolved <name>@<version>'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l all -d 'Update all tracked hooks'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l dry-run -d 'Show what would change without writing'
complete -c openclaw -n "__fish_seen_subcommand_from webhooks" -a "gmail" -d 'Gmail Pub/Sub hooks (via gogcli)'
complete -c openclaw -n "__fish_seen_subcommand_from gmail" -a "setup" -d 'Configure Gmail watch + Pub/Sub + OpenClaw hooks'
complete -c openclaw -n "__fish_seen_subcommand_from gmail" -a "run" -d 'Run gog watch serve + auto-renew loop'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l account -d 'Gmail account to watch'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l project -d 'GCP project id (OAuth client owner)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l topic -d 'Pub/Sub topic name'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l subscription -d 'Pub/Sub subscription name'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l label -d 'Gmail label to watch'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l hook-url -d 'OpenClaw hook URL'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l hook-token -d 'OpenClaw hook token'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l push-token -d 'Push token for gog watch serve'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l bind -d 'gog watch serve bind host'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l port -d 'gog watch serve port'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l path -d 'gog watch serve path'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l include-body -d 'Include email body snippets'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l max-bytes -d 'Max bytes for body snippets'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l renew-minutes -d 'Renew watch every N minutes'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l tailscale -d 'Expose push endpoint via tailscale (funnel|serve|off)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l tailscale-path -d 'Path for tailscale serve/funnel'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l tailscale-target -d 'Tailscale serve/funnel target (port, host:port, or URL)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l push-endpoint -d 'Explicit Pub/Sub push endpoint'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l account -d 'Gmail account to watch'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l topic -d 'Pub/Sub topic path (projects/.../topics/..)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l subscription -d 'Pub/Sub subscription name'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l label -d 'Gmail label to watch'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l hook-url -d 'OpenClaw hook URL'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l hook-token -d 'OpenClaw hook token'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l push-token -d 'Push token for gog watch serve'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l bind -d 'gog watch serve bind host'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l port -d 'gog watch serve port'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l path -d 'gog watch serve path'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l include-body -d 'Include email body snippets'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l max-bytes -d 'Max bytes for body snippets'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l renew-minutes -d 'Renew watch every N minutes'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale -d 'Expose push endpoint via tailscale (funnel|serve|off)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale-path -d 'Path for tailscale serve/funnel'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale-target -d 'Tailscale serve/funnel target (port, host:port, or URL)'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l remote -d 'Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l url -d 'Override gateway URL used in the setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l public-url -d 'Override gateway public URL used in the setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l token -d 'Override gateway token for setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l password -d 'Override gateway password for setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l setup-code-only -d 'Print only the setup code'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l no-ascii -d 'Skip ASCII QR rendering'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from clawbot" -a "qr" -d 'Generate a mobile pairing QR code and setup code'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l remote -d 'Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l url -d 'Override gateway URL used in the setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l public-url -d 'Override gateway public URL used in the setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l token -d 'Override gateway token for setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l password -d 'Override gateway password for setup payload'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l setup-code-only -d 'Print only the setup code'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l no-ascii -d 'Skip ASCII QR rendering'
complete -c openclaw -n "__fish_seen_subcommand_from qr" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "status" -d 'Show browser status'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "start" -d 'Start the browser (no-op if already running)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "stop" -d 'Stop the browser (best-effort)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "reset-profile" -d 'Reset browser profile (moves it to Trash)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "tabs" -d 'List open tabs'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "tab" -d 'Tab shortcuts (index-based)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "open" -d 'Open a URL in a new tab'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "focus" -d 'Focus a tab by target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "close" -d 'Close a tab (target id optional)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "profiles" -d 'List all browser profiles'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "create-profile" -d 'Create a new browser profile'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "delete-profile" -d 'Delete a browser profile'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "screenshot" -d 'Capture a screenshot (MEDIA:<path>)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "snapshot" -d 'Capture a snapshot (default: ai; aria is the accessibility tree)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "navigate" -d 'Navigate the current tab to a URL'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "resize" -d 'Resize the viewport'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "click" -d 'Click an element by ref from snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "type" -d 'Type into an element by ref from snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "press" -d 'Press a key'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "hover" -d 'Hover an element by ai ref'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "scrollintoview" -d 'Scroll an element into view by ref from snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "drag" -d 'Drag from one ref to another'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "select" -d 'Select option(s) in a select element'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "upload" -d 'Arm file upload for the next file chooser'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "waitfordownload" -d 'Wait for the next download (and save it)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "download" -d 'Click a ref and save the resulting download'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "dialog" -d 'Arm the next modal dialog (alert/confirm/prompt)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "fill" -d 'Fill a form with JSON field descriptors'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "wait" -d 'Wait for time, selector, URL, load state, or JS conditions'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "evaluate" -d 'Evaluate a function against the page or a ref'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "console" -d 'Get recent console messages'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "pdf" -d 'Save page as PDF'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "responsebody" -d 'Wait for a network response and return its body'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "highlight" -d 'Highlight an element by ref'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "errors" -d 'Get recent page errors'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "requests" -d 'Get recent network requests (best-effort)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "trace" -d 'Record a Playwright trace'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "cookies" -d 'Read/write cookies'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "storage" -d 'Read/write localStorage/sessionStorage'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "set" -d 'Browser environment settings'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -l browser-profile -d 'Browser profile name (default from config)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -l json -d 'Output machine-readable JSON'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from tab" -a "new" -d 'Open a new tab (about:blank)'
complete -c openclaw -n "__fish_seen_subcommand_from tab" -a "select" -d 'Focus tab by index (1-based)'
complete -c openclaw -n "__fish_seen_subcommand_from tab" -a "close" -d 'Close tab by index (1-based); default: first tab'
complete -c openclaw -n "__fish_seen_subcommand_from create-profile" -l name -d 'Profile name (lowercase, numbers, hyphens)'
complete -c openclaw -n "__fish_seen_subcommand_from create-profile" -l color -d 'Profile color (hex format, e.g. #0066CC)'
complete -c openclaw -n "__fish_seen_subcommand_from create-profile" -l cdp-url -d 'CDP URL for remote Chrome (http/https)'
complete -c openclaw -n "__fish_seen_subcommand_from create-profile" -l user-data-dir -d 'User data dir for existing-session Chromium attach'
complete -c openclaw -n "__fish_seen_subcommand_from create-profile" -l driver -d 'Profile driver (openclaw|existing-session). Default: openclaw'
complete -c openclaw -n "__fish_seen_subcommand_from delete-profile" -l name -d 'Profile name to delete'
complete -c openclaw -n "__fish_seen_subcommand_from screenshot" -l full-page -d 'Capture full scrollable page'
complete -c openclaw -n "__fish_seen_subcommand_from screenshot" -l ref -d 'ARIA ref from ai snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from screenshot" -l element -d 'CSS selector for element screenshot'
complete -c openclaw -n "__fish_seen_subcommand_from screenshot" -l type -d 'Output type (default: png)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l format -d 'Snapshot format (default: ai)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l limit -d 'Max nodes (default: 500/800)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l mode -d 'Snapshot preset (efficient)'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l efficient -d 'Use the efficient snapshot preset'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l interactive -d 'Role snapshot: interactive elements only'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l compact -d 'Role snapshot: compact output'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l depth -d 'Role snapshot: max depth'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l selector -d 'Role snapshot: scope to CSS selector'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l frame -d 'Role snapshot: scope to an iframe selector'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l labels -d 'Include viewport label overlay screenshot'
complete -c openclaw -n "__fish_seen_subcommand_from snapshot" -l out -d 'Write snapshot to a file'
complete -c openclaw -n "__fish_seen_subcommand_from navigate" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from resize" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from click" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from click" -l double -d 'Double click'
complete -c openclaw -n "__fish_seen_subcommand_from click" -l button -d 'Mouse button to use'
complete -c openclaw -n "__fish_seen_subcommand_from click" -l modifiers -d 'Comma-separated modifiers (Shift,Alt,Meta)'
complete -c openclaw -n "__fish_seen_subcommand_from type" -l submit -d 'Press Enter after typing'
complete -c openclaw -n "__fish_seen_subcommand_from type" -l slowly -d 'Type slowly (human-like)'
complete -c openclaw -n "__fish_seen_subcommand_from type" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from press" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from hover" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from scrollintoview" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from scrollintoview" -l timeout-ms -d 'How long to wait for scroll (default: 20000)'
complete -c openclaw -n "__fish_seen_subcommand_from drag" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from select" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l ref -d 'Ref id from snapshot to click after arming'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l input-ref -d 'Ref id for <input type=file> to set directly'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l element -d 'CSS selector for <input type=file>'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l timeout-ms -d 'How long to wait for the next file chooser (default: 120000)'
complete -c openclaw -n "__fish_seen_subcommand_from waitfordownload" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from waitfordownload" -l timeout-ms -d 'How long to wait for the next download (default: 120000)'
complete -c openclaw -n "__fish_seen_subcommand_from download" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from download" -l timeout-ms -d 'How long to wait for the download to start (default: 120000)'
complete -c openclaw -n "__fish_seen_subcommand_from dialog" -l accept -d 'Accept the dialog'
complete -c openclaw -n "__fish_seen_subcommand_from dialog" -l dismiss -d 'Dismiss the dialog'
complete -c openclaw -n "__fish_seen_subcommand_from dialog" -l prompt -d 'Prompt response text'
complete -c openclaw -n "__fish_seen_subcommand_from dialog" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from dialog" -l timeout-ms -d 'How long to wait for the next dialog (default: 120000)'
complete -c openclaw -n "__fish_seen_subcommand_from fill" -l fields -d 'JSON array of field objects'
complete -c openclaw -n "__fish_seen_subcommand_from fill" -l fields-file -d 'Read JSON array from a file'
complete -c openclaw -n "__fish_seen_subcommand_from fill" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l time -d 'Wait for N milliseconds'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l text -d 'Wait for text to appear'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l text-gone -d 'Wait for text to disappear'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l url -d 'Wait for URL (supports globs like **/dash)'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l load -d 'Wait for load state'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l fn -d 'Wait for JS condition (passed to waitForFunction)'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l timeout-ms -d 'How long to wait for each condition (default: 20000)'
complete -c openclaw -n "__fish_seen_subcommand_from wait" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from evaluate" -l fn -d 'Function source, e.g. (el) => el.textContent'
complete -c openclaw -n "__fish_seen_subcommand_from evaluate" -l ref -d 'Ref from snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from evaluate" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from console" -l level -d 'Filter by level (error, warn, info)'
complete -c openclaw -n "__fish_seen_subcommand_from console" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from pdf" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from responsebody" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from responsebody" -l timeout-ms -d 'How long to wait for the response (default: 20000)'
complete -c openclaw -n "__fish_seen_subcommand_from responsebody" -l max-chars -d 'Max body chars to return (default: 200000)'
complete -c openclaw -n "__fish_seen_subcommand_from highlight" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from errors" -l clear -d 'Clear stored errors after reading'
complete -c openclaw -n "__fish_seen_subcommand_from errors" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from requests" -l filter -d 'Only show URLs that contain this substring'
complete -c openclaw -n "__fish_seen_subcommand_from requests" -l clear -d 'Clear stored requests after reading'
complete -c openclaw -n "__fish_seen_subcommand_from requests" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from trace" -a "start" -d 'Start trace recording'
complete -c openclaw -n "__fish_seen_subcommand_from trace" -a "stop" -d 'Stop trace recording and write a .zip'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l no-screenshots -d 'Disable screenshots'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l no-snapshots -d 'Disable snapshots'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l sources -d 'Include sources (bigger traces)'
complete -c openclaw -n "__fish_seen_subcommand_from stop" -l out -d 'Output path within openclaw temp dir (e.g. trace.zip or /tmp/openclaw/trace.zip)'
complete -c openclaw -n "__fish_seen_subcommand_from stop" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from cookies" -a "set" -d 'Set a cookie (requires --url or domain+path)'
complete -c openclaw -n "__fish_seen_subcommand_from cookies" -a "clear" -d 'Clear all cookies'
complete -c openclaw -n "__fish_seen_subcommand_from cookies" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l url -d 'Cookie URL scope (recommended)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from storage" -a "local" -d 'localStorage commands'
complete -c openclaw -n "__fish_seen_subcommand_from storage" -a "session" -d 'sessionStorage commands'
complete -c openclaw -n "__fish_seen_subcommand_from local" -a "get" -d 'Get localStorage (all keys or one key)'
complete -c openclaw -n "__fish_seen_subcommand_from local" -a "set" -d 'Set a localStorage key'
complete -c openclaw -n "__fish_seen_subcommand_from local" -a "clear" -d 'Clear all localStorage keys'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from session" -a "get" -d 'Get sessionStorage (all keys or one key)'
complete -c openclaw -n "__fish_seen_subcommand_from session" -a "set" -d 'Set a sessionStorage key'
complete -c openclaw -n "__fish_seen_subcommand_from session" -a "clear" -d 'Clear all sessionStorage keys'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from clear" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "viewport" -d 'Set viewport size (alias for resize)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "offline" -d 'Toggle offline mode'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "headers" -d 'Set extra HTTP headers (JSON object)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "credentials" -d 'Set HTTP basic auth credentials'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "geo" -d 'Set geolocation (and grant permission)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "media" -d 'Emulate prefers-color-scheme'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "timezone" -d 'Override timezone (CDP)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "locale" -d 'Override locale (CDP)'
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "device" -d 'Apply a Playwright device descriptor (e.g. "iPhone 14")'
complete -c openclaw -n "__fish_seen_subcommand_from viewport" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from offline" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from headers" -l headers-json -d 'JSON object of headers'
complete -c openclaw -n "__fish_seen_subcommand_from headers" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from credentials" -l clear -d 'Clear credentials'
complete -c openclaw -n "__fish_seen_subcommand_from credentials" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from geo" -l clear -d 'Clear geolocation + permissions'
complete -c openclaw -n "__fish_seen_subcommand_from geo" -l accuracy -d 'Accuracy in meters'
complete -c openclaw -n "__fish_seen_subcommand_from geo" -l origin -d 'Origin to grant permissions for'
complete -c openclaw -n "__fish_seen_subcommand_from geo" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from media" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from timezone" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from locale" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from device" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "status" -d 'Show memory search index status'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "index" -d 'Reindex memory files'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "search" -d 'Search memory files'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "promote" -d 'Rank short-term recalls and optionally append top entries to MEMORY.md'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "promote-explain" -d 'Explain a specific promotion candidate and its score breakdown'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "rem-harness" -d 'Preview REM reflections, candidate truths, and deep promotions without writing'
complete -c openclaw -n "__fish_seen_subcommand_from memory" -a "rem-backfill" -d 'Write grounded historical REM summaries into DREAMS.md for UI review'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l deep -d 'Probe embedding provider availability'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l index -d 'Reindex if dirty (implies --deep)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l fix -d 'Repair stale recall locks and normalize promotion metadata'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from index" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from index" -l force -d 'Force full reindex'
complete -c openclaw -n "__fish_seen_subcommand_from index" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l query -d 'Search query (alternative to positional argument)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l max-results -d 'Max results'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l min-score -d 'Minimum score'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l limit -d 'Max candidates'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l min-score -d 'Minimum weighted score (default: 0.75)'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l min-recall-count -d 'Minimum recall count (default: 3)'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l min-unique-queries -d 'Minimum distinct query count (default: 2)'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l apply -d 'Append selected candidates to MEMORY.md'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l include-promoted -d 'Include already promoted candidates'
complete -c openclaw -n "__fish_seen_subcommand_from promote" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from promote-explain" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from promote-explain" -l include-promoted -d 'Include already promoted candidates'
complete -c openclaw -n "__fish_seen_subcommand_from promote-explain" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from rem-harness" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from rem-harness" -l path -d 'Seed the harness from historical daily memory file(s)'
complete -c openclaw -n "__fish_seen_subcommand_from rem-harness" -l grounded -d 'Also render a grounded day-level REM preview'
complete -c openclaw -n "__fish_seen_subcommand_from rem-harness" -l include-promoted -d 'Include already promoted deep candidates'
complete -c openclaw -n "__fish_seen_subcommand_from rem-harness" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from rem-backfill" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from rem-backfill" -l path -d 'Historical daily memory file(s) or directory'
complete -c openclaw -n "__fish_seen_subcommand_from rem-backfill" -l rollback -d 'Remove previously written grounded REM backfill entries'
complete -c openclaw -n "__fish_seen_subcommand_from rem-backfill" -l stage-short-term -d 'Also seed grounded durable candidates into the short-term promotion store'
complete -c openclaw -n "__fish_seen_subcommand_from rem-backfill" -l rollback-short-term -d 'Remove previously seeded grounded short-term candidates'
complete -c openclaw -n "__fish_seen_subcommand_from rem-backfill" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pairing" -a "list" -d 'List pending pairing requests'
complete -c openclaw -n "__fish_seen_subcommand_from pairing" -a "approve" -d 'Approve a pairing code and allow that sender'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel (discord, telegram)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Account id (for multi-account channels)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l channel -d 'Channel (discord, telegram)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l account -d 'Account id (for multi-account channels)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l notify -d 'Notify the requester on the same channel'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "list" -d 'List discovered plugins'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "inspect" -d 'Inspect plugin details'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "enable" -d 'Enable a plugin in config'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "disable" -d 'Disable a plugin in config'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "uninstall" -d 'Uninstall a plugin'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "install" -d 'Install a plugin or hook pack (path, archive, npm spec, clawhub:package, or marketplace entry)'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "update" -d 'Update installed plugins and tracked hook packs'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "doctor" -d 'Report plugin load issues'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "marketplace" -d 'Inspect Claude-compatible plugin marketplaces'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l enabled -d 'Only show enabled plugins'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Show detailed entries'
complete -c openclaw -n "__fish_seen_subcommand_from inspect" -l all -d 'Inspect all plugins'
complete -c openclaw -n "__fish_seen_subcommand_from inspect" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l keep-files -d 'Keep installed files on disk'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l keep-config -d 'Deprecated alias for --keep-files'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l force -d 'Skip confirmation prompt'
complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l dry-run -d 'Show what would be removed without making changes'
complete -c openclaw -n "__fish_seen_subcommand_from install" -s l -l link -d 'Link a local path instead of copying'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l force -d 'Overwrite an existing installed plugin or hook pack'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l pin -d 'Record npm installs as exact resolved <name>@<version>'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l dangerously-force-unsafe-install -d 'Bypass built-in dangerous-code install blocking (plugin hooks may still block)'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l marketplace -d 'Install a Claude marketplace plugin from a local repo/path or git/GitHub source'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l all -d 'Update all tracked plugins and hook packs'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l dry-run -d 'Show what would change without writing'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l dangerously-force-unsafe-install -d 'Bypass built-in dangerous-code update blocking for plugins (plugin hooks may still block)'
complete -c openclaw -n "__fish_seen_subcommand_from marketplace" -a "list" -d 'List plugins published by a marketplace source'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "list" -d 'List configured channels + auth profiles'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "status" -d 'Show gateway channel status (use status --deep for local)'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "capabilities" -d 'Show provider capabilities (intents/scopes + supported features)'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "resolve" -d 'Resolve channel/user names to IDs'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "logs" -d 'Show recent channel logs from the gateway log file'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "add" -d 'Add or update a channel account'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "remove" -d 'Disable or delete a channel account'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "login" -d 'Link a channel account (if supported)'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "logout" -d 'Log out of a channel session (if supported)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l no-usage -d 'Skip model provider usage/quota snapshots'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe -d 'Probe channel credentials'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l channel -d 'Channel (all|feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp)'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l account -d 'Account id (only with --channel)'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l target -d 'Channel target for permission audit (Discord channel:<id>)'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l channel -d 'Channel (feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp)'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l kind -d 'Target kind (auto|user|group)'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l channel -d 'Channel (all|feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l lines -d 'Number of lines (default: 200)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Channel (feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l account -d 'Account id (default when omitted)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l name -d 'Display name for this account'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l token -d 'Bot token (Telegram/Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l private-key -d 'Nostr private key (nsec... or hex)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l token-file -d 'Bot token file (Telegram)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l bot-token -d 'Slack bot token (xoxb-...)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l app-token -d 'Slack app token (xapp-...)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l signal-number -d 'Signal account number (E.164)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l cli-path -d 'CLI path (signal-cli or imsg)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l db-path -d 'iMessage database path'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l service -d 'iMessage service (imessage|sms|auto)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l region -d 'iMessage region (for SMS)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l auth-dir -d 'WhatsApp auth directory override'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l http-url -d 'Signal HTTP daemon base URL'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l http-host -d 'Signal HTTP host'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l http-port -d 'Signal HTTP port'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l webhook-path -d 'Webhook path (Google Chat/BlueBubbles)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l webhook-url -d 'Google Chat webhook URL'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l audience-type -d 'Google Chat audience type (app-url|project-number)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l audience -d 'Google Chat audience value (app URL or project number)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l homeserver -d 'Matrix homeserver URL'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l user-id -d 'Matrix user ID'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l access-token -d 'Matrix access token'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l password -d 'Matrix password'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l device-name -d 'Matrix device name'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l initial-sync-limit -d 'Matrix initial sync limit'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l ship -d 'Tlon ship name (~sampel-palnet)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l url -d 'Tlon ship URL'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l relay-urls -d 'Nostr relay URLs (comma-separated)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l code -d 'Tlon login code'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l group-channels -d 'Tlon group channels (comma-separated)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l dm-allowlist -d 'Tlon DM allowlist (comma-separated ships)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l auto-discover-channels -d 'Tlon auto-discover group channels'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l no-auto-discover-channels -d 'Disable Tlon auto-discovery'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l use-env -d 'Use env token (default account only)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l channel -d 'Channel (feishu|googlechat|nostr|msteams|mattermost|nextcloud-talk|matrix|bluebubbles|line|zalo|zalouser|synology-chat|tlon|discord|imessage|irc|qqbot|signal|slack|telegram|twitch|whatsapp)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l account -d 'Account id (default when omitted)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l delete -d 'Delete config entries (no prompt)'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l channel -d 'Channel alias (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l verbose -d 'Verbose connection logs'
complete -c openclaw -n "__fish_seen_subcommand_from logout" -l channel -d 'Channel alias (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from logout" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from directory" -a "self" -d 'Show the current account user'
complete -c openclaw -n "__fish_seen_subcommand_from directory" -a "peers" -d 'Peer directory (contacts/users)'
complete -c openclaw -n "__fish_seen_subcommand_from directory" -a "groups" -d 'Group directory'
complete -c openclaw -n "__fish_seen_subcommand_from self" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from self" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from self" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from peers" -a "list" -d 'List peers'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l query -d 'Optional search query'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l limit -d 'Limit results'
complete -c openclaw -n "__fish_seen_subcommand_from groups" -a "list" -d 'List groups'
complete -c openclaw -n "__fish_seen_subcommand_from groups" -a "members" -d 'List group members'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l query -d 'Optional search query'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l limit -d 'Limit results'
complete -c openclaw -n "__fish_seen_subcommand_from members" -l group-id -d 'Group id'
complete -c openclaw -n "__fish_seen_subcommand_from members" -l channel -d 'Channel (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from members" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from members" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from members" -l limit -d 'Limit results'
complete -c openclaw -n "__fish_seen_subcommand_from security" -a "audit" -d 'Audit config + local state for common security foot-guns'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l deep -d 'Attempt live Gateway probe (best-effort)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l token -d 'Use explicit gateway token for deep probe auth'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l password -d 'Use explicit gateway password for deep probe auth'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l fix -d 'Apply safe fixes (tighten defaults + chmod state/config)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "reload" -d 'Re-resolve secret references and atomically swap runtime snapshot'
complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "audit" -d 'Audit plaintext secrets, unresolved refs, and precedence drift'
complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "configure" -d 'Interactive secrets helper (provider setup + SecretRef mapping + preflight)'
complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "apply" -d 'Apply a previously generated secrets plan'
complete -c openclaw -n "__fish_seen_subcommand_from reload" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reload" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from reload" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from reload" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from reload" -l expect-final -d 'Wait for final response (agent)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l check -d 'Exit non-zero when findings are present'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l allow-exec -d 'Allow exec SecretRef resolution during audit (may execute provider commands)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l apply -d 'Apply changes immediately after preflight'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l yes -d 'Skip apply confirmation prompt'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l providers-only -d 'Configure secrets.providers only, skip credential mapping'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l skip-provider-setup -d 'Skip provider setup and only map credential fields to existing providers'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l agent -d 'Agent id for auth-profiles targets (default: configured default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l allow-exec -d 'Allow exec SecretRef preflight checks (may execute provider commands)'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l plan-out -d 'Write generated plan JSON to a file'
complete -c openclaw -n "__fish_seen_subcommand_from configure" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from apply" -l from -d 'Path to plan JSON'
complete -c openclaw -n "__fish_seen_subcommand_from apply" -l dry-run -d 'Validate/preflight only'
complete -c openclaw -n "__fish_seen_subcommand_from apply" -l allow-exec -d 'Allow exec SecretRef checks (may execute provider commands)'
complete -c openclaw -n "__fish_seen_subcommand_from apply" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "search" -d 'Search ClawHub skills'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "install" -d 'Install a skill from ClawHub into the active workspace'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "update" -d 'Update ClawHub-installed skills in the active workspace'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "list" -d 'List all available skills'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "info" -d 'Show detailed information about a skill'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "check" -d 'Check which skills are ready vs missing requirements'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l limit -d 'Max results'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l version -d 'Install a specific version'
complete -c openclaw -n "__fish_seen_subcommand_from install" -l force -d 'Overwrite an existing workspace skill'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l all -d 'Update all tracked ClawHub skills'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l eligible -d 'Show only eligible (ready to use) skills'
complete -c openclaw -n "__fish_seen_subcommand_from list" -s v -l verbose -d 'Show more details including missing requirements'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from check" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from update" -a "wizard" -d 'Interactive update wizard'
complete -c openclaw -n "__fish_seen_subcommand_from update" -a "status" -d 'Show update channel and version status'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l no-restart -d 'Skip restarting the gateway service after a successful update'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l dry-run -d 'Preview update actions without making changes'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l channel -d 'Persist update channel (git + npm)'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l tag -d 'Override the package target for this update (dist-tag, version, or package spec)'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l timeout -d 'Timeout for each update step in seconds (default: 1200)'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l yes -d 'Skip confirmation prompts (non-interactive)'
complete -c openclaw -n "__fish_seen_subcommand_from wizard" -l timeout -d 'Timeout for each update step in seconds (default: 1200)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout for update checks in seconds (default: 3)'
