Prerequisites
Feature Summary
- Add auto install via install script tab completions.
- Also support home brew.
Problem/Use Case
The aicr CLI already supports shell completion via aicr completion bash|zsh|fish|pwsh (urfave/cli v3), but users must manually configure it as a post-install step. Most users never discover this, so they miss out on tab completion for commands and flags.
Proposed Solution
Proposal
Make shell completion automatic for both install paths:
1. Install script (./install)
Add a setup_completions function that runs after the binary is installed:
- Detect shell from
$SHELL (bash, zsh, fish)
- Write completion scripts to auto-loaded directories (file-based, not RC-based):
- Bash:
/usr/share/bash-completion/completions/aicr → fallback to ~/.local/share/bash-completion/completions/aicr
- Zsh:
/usr/local/share/zsh/site-functions/_aicr → fallback to ~/.local/share/zsh/site-functions/_aicr
- Fish:
~/.config/fish/completions/aicr.fish
- Permission handling: try direct write, fall back to
sudo, then fall back to user-local XDG directories
- Non-fatal: completion failure warns but never breaks the install (
|| true)
- Opt-out:
-s flag or AICR_NO_COMPLETIONS=1 env var to skip
- Uses absolute binary path (
"${INSTALL_DIR}/${BIN_NAME}") since $PATH may not include the install dir yet
2. Homebrew formula (.goreleaser.yaml)
Add install and test blocks to the brews section:
install: |
bin.install "aicr"
generate_completions_from_executable(bin/"aicr", "completion")
test: |
assert_match version.to_s, shell_output("#{bin}/aicr --version")
generate_completions_from_executable is a Homebrew built-in that handles bash, zsh, and fish completions automatically.
## 3. Documentation updates
Update `docs/user/installation.md` and `site/content/docs/user/installation.md:`
- Note that completions are now automatic
- Document the -s skip flag
- Keep manual instructions for additional shells
- Update uninstall section with completion file paths to clean up
### Success Criteria
Install script automatically sets up tab completions
### Alternatives Considered
_No response_
### Component
CLI (aicr)
### Priority
Nice to have
### Compatibility / Breaking Changes
_No response_
### Operational Considerations
_No response_
### Are you willing to contribute?
_No response_
Prerequisites
Feature Summary
Problem/Use Case
The
aicrCLI already supports shell completion viaaicr completion bash|zsh|fish|pwsh(urfave/cli v3), but users must manually configure it as a post-install step. Most users never discover this, so they miss out on tab completion for commands and flags.Proposed Solution
Proposal
Make shell completion automatic for both install paths:
1. Install script (
./install)Add a
setup_completionsfunction that runs after the binary is installed:$SHELL(bash, zsh, fish)/usr/share/bash-completion/completions/aicr→ fallback to~/.local/share/bash-completion/completions/aicr/usr/local/share/zsh/site-functions/_aicr→ fallback to~/.local/share/zsh/site-functions/_aicr~/.config/fish/completions/aicr.fishsudo, then fall back to user-local XDG directories|| true)-sflag orAICR_NO_COMPLETIONS=1env var to skip"${INSTALL_DIR}/${BIN_NAME}") since$PATHmay not include the install dir yet2. Homebrew formula (
.goreleaser.yaml)Add
installandtestblocks to thebrewssection: