# Shell completions

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

> [!WARNING]
> **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 {#zsh}

If you have [oh-my-zsh](https://ohmyz.sh/) 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 {#bash}

If you have [bash-completion](https://github.com/scop/bash-completion)
installed, you can just copy your new completion script to file
`/usr/local/etc/bash_completion.d/_tuist`:

```bash
tuist --generate-completion-script > /usr/local/etc/bash_completion.d/_tuist
```

Without bash-completion, you'll need to source the completion script directly.
Copy it to a directory such as `~/.bash_completions/`, and then add the
following line to `~/.bash_profile` or `~/.bashrc`:

```bash
source ~/.bash_completions/example.bash
```

#### Fish {#fish}

If you use [fish shell](https://fishshell.com), 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
```
