Plugin Command

Install, list, remove, and debug Restish plugins.

Plugins extend Restish without making every feature part of the core binary. Operators use the plugin command to install, list, remove, and debug those extensions. Authors use the plugin reference pages to understand the protocols.

Installed plugins are executable code and run at your own risk. Restish checks manifests and declared capabilities; it does not sandbox plugins or verify publisher identity.

Generated Command Reference

Generated from the current Cobra command tree.

restish plugin

Manage restish plugins

Manage Restish plugins.

Plugins are executable programs that can add commands, content loaders, output formatters, hooks, or TLS signing behavior. Use plugin list to see discovered plugins, plugin install for trusted plugin binaries, and plugin debug when a plugin is discovered but not behaving correctly.

Usage:

restish plugin

Examples:

  restish plugin list
  restish plugin install ./restish-example
  restish plugin install rest-sh/restish mcp

Subcommands:

restish plugin debug: Spawn a plugin and print decoded CBOR messages to stderr

restish plugin install: Install a plugin from a path, URL, PATH command, or GitHub release

restish plugin list: List all discovered plugins

restish plugin remove: Remove an installed plugin

restish plugin list

List all discovered plugins

List all discovered plugins and their capabilities.

Human output shows plugin names, versions, capabilities, command names, formatter names, loader content types, and descriptions when available. Use -o json for automation or diagnostics.

Usage:

restish plugin list

Examples:

  restish plugin list
  restish plugin list -o json

restish plugin install

Install a plugin from a path, URL, PATH command, or GitHub release

Install a trusted plugin into Restish’s plugin directory.

Plugins are executable programs. Restish reads the plugin manifest before installing, checks declared capabilities, and verifies protocol compatibility, but it does not sandbox plugin code or verify publisher identity. Install plugins only from sources you trust.

Sources can be local executable paths, commands on PATH, direct archive URLs, or GitHub release shorthand such as rest-sh/restish mcp.

Use --yes only after choosing a source you intend to trust. It skips the interactive confirmation prompt; it does not make the plugin safer.

Usage:

restish plugin install <source> [name] [flags]

Examples:

  restish plugin install ./restish-example
  restish plugin install restish-example
  restish plugin install rest-sh/restish mcp

Flags:

--yes

Type: bool; default: false

Trust and install without an interactive confirmation

restish plugin remove

Remove an installed plugin

Remove an installed plugin from the Restish plugin directory.

You can pass either the installed file name or the plugin manifest name. Restish refuses ambiguous manifest-name matches so you can delete the intended executable explicitly.

Usage:

restish plugin remove <name>

Examples:

  restish plugin remove example

restish plugin debug

Spawn a plugin and print decoded CBOR messages to stderr

Spawn a plugin and print decoded protocol messages to stderr.

This is an advanced diagnostic command for plugin authors and support. Use it when a plugin is discovered but does not behave as expected. It shows the manifest/startup exchange and runtime messages so you can see whether the plugin, host, or protocol payload is failing.

Pass plugin arguments after the plugin name. Use -- before arguments that could otherwise be interpreted by Restish.

Usage:

restish plugin debug <name> [args...]

Examples:

  restish plugin debug example -- --help

Examples

restish plugin list
restish plugin install ./restish-csv
restish plugin install restish-csv
restish plugin install rest-sh/restish csv
restish plugin install https://downloads.example.com/restish-csv_darwin_arm64.tar.gz
restish plugin remove restish-csv
restish plugin debug ./restish-csv

If plugin stdout contains malformed CBOR after valid messages, plugin debug keeps draining stdout to protect the terminal and then exits with the decode error. That makes it safer to debug broken plugins without dumping binary protocol data into an interactive terminal.

Notes

Keep operator tasks separate from author tasks. Installing and verifying a plugin should not require reading wire protocol details. Start with Install and Use Plugins unless you are building a plugin yourself.