--- title: "Guide: capabilities" description: "smabar plugin reference: Guide: capabilities" canonical: "https://smabar.com/docs/plugin-ref-guide-capabilities/" lang: en --- # Guide: capabilities > smabar plugin reference: Guide: capabilities Canonical HTML version: https://smabar.com/docs/plugin-ref-guide-capabilities/ · Language: en · Publisher: smabar (https://smabar.com) --- [Build my plugin](https://smabar.com/build-my-plugin.md) · [All references](https://smabar.com/docs/plugin-ref-index.md) · [Install the ZIP](https://smabar.com/docs/install-plugin-zip.md) Source: smabar 1.5.0, revision `a019f2563965edc37a5e8d84742ea1ff2fa6f824`. [Export metadata and checksums](https://smabar.com/plugin-reference/export.json). This is an offline reference. MCP calls quoted below describe the connected workflow; use the linked documents and create local files instead. Live state, installed plugins, available providers and the user's active theme are unknown. Never claim a live check. Read with [styling](https://smabar.com/docs/plugin-ref-styling.md) and [examples](https://smabar.com/docs/plugin-ref-examples.md). ## scope ```json "smabar supplies reusable host primitives; the user supplies the product idea. Bundled and custom plugins are optional. Discover installed IDs with plugin_list before reusing anything. The bundled plugins are worked examples you can read in full with plugin_read(id): weather (list-plus-detail flyout on data-tabs, place search, one request for many places, cached forecast), clock (shell-ticked clocks, analog tile cover, context menus, sibling modules), crypto (name search, persisted cache), todos (SQLite, forms, popups, agent commands)." ``` ## runtimeNote ```json "runtime.services and runtime.availableProviders reflect this running host, independent of installed tiles. They use the same advertisement as plugin initialize. provider_snapshot is cached data, not a list of capabilities." ``` ## topics ```json [ { "id": "surfaces", "what": "Bar tiles, pinned flyouts, hover previews, tooltips, context menus and proactive toasts. Read target-specific constraints before selecting surfaces.", "read": [ { "tool": "ui_kit", "arguments": { "sections": [ "conventions", "snippets" ] } }, { "tool": "plugin_guide", "arguments": { "section": "manifest" } } ] }, { "id": "design", "what": "Cover recipes, responsive flyout hierarchy, theme-aware components, charts, optional app/cover icons, forms and accessible loading/empty/error states.", "read": [ { "tool": "ui_kit", "arguments": { "sections": [ "coverLayouts", "bestPractices", "forms", "snippets" ] } }, { "tool": "ui_kit", "arguments": { "sections": [ "icons", "data", "branding" ] } }, { "tool": "plugin_guide", "arguments": { "section": "manifest" } } ] }, { "id": "interactions", "what": "Declarative data-action/data-field events and shell-owned data-sb-* behaviour: tables, menus, dialogs, filters, pickers, copy and countdowns.", "read": [ { "tool": "ui_kit", "arguments": { "sections": [ "behaviour", "forms" ] } }, { "tool": "plugin_guide", "arguments": { "section": "sdk" } } ] }, { "id": "notifications", "what": "Addressable toasts with arbitrary plugin action buttons, expiry, delivery callbacks and optional sounds. Host acceptance and visible delivery are separate.", "read": [ { "tool": "plugin_guide", "arguments": { "section": "sdk" } }, { "tool": "ui_kit", "arguments": { "sections": [ "conventions" ] } } ] }, { "id": "audioPlayback", "what": "Native local-file playback independent of visible HTML: play, pause, resume, stop, loop, volume, seek and status; master and per-plugin levels.", "read": [ { "tool": "plugin_guide", "arguments": { "section": "sdk" } }, { "tool": "settings_get", "arguments": { "path": "audio" } } ] }, { "id": "mediaPipeline", "what": "Local media through sb-asset and remote HTTPS players through the isolated wrapper in pinned flyouts. Keep media identity stable, cache metadata, and provide external-link fallbacks.", "read": [ { "tool": "ui_kit", "arguments": { "sections": [ "sanitizer", "bestPractices" ] } }, { "tool": "plugin_guide", "arguments": { "section": "storage" } } ] }, { "id": "systemData", "what": "CPU, memory, disk, network, battery, media sessions and system output audio, where advertised. Subscribe through on_provider; provider_action controls supported media/system volume. This differs from plugin audio playback.", "read": [ { "tool": "provider_snapshot", "arguments": {} }, { "tool": "plugin_guide", "arguments": { "section": "sdk" } } ] }, { "id": "persistenceAndScheduling", "what": "Plugin-owned files/SQLite, atomic writes, cached display, background work and periodic callbacks. Persist deadlines/state and reconcile after restart or wake; timers do not run while smabar is stopped.", "read": [ { "tool": "plugin_guide", "arguments": { "section": "storage" } }, { "tool": "plugin_guide", "arguments": { "section": "lifecycle" } } ] }, { "id": "agentCommands", "what": "Discoverable plugin-owned command schemas and confirmed results. Use plugin_list, then plugin_commands(id) and plugin_call with the discovered contract; writes need their own validation and retry semantics.", "read": [ { "tool": "plugin_list", "arguments": {} }, { "tool": "plugin_guide", "arguments": { "section": "sdk" } } ] }, { "id": "integrations", "what": "Language-agnostic subprocesses with JSON-RPC; bundled Python/uv supports standard libraries and declared dependencies. Plugins fetch external APIs or run programs, with bounded work off the handler thread.", "read": [ { "tool": "plugin_guide", "arguments": { "section": "manifest" } }, { "tool": "plugin_guide", "arguments": { "section": "storage" } } ] }, { "id": "configurationAndDistribution", "what": "Plugin settings/locales, themes, fonts, visibility and lifecycle, shortcuts and the Community Store have their own MCP tools. Discover current state and tool schemas before changing them.", "read": [ { "tool": "bar_get_state", "arguments": {} }, { "tool": "theme_get", "arguments": {} }, { "tool": "font_list", "arguments": { "limit": 10 } } ] }, { "id": "shortcutsAndStore", "what": "Find and launch installed applications, manage shortcuts, and inspect the signed Community Store catalog and requirements before installing optional plugins or themes.", "read": [ { "tool": "shortcut_list", "arguments": {} }, { "tool": "store_overview", "arguments": {} } ] }, { "id": "verification", "what": "Inspect real process status, structured logs and live screenshots of every surface. Exercise actions and recovery before declaring the plugin complete.", "read": [ { "tool": "plugin_guide", "arguments": { "section": "debugging" } } ] } ] ``` ## research ```json [ "Map the idea to topics and make every read call before writing. External services: current official documentation. A missing plugin or an empty provider snapshot is not a missing capability; distinguish a missing host primitive from what a plugin implements in its own process, and state a remaining limitation with its evidence and a supported fallback." ] ```