# 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-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: July 31, 2025
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
docname: rpk/rpk-generate/rpk-generate-shell-completion
page-component-name: streaming
page-version: "24.2"
page-component-version: "24.2"
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/24.2/modules/reference/pages/rpk/rpk-generate/rpk-generate-shell-completion.adoc
page-git-created-date: "2023-05-17"
page-git-modified-date: "2024-07-24"
support-status: past end-of-life
---

<!-- Source: https://docs.redpanda.com/streaming/24.2/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, run this once:

```bash
rpk generate shell-completion zsh > "${fpath[1]}/_rpk"
```

You can also place that command in your `~/.zshrc` to ensure that when you update `rpk`, you update autocompletion. If you initially require `sudo` to edit that file, you can `chmod` it to be world writeable, after which you will always be able to update it from `~/.zshrc`.

If shell completion is not already enabled in your zsh environment, also add the following to your `~/.zshrc`:

```zsh
autoload -U compinit; compinit
```

## [](#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. |