Docs/Extend

Plugins

Install, update and manage Gray plugins — sidecar processes that add tools, slash commands, providers and app connections.

Source: crates/gray-pkg

A plugin is a separate executable that talks to Gray over stdio. It can add tools, slash commands, per-turn context, provider sign-ins and app connections, and it degrades cleanly: a plugin that hangs times out, and one that crashes is dropped with a warning. Browse the catalog at /plugins.

bash
$gray plugin list
$gray plugin install permissions # by index name
$gray plugin install https://…/tool.tar.gz # or an https URL
$gray plugin update # all, or one by name
$gray plugin disable permissions # enable to undo
$gray plugin remove permissions
$gray plugin capabilities # declared vs granted

gray plugins is the same command, and /plugin drives it from inside the REPL. A plugin can also add its own subcommands: gray discord setup is forwarded to the discord plugin.

In the catalog

PluginAdds
permissionsan approval guard on tool calls, plus /perms
backgrounda standalone background runner and process monitor, plus /bg
discorda Discord bridge for the gateway, plus /discord
ponytaila foreign package: lazy-senior-dev rules for every turn

gray install plugin <name> installs from Gray's own pinned catalog. Mind the word order: gray plugin install is the package manager. Register any executable of your own with GRAY_PLUGIN_PATH=/path/to/it gray install plugin myname.

Install-time checks

  • —Every plugin tree is scanned before it is built or spawned. Safe installs quietly; Caution shows the findings and asks (or takes --force); Dangerous is blocked, and --force does not override it.
  • —Plugins declare the privileged host surfaces they want. You grant them once; an update that asks for something new asks again. Anything ungranted is off.

Join the Discord

Chat with the people building and running Gray. Show what you made with it.

Join Discord →

Need help?

Open an issue on GitHub, run /feedback from the REPL, or ask in Discord.

Open an issue →