# rpk generate shell-completion

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [streaming-full.txt](https://docs.redpanda.com/streaming-full.txt)

---
title: rpk generate shell-completion
latest-redpanda-tag: v25.1.1
latest-console-tag: v3.7.3
latest-operator-version: v26.1.4
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "true"
page-eol-date: April 7, 2026
latest-connect-version: 4.93.0
docname: rpk/rpk-generate/rpk-generate-shell-completion
page-component-name: streaming
page-version: "25.1"
page-component-version: "25.1"
page-component-title: Streaming
page-relative-src-path: rpk/rpk-generate/rpk-generate-shell-completion.adoc
page-edit-url: https://github.com/redpanda-data/docs/edit/v/25.1/modules/reference/pages/rpk/rpk-generate/rpk-generate-shell-completion.adoc
page-git-created-date: "2023-05-17"
page-git-modified-date: "2024-12-20"
support-status: past end-of-life
---

<!-- Source: https://docs.redpanda.com/streaming/25.1/reference/rpk/rpk-generate/rpk-generate-shell-completion.md -->

Shell completion can help autocomplete `rpk` commands when you press tab.

## [](#bash)Bash

Bash autocompletion relies on the bash-completion package. You can test if you have this by running `type \_init_completion`, if you do not, you can install the package through your package manager.

If you have bash-completion installed, and the command still fails, you likely need to add the following line to your `~/.bashrc`:

```bash
source /usr/share/bash-completion/bash_completion
```

To ensure autocompletion of `rpk` exists in all shell sessions, add the following to your `~/.bashrc`:

```bash
command -v rpk >/dev/null && . <(rpk generate shell-completion bash)
```

Alternatively, to globally enable `rpk` completion, you can run the following:

```bash
rpk generate shell-completion bash > /etc/bash_completion.d/rpk
```

## [](#zsh)Zsh

To enable autocompletion in any zsh session for any user, follow these steps:

Determine which directory in your `$fpath` to use to store the completion file.

You can inspect your `fpath` by running:

```zsh
echo $fpath
```

Choose one of the directories listed. For example, if `/usr/local/share/zsh/site-functions` is present in your `fpath`, you can place the `_rpk` completion file there:

```zsh
rpk generate shell-completion zsh > /usr/local/share/zsh/site-functions/_rpk
```

If the directory you chose is not already in `fpath`, add it to your `.zshrc`:

```zsh
fpath+=(/usr/local/share/zsh/site-functions)
```

Finally, ensure that `compinit` is run. Add (or verify) the following in your `.zshrc`:

```zsh
autoload -U compinit && compinit
```

After restarting your shell, `rpk` completion should be active.

## [](#fish)Fish

To enable autocompletion in any `fish` session, run:

```fish
rpk generate shell-completion fish > ~/.config/fish/completions/rpk.fish
```

## [](#usage)Usage

```bash
rpk generate shell-completion [flags]
```

## [](#flags)Flags

| Value | Type | Description |
| --- | --- | --- |
| -h, --help | - | Help for shell-completion. |
| --config | string | Redpanda or rpk config file; default search paths are /var/lib/redpanda/.config/rpk/rpk.yaml, $PWD/redpanda.yaml, and /etc/redpanda/redpanda.yaml. |
| -X, --config-opt | stringArray | Override rpk configuration settings. See rpk -X or execute rpk -X help for inline detail or rpk -X list for terser detail. |
| --profile | string | Profile to use. See rpk profile for more details. |
| -v, --verbose | - | Enable verbose logging. |