Skip to content

Shell completions

If you have Tuist globally installed (e.g., via Homebrew), you can install shell completions for Zsh, Bash, and Fish to autocomplete commands and options.

What is a global installation

A global installation is an installation that's available in your shell's $PATH environment variable. This means you can run tuist from any directory in your terminal. This is the default installation method for Homebrew.

Zsh#

If you have oh-my-zsh installed, you already have a directory of automatically loading completion scripts — .oh-my-zsh/completions. Copy your new completion script to a new file in that directory called _tuist:

bash
tuist --generate-completion-script > ~/.oh-my-zsh/completions/_tuist

Without oh-my-zsh, you'll need to add a path for completion scripts to your function path, and turn on completion script autoloading. First, add these lines to ~/.zshrc:

bash
fpath=(~/.zsh/completion $fpath)
autoload -U compinit
compinit

Next, create a directory at ~/.zsh/completion and copy the completion script to the new directory, again into a file called _tuist.

bash
tuist --generate-completion-script > ~/.zsh/completion/_tuist

Bash#

If you have bash-completion installed, you can just copy your new completion script to bash-completion's directory:

bash
tuist --generate-completion-script bash > "$(brew --prefix)/etc/bash_completion.d/_tuist"

Without bash-completion, you'll need to source the completion script directly. Write it to a directory such as ~/.bash_completions/:

bash
mkdir -p ~/.bash_completions
tuist --generate-completion-script bash > ~/.bash_completions/tuist.bash

Then add the following line to ~/.bash_profile or ~/.bashrc:

bash
source ~/.bash_completions/tuist.bash

Fish#

If you use fish shell, you can copy your new completion script to ~/.config/fish/completions/tuist.fish:

bash
mkdir -p ~/.config/fish/completions
tuist --generate-completion-script > ~/.config/fish/completions/tuist.fish