blob: 35117461f0ce5a75bee4a2fc4749594358347a42 [file] [edit]
---
title: Shell completion
description: How to enable shell completion for Pyrefly
---
{/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/}
Generate a completion script with `pyrefly completion --shell <shell>`. Supported
shells are `bash`, `zsh`, `fish`, `powershell`, and `elvish`. The script is written
to standard output.
## Bash
Add this to `~/.bashrc`:
```bash
source <(pyrefly completion --shell bash)
```
## Zsh
Add this to `~/.zshrc` after initializing completion with `compinit`:
```zsh
autoload -Uz compinit
compinit
source <(pyrefly completion --shell zsh)
```
## Fish
Save the script in the completions directory:
```fish
mkdir -p ~/.config/fish/completions
pyrefly completion --shell fish > ~/.config/fish/completions/pyrefly.fish
```
## PowerShell
Add this to your profile (`$PROFILE`):
```powershell
pyrefly completion --shell powershell | Out-String | Invoke-Expression
```
## Elvish
Save the script and load it from `~/.config/elvish/rc.elv`:
```sh
mkdir -p ~/.config/elvish/lib
pyrefly completion --shell elvish > ~/.config/elvish/lib/pyrefly.elv
```
```elvish
use pyrefly
```
Restart your shell after setup. Regenerate saved completion files after upgrading
Pyrefly to include any new commands and options.