Plugin development
Turn a useful workflow into an installable plugin. Provide interfaces, file handling, Agent tools, model and multimodal backends, Skills, MCP connections, NPCs or themes. Combine them through explicit dependencies, or ship one focused capability.
Choose a starting point
- Create through conversation: start with Using and creating plugins. Describe the behavior and ask your companion to produce source and an installation package.
- Write your own plugin: follow Your first plugin to build a counter panel with a command and instance state.
- Maintain an existing plugin: use the API reference and Build and distribute to check types and compatibility.
Choose a capability
| Goal | Guide |
|---|---|
| Pages, panels, menus and input commands | Views and interaction |
| File previews, editing, saving and recovery | Files and documents |
| Send selected material to a task and reveal its source | References |
| Model-callable tools, task events and menu actions | Agent tools and task actions |
| Local or API chat, speech, image reading and generation backends | Provide models and multimodal capabilities |
| Reusable methods, remote tool connections and specialist NPCs | Skills, MCP and NPCs |
| Bound-task statistics and model context usage | Read-only view data |
| Settings, private data and state restoration | Settings and state |
| Colors, icons, styles and decorations | Themes and appearance |
| Libraries, Workers and WASM | Dependencies and computation |
Understand the boundary
Plugin backgrounds, views and browser Workers run in isolated browser environments. Native inference is a separately declared, authorized and supervised execution channel; it does not grant Node.js to these browser contexts. File, network and model access go through permissioned host APIs. Read Core concepts and Permissions and compatibility before adding capabilities.
Incremental APIs require the corresponding host version and available capability. Sharing an API major version does not guarantee the same set of methods.