Skip to content

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

Completions are installed automatically by bootstrap.py:

./bootstrap.py

This creates a symlink into the first available completions directory:

  1. Homebrew site-functions (/opt/homebrew/share/zsh/site-functions/) — preferred on macOS, already in fpath
  2. 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):

fpath=(~/.zsh/completions $fpath)
autoload -Uz compinit && compinit

Then restart your shell:

exec zsh

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.