Skip to content

Shell Completions

Once installed, pressing Tab expands subcommands, flags, and dataset names from both your local cache and all configured remote registries.

Packages

If you installed Marina via the AUR, the Homebrew tap or non-ROS deb package (PPA), completion scripts get automatically installed.

Setup

To detect the current shell and install self-refreshing completions for the current user, run:

marina completions

Restart the shell afterward. This supports Bash, Zsh, Fish, Elvish, and PowerShell.

For packaging, a system-wide installation, or an unsupported installer, pass the shell explicitly to print a completion script:

No Completions for ROS 2

Proper completions are only supported with the marina binary without ros2 bag.

marina completions bash | sudo tee /etc/bash_completion.d/marina > /dev/null
marina completions bash > $(brew --prefix)/etc/bash_completion.d/marina

After installing, reload your shell or source the completion file:

source /etc/bash_completion.d/marina
mkdir -p ~/.zsh/completions
marina completions zsh > ~/.zsh/completions/_marina
marina completions zsh > $(brew --prefix)/share/zsh/site-functions/_marina

Add the following lines to your ~/.zshrc before the compinit call:

fpath=(~/.zsh/completions $fpath)
autoload -U compinit && compinit
marina completions fish > ~/.config/fish/completions/marina.fish
marina completions fish > $(brew --prefix)/share/fish/completions/marina.fish

Fish picks up completions automatically.

Dataset Name Completion

Marina completes dataset names for pull, push, resolve, export, and rm.

Completions are always instant and get refreshed automatically in the background:

  • When the index is missing or older than completion_cache_ttl_secs (default 10 minutes)
  • After every marina push
  • After marina registry add or marina registry rm

You can also trigger a manual refresh at any time:

marina complete-refresh &