Shell Completions¶
Zsh completions for all rose-* CLI commands. Provides tab-completion for subcommands, options, enum values, and short flags.
Supported Commands¶
All 9 rose-* commands are covered with full per-subcommand option completions:
| Command | Completions |
|---|---|
rose-tenant |
8 subcommands, per-subcommand --env values, --confirm, --dry-run, etc. |
rose-mongo |
11 subcommands with options (-v, --sample, --tenants, --force, etc.) |
rose-neo4j |
13 subcommands with options (--source, --target, --confirm, etc.) |
rose-document-loader |
Mutually exclusive mode flags, --env, --limit, --chunk-size, etc. |
rose-merge-branch |
--skip-tests, --skip-eval, --no-confirm, --dry-run |
rose-langfuse |
Nested subcommands (prompt/dataset/trace) with full options per action |
rose-chat |
All options with enum values (--env, --dataset-type, -s, -c, -i, -v, --config) |
rose-eval |
--type, --agentic-system, --env, --trace, --sample-size, etc. |
rose-supabase |
6 subcommands (projects, backup, restore, list, restore-file, delete) with options |
Installation¶
Automatic (recommended)¶
Completions are installed automatically by bootstrap.py:
This creates a symlink into the first available completions directory:
- Homebrew site-functions (
/opt/homebrew/share/zsh/site-functions/) — preferred on macOS, already infpath - User completions (
~/.zsh/completions/) — fallback, created if needed
If the fallback directory is used, you may need to add the following to your ~/.zshrc (before compinit):
Then restart your shell:
Manual¶
If you prefer not to use bootstrap:
# Option A: Source directly in .zshrc
echo 'source /path/to/port-louis-v1/backend/apps/cli/completions/_rose.zsh' >> ~/.zshrc
# Option B: Symlink into completions directory
mkdir -p ~/.zsh/completions
ln -sf /path/to/port-louis-v1/backend/apps/cli/completions/_rose.zsh ~/.zsh/completions/_rose
Updating¶
Since bootstrap uses a symlink, completions update automatically when you git pull. Just restart your shell (or run exec zsh) to pick up changes.
Usage Examples¶
# Tab-complete subcommands
rose-tenant <TAB>
# → test-connection list-tenants inspect-tenant clear-tenant ...
# Tab-complete per-subcommand options
rose-tenant inspect-tenant --<TAB>
# → --env --debug
rose-mongo consistency-check --<TAB>
# → --tenants --all --delete-orphaned
rose-supabase restore --<TAB>
# → --yes --debug
# Tab-complete enum values
rose-chat --env <TAB>
# → development staging production test
rose-eval --type <TAB>
# → e2e intent-classifier skill-selector
rose-eval --agentic-system <TAB>
# → legacy new
# Nested subcommands with options
rose-langfuse prompt <TAB>
# → pull push status diff list promote resolve bump
rose-langfuse prompt pull --<TAB>
# → --prefix --label --force --slug
rose-langfuse dataset items --<TAB>
# → --limit
# Short flags
rose-chat -<TAB>
# → -s -c -i -v
rose-mongo test-connection -<TAB>
# → -v
Source¶
The completion file lives at backend/apps/cli/completions/_rose.zsh.