# Develop a Plugin How to create and test a custom plugin for Super Productivity. Plugins extend the app with custom UI, hooks (e.g. on task complete), and API access to tasks, projects, and counters. They run in a sandbox; iframe plugins must inline CSS and JavaScript. ## Quick Steps 1. Create a folder with at least: - `manifest.json` (id, name, version, description, manifestVersion, minSupVersion) - `plugin.js` (runs on load; can register header buttons, shortcuts, hooks) 2. Optionally add `index.html` (and set `iFrame: true` in the manifest) for custom UI. 3. In the app: **Settings** → **Plugins** → **Load Plugin from Folder** and select your plugin directory. 4. Use DevTools (F12 or Ctrl+Shift+I) to debug. ## Full Documentation and Examples The full plugin guide and API live in the repository: **[docs/plugin-development.md](https://github.com/super-productivity/super-productivity/blob/master/docs/plugin-development.md)** It covers: - Manifest fields, plugin types (JavaScript vs iframe), and security - Available API methods (tasks, projects, tags, counters, notifications, dialogs) - Theme variables and UI Kit for iframe plugins - Best practices and testing Example plugins in the repo: `packages/plugin-dev/yesterday-tasks-plugin`, `procrastination-buster`, `api-test-plugin`. For UI-heavy plugins: `packages/plugin-dev/boilerplate-solid-js`. TypeScript API types: `packages/plugin-api/src/types.ts`. ## Related - [[2.11-Run-the-Development-Server]]