| Inject sidebar entries | Create entries at the bottom of the sidebar through contributes.menuItems (navigate to a page or open an overlay window) |
| Dashboard widget (Dashboard widget) | Declare the dashboard:widgets slot through contributes.slots to add UI to the editable dashboard widget grid |
| Plugin settings page (Plugin Settings) | Declare through contributes.settingsPages; settings UI is collected under Settings → Plugins → Plugin settings |
| Overlay window (Overlay window) | Declare through contributes.overlay to create a draggable standalone mini window |
| Plugin page | Serve a full page through entry.frontend, mounted at /plugins/p/:id |
| Settings read/write | Read and write the plugin’s own settings.json (getSettings / setSettings) |
| Plugin cache | Read and write the plugin’s own cache.json (setCache / getCache, with TTL expiry) |
| Network requests | Call the Backend (Backend)API directly (callBackend) or reach the internet through the CORS proxy (proxyFetch / proxyFetchStream) |
| Plugin-to-plugin calls | Register methods for other plugins to call (registerMethod / callPlugin) |
| Intercept launcher methods | Inject logic before and after launcher methods through the Hook system (modify arguments or return values, block execution, replace entirely) |
| Theme following | Follow the launcher’s light and dark themes automatically (CSS variable injection) |