Overview
Plugins add interactive features to Radarboard — task managers, note-taking, bookmarks, RSS readers, and more. Each plugin lives in its own package underplugins/ and provides:
- An overlay UI — side panel, modal, fullscreen, or mini-HUD
- Scoped storage — key-value DB for plugin data
- MCP tools (optional) — AI assistant actions
- Dashboard widgets (optional) — embed data in the grid
- Cross-plugin communication (optional) — intents and RPC
Prerequisites
- Radarboard dev environment set up (Setup Guide)
- Familiarity with React and TypeScript
Step 1: Scaffold
plugins/my-plugin/ with a working overlay, registers it in radarboard.config.ts, and runs pnpm install.
Step 2: Build the Overlay
Editsrc/components/my-plugin-overlay.tsx. The component receives api: PluginAPI:
PluginAPI Reference
Step 3: Configure the Descriptor
Editsrc/index.ts:
Presentation Modes
Step 4: Add Settings (Optional)
Let users configure your plugin without editing code:Step 5: Test
Run conformance tests (included in the scaffold):Optional: Add MCP Tools
Let the AI assistant interact with your plugin:Optional: Contribute Dashboard Widgets
Plugins can embed widgets in the dashboard grid:Optional: Cross-Plugin Communication
Intents (receive data from other plugins)
Services (expose RPC methods)
Module Boundaries
Plugins can only import from:@radarboard/plugin-sdk@radarboard/types@radarboard/utils@radarboard/ui@radarboard/widget-engine@radarboard/embedding-service@radarboard/llm
Reference
- Full type reference:
@radarboard/plugin-sdk/types - UI components:
@radarboard/plugin-sdk/components/* - Testing utilities:
@radarboard/plugin-sdk/testing - Real examples:
plugins/tasks/,plugins/notes/,plugins/bookmarks/ - Extension rules:
CONTRIBUTING-EXTENSIONS.md