Shell Completion
kvpass supports tab-completion for Bash, Zsh, and Fish shells.
Features
The completion scripts provide:
- Command completion:
kvpass <TAB>→ls,get,set,tag, etc. - Option completion:
kvpass ls --<TAB>→--show-pass,--show-tags,--tag - Vault names:
kvpass --vault <TAB>→ lists vaults from config - Secret paths:
kvpass get <TAB>→ dynamically completes secret paths - Tag keys (for
untag):kvpass untag mypath <TAB>→ lists existing tag keys
Installation
Option 1: Typer Built-in (Simplest)
kvpass uses Typer which has built-in completion support:
# Bash
kvpass --install-completion bash
# Zsh
kvpass --install-completion zsh
# Fish
kvpass --install-completion fish
This adds a line to your shell config file. Restart your shell or source the file.
Usage Examples
# Complete commands
kvpass <TAB>
# → config vaults ls search get set edit versions rm tags tag untag firewall
# Complete vault names
kvpass --vault <TAB>
# → prod dev staging
# Complete options
kvpass ls --<TAB>
# → --show-pass --show-tags --tag
# Complete secret paths
kvpass get <TAB>
# → prod/db/password prod/api/key staging/db/user ...
# Complete tag keys for untag
kvpass untag prod/db/password <TAB>
# → env team owner
Performance Notes
- Path completion fetches secrets from Azure Key Vault
- Results are cached for 60 seconds to improve performance
- First completion may be slow (~1-3 seconds) while fetching
- Subsequent completions within 60 seconds are instant
Troubleshooting
Completion not working
- Make sure you've sourced/reloaded your shell config
- Check that kvpass is in your PATH:
which kvpass - For Zsh, ensure compinit is called:
autoload -Uz compinit && compinit
Path completion not showing secrets
- Make sure you're authenticated:
az login - Check that kvpass can list secrets:
kvpass ls - Path completion requires network access to Azure
Slow completion
- First completion fetches from Azure (1-3 seconds)
- Use
--vaultto select a specific vault before<TAB> - Cached results are used for 60 seconds