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.
$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
| Plugin | Adds |
|---|---|
| permissions | an approval guard on tool calls, plus /perms |
| background | a standalone background runner and process monitor, plus /bg |
| discord | a Discord bridge for the gateway, plus /discord |
| ponytail | a 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--forcedoes 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 →