Plugins let you extend Bolt beyond its built-in capabilities. A plugin is a Node or Bun module that exports a Bolt plugin manifest; when loaded, it can register new LLM providers, custom authentication methods, additional tools, and workspace adapters. Plugins can be installed for a single project or applied globally across all of your work.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bolt-builder/bolt-cli/llms.txt
Use this file to discover all available pages before exploring further.
Installing a plugin
Usebolt plugin install (alias: bolt plug) to install a plugin from npm and automatically register it in your config:
Flags
| Flag | Alias | Description |
|---|---|---|
--global | -g | Install into the global config instead of the current project |
--force | -f | Replace an existing entry for the same module |
Scope: project vs. global
By default,bolt plugin install adds the plugin to the project-level .bolt/bolt.jsonc. Pass --global to add it to your user-wide config so it loads in every project.
Run
bolt --pure (or set OPENCODE_PURE=1) to start Bolt with all external plugins disabled. This is useful for debugging whether a plugin is causing unexpected behaviour, without uninstalling it.Installing a published plugin
Find the plugin package
Search npm for packages with
bolt-plugin or opencode-plugin in the name, or follow a link from a provider’s documentation.Install into your project
.bolt/bolt.jsonc.Manual plugin configuration
You can register plugins by editing.bolt/bolt.jsonc directly. This is useful for local plugins under development:
Building a plugin
Plugins are authored against the@opencode-ai/plugin package, which provides the Hooks interface your module must satisfy.
PluginInput object and returns a Hooks object:
Available hook types
| Hook | Purpose |
|---|---|
auth | Register custom authentication providers with a methods array |
event | React to session events (messages, tool calls, completions) |
config | Respond to configuration changes at runtime |
dispose | Clean up resources when the plugin is unloaded |
PluginInput object exposes the client (a typed Bolt API client), project, worktree, directory, and serverUrl so your plugin can interact with the running server.
Environment variables
| Variable | Description |
|---|---|
OPENCODE_PURE | Set to 1 to run without any external plugins |