Skip to main content

Plugins

image

This documentation has been reorganized. See the Plugin Author Guide.

Guide What's Inside
Overview & Quick Start What plugins are, tools vs plugins, quick start, complete example
Manifest plugin.json reference — fields, priority bands, directory structure
Hooks All hook points (incl. ghost_inject, streaming-TTS, chat lifecycle), HookEvent fields, system access, the privacy_aware gate for private chats, examples
Examples Copy-paste samples for every capability type
Daemons Event sources, reply handlers, realtime gates, task fields
Subprocesses ProcessManager and declared services
Apps Full-page plugin UIs promoted into the nav rail
Themes Plugin themes and motions — CSS, settings, teardown
Memory Layers Plugins adding layers to the Mind Palace
Prompt Packs Shipping prompts with a plugin
Voice Commands Keyword triggers that bypass the LLM — match modes, handlers, macros
Tools Tool file format, schema flags, scopes, reading settings, plugin + chat-scoped state, privacy patterns
Routes Custom HTTP endpoints — path params, auth enforcement, handler signature
Schedule Cron tasks — manifest fields, handler contract, examples
Widgets Dashboard panels — manifest, render contract, settings schema, sample plugin
Games Game Room games — engine contract, sealed seat, board modules, sessions-are-chats
Stories Story packs — rooms, referee, dice, sealed blanks, identity modes, backdrops
Providers Custom TTS, STT, Embedding, LLM backends — base classes, manifest, lifecycle
Settings Manifest-declared settings, custom web UI, settings API, danger confirms
Web UI Shared JS modules, CSS variables, modals, CSRF, style injection
Signing Verification states, sideloading, signing your own plugins
Lifecycle Startup, live toggle, hot reload, rescan, error isolation, chat lifecycle, full API reference
Publishing How to structure your repo and submit to the Sapphire Store
AI Reference Compact reference for Sapphire's own use

For simple tool creation (no hooks/schedules needed), see TOOLMAKER.md.

Edit this page on GitHub · docs/PLUGINS.md @ c2e3170 · synced