| summary |
CLI reference for `openclaw completion` (generate/install shell completion scripts) |
| read_when |
You want shell completions for zsh/bash/fish/PowerShell |
You need to cache completion scripts under OpenClaw state |
|
| title |
Completion |
Generate shell completion scripts, cache them under OpenClaw state, and optionally install them into your shell profile.
openclaw completion # print zsh script to stdout
openclaw completion --shell fish # print fish script
openclaw completion --write-state # cache scripts for all shells
openclaw completion --write-state --install # cache, then install in one step
openclaw completion --shell bash --write-state
- -s, --shell <shell>: shell target (zsh, bash, powershell, fish; default: zsh)
- -i, --install: install completion by adding a source line for the cached script to your shell profile
- --write-state: write completion script(s) to $OPENCLAW_STATE_DIR/completions (default ~/.openclaw/completions) without printing to stdout; with --shell writes only that shell, otherwise all four
- -y, --yes: skip install confirmation prompts (non-interactive)
--install points your profile at the cached script, so the cache must exist first: if it is missing, the command fails and tells you to run openclaw completion --write-state. Combine --write-state --install to do both in one step. Without --shell, --install detects the shell from $SHELL (falling back to zsh).
The install writes a small # OpenClaw Completion block into your shell profile and replaces any older slow source <(openclaw completion ...) lines with the cached source line:
| Shell |
Profile |
| bash |
~/.bashrc (falls back to ~/.bash_profile when ~/.bashrc is missing) |
| fish |
~/.config/fish/config.fish |
| powershell |
~/.config/powershell/Microsoft.PowerShell_profile.ps1 (on Windows: Documents/PowerShell/Microsoft.PowerShell_profile.ps1, or Documents/WindowsPowerShell/... for Windows PowerShell) |
| zsh |
~/.zshrc |
Profile changes are staged beside the destination and atomically replace it only after a complete durable write. A failed install leaves an existing profile unchanged.
- Without --install or --write-state, the command prints the script to stdout.
- Completion generation eagerly loads the full command tree, including plugin CLI commands, so nested subcommands are included.
- openclaw update refreshes the completion cache automatically after a successful update; openclaw doctor can repair missing or stale completion setups.