# 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: v26.1.14
latest-console-tag: v3.10.0
latest-operator-version: v26.2.1
# EOL = End-of-Life (support lifecycle status)
page-is-nearing-eol: "false"
page-is-past-eol: "false"
page-eol-date: March 31, 2027
latest-connect-version: 4.105.0
docname: rpk/rpk-generate/rpk-generate-shell-completion
page-component-name: streaming
page-version: "26.1"
page-component-version: "26.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/26.1/modules/reference/pages/rpk/rpk-generate/rpk-generate-shell-completion.adoc
description: Shell completion can help autocomplete <code>rpk</code> commands when you press tab.
page-git-created-date: "2023-05-17"
page-git-modified-date: "2026-07-17"
support-status: supported
---

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

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

## [](#usage)Usage

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

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

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

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

`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

If shell completion is not already enabled in your environment, you will need to enable it. You can execute the following once:

```bash
echo "autoload -U compinit; compinit" >> ~/.zshrc
```

To enable autocompletion in any zsh session for any user, run this once:

**Linux:**

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

**macOS:**

```bash
rpk generate shell-completion zsh > "$(brew --prefix)/share/zsh/site-functions/_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.`

### [](#fish)Fish

To enable autocompletion in any fish session, run:

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

## [](#global-flags)Global flags

| Value | Type | Description |
| --- | --- | --- |
| --config | string | Redpanda or rpk config file; default search paths are ~/.config/rpk/rpk.yaml, $PWD/redpanda.yaml, and /etc/redpanda/redpanda.yaml. |
| -X, --config-opt | stringArray | Override rpk configuration settings; -X help for detail or -X list for terser detail. |
| --ignore-profile | bool | Ignore rpk.yaml and redpanda.yaml; use default settings. |
| --profile | string | rpk profile to use. |
| -v, --verbose | bool | Enable verbose logging. |