Installation & setup¶
Commando builds to a single static binary — pure Go, no CGO, no runtime dependencies. Install it, add one line to your shell config, and you're ready.
Prerequisites¶
- Zsh, Bash, or Fish — for the summon widget. The CLI itself works in any shell.
- Go 1.25 or newer is required only when building from source.
Install the binary¶
On macOS:
Homebrew installs the latest release and keeps it updated with
brew upgrade --cask commando.
The script detects macOS, Linux, or Windows under Git Bash and selects
amd64 or arm64 automatically. It verifies the archive against the release
checksum before installing to ~/.local/bin.
Pin a release or choose another destination:
Is ~/.local/bin on your PATH?
If commando isn't found after installing, add to your shell rc file:
Verify the install:
Set up shell integration¶
The shell integration gives you the summon widget — press a key at any prompt and Commando pops open, then places your chosen command back on the line. Choose your shell:
Press Ctrl+G at any prompt to summon Commando. On first launch, Commando seeds starter cheat sheets (git, docker, kubectl, files) so you have something to search immediately.
What commando init emits¶
Run commando init zsh, commando init bash, or commando init fish to
preview the snippet. Each uses the shell's native line editor:
| Shell | Line editor API |
|---|---|
| Zsh | ZLE widget + bindkey |
| Bash | Readline bind -x + READLINE_LINE |
| Fish | bind + commandline --replace |
Every snippet installs no history capture hook (Commando reads the shell's history file directly), and it places the command on the line rather than running it — you review, edit, and press Enter yourself.
Change the summon key¶
The default is Ctrl+G. To rebind, set key_binding in your
config file using portable ^X
notation (e.g. ^F for Ctrl-F), then reload the integration: