About bb-plugins
A skill for creating, installing, and maintaining TypeScript plugins for bb. It covers plugin surfaces, scaffolding, distribution, and validation, while emphasizing that plugins run with full trust.
Key features
- 01Scaffold and install plugins
- 02Register server and app surfaces
- 03Add commands, agent tools, and skills
- 04Develop with reload-on-save
- 05Check status, logs, and updates
- 06Review full-trust security implications
Use cases
- 01Create a bb plugin from a scaffold
- 02Add UI pages or agent tools to bb
- 03Debug a plugin that fails to load
- 04Install and verify a plugin package
MCP support
The skill describes how bb plugins can add agent tools and related capabilities. It does not specify MCP server connection or management.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ davidondrej/ skills --skill bb-pluginsAfter installing, type/bb-pluginsin Claude Code to confirm it loaded.
Details
From the project READMEbb plugins
bb plugins are TypeScript packages that run inside bb. They are how bb extends itself.
Many first-party features are plugins: GitHub, Docs, Memory, Tasks, Connect, Automations, Secrets, Keep Awake, and the coding-agent providers.
Trust
Plugins are full-trust. Server code runs in-process. App UI is same-origin page code, not a sandbox. Host workers run as Node on enrolled machines.
Review source before installing third-party plugins. Keep credentials in secret: true settings.
This skill vs others
- Use this skill to create, install, or change a plugin.
- Use
bb-clito operate bb (threads, projects, environments). - For exact API signatures, read the
bb-plugin-authoringskill if it is available, then runbb guide plugins. In the plugin directory, runbb plugin typesbefore trusting local SDK types. Do not guess from minifieddist/files.
Scaffold
bb plugin new hello # add --app for a React UI
cd bb-plugin-hello
bb plugin install . --yes
bb plugin dev # rebuild + reload on save
The manifest is the bb object in package.json. Required: bb.name, bb.description, bb.branding.icon, bb.server. Optional: bb.app, bb.host, bb.skills, bb.themes.
Plugin id is the last package-name segment with a bb-plugin- prefix stripped. bb-plugin-hello and @acme/bb-plugin-hello both become hello.
Put runtime imports in dependencies. Leave types and tooling in devDependencies. Git installs run npm install --omit=dev.
What a plugin can add
A default-export factory in server.ts receives BbPluginApi and registers surfaces:
- settings, kv + SQLite storage, HTTP, RPC, realtime
- background services and cron
- one top-level
bb <name> …command - agent tools,
skills/folders, extra instructions - mention providers
- optional host workers and experimental agent providers
app.tsx default-exports definePluginApp and can add pages, thread-panel actions, composer controls, file openers, and a replacement sidebar.
Do not copy the full API into this skill. Read bb-plugin-authoring when implementing a surface.
Install and ship
bb plugin install . # local path
bb plugin install github # bundled official plugin
bb plugin install npm:bb-plugin-notes@^1.0.0
bb plugin install git:https://github.com/acme/bb-plugin-notes.git@^1.2.0
bb plugin list
bb plugin reload <id>
bb plugin logs <id> -f
Installs prompt because the code is full-trust. Pass --yes to skip.
A failed managed update rolls back. Catalog refresh never installs code.
Community listings live at https://getbb.app/marketplace/v1/marketplace.json. Submit via a PR to https://github.com/get-bb/marketplace. Use the submit-a-plugin skill for that workflow.
Check the work
bb plugin listshows the pluginrunning.- If it added a CLI,
bb <command> --helpworks. - If it added UI, open the page or panel in bb and confirm it loads.
- If the factory throws, the plugin is
error. Readbb plugin logs <id>and fix, thenbb plugin reload <id>.