# rpk plugin

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

---
title: rpk plugin
latest-operator-version: v26.2.1
latest-console-tag: v3.10.0
latest-connect-version: 4.104.0
latest-redpanda-tag: v26.2.1
docname: rpk/rpk-plugin/rpk-plugin
page-component-name: cloud-data-platform
page-version: master
page-component-version: master
page-component-title: Cloud
page-relative-src-path: rpk/rpk-plugin/rpk-plugin.adoc
page-edit-url: https://github.com/redpanda-data/cloud-docs/edit/main/modules/reference/pages/rpk/rpk-plugin/rpk-plugin.adoc
description: List, download, update, and remove <code>rpk</code> plugins. Plugins augment <code>rpk</code> with new commands.
page-git-created-date: "2024-07-25"
page-git-modified-date: "2026-08-11"
---

<!-- Source: https://docs.redpanda.com/cloud-data-platform/reference/rpk/rpk-plugin/rpk-plugin.md -->

List, download, update, and remove `rpk` plugins.

Plugins augment `rpk` with new commands.

For a plugin to be used, it must be in `$HOME/.local/bin` or somewhere discoverable by `rpk` in your `$PATH`. All plugins follow a defined naming scheme:

```text
.rpk-<name>
.rpk.ac-<name>
```

All plugins are prefixed with either `.rpk-` or .`rpk`.ac-. When `rpk` starts up, it searches all directories in your `$PATH` for any executable binary that begins with either of those prefixes. For any binary it finds, `rpk` adds a command for that name to the `rpk` command space itself.

No plugin name can shadow an existing `rpk` command, and only one plugin can exist under a given name at once. Plugins are added to the `rpk` command space on a first-seen basis. If you have two plugins\` rpk-foo\`, and the second is discovered later on in the `$PATH` directories, then only the first will be used. The second will be ignored.

Plugins that have an .`rpk`.ac- prefix indicate that they support the `--help-autocomplete` flag. If `rpk` sees this, `rpk` will exec the plugin with that flag when `rpk` starts up, and the plugin will return all commands it supports as well as short and long help test for each command. `rpk` uses this return to build a shadow command space within `rpk` itself so that it looks as if the plugin exists within `rpk`. This is particularly useful if you enable autocompletion.

The expected return for plugins from `--help-autocomplete` is an array of the following:

type pluginHelp struct { Path string `json:"path,omitempty"` Short string `json:"short,omitempty"` Long string `json:"long,omitempty"` Example string `json:"example,omitempty"` Args \[\]string `json:"args,omitempty"` }.

where `path` is an underscore delimited argument path to a command. For example, "foo\_bar\_baz" corresponds to the command `rpk foo bar baz`.

## [](#usage)Usage

```bash
rpk plugin [flags]
```

## [](#subcommands)Subcommands

| Command | Description |
| --- | --- |
| rpk plugin install | Install an rpk plugin. An rpk plugin must be saved in $HOME/.local/bin or in a directory that is in your $PATH. |
| rpk plugin list | List all available plugins. By default, this command fetches the remote manifest and prints plugins available for download. |
| rpk plugin uninstall | Uninstall / remove an existing local plugin. This command lists locally installed plugins and removes the first plugin that matches the requested removal. |

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