Settings
Plugin settings are part of the manifest and do not require a new plugin kind. A settings-only extension can be behavior.
- Generated form
- Existing category
- Custom category
Declare timon.settings entries with key, type, label and optional default. Supported types are string, number, boolean and secret. No browser code is needed. Timon creates a category and renders a form, saving through the plugin settings endpoint. The host reads values with ctx.settings.get(key) and the settings permission.
Declare an exact slot such as settings.missions and register a row or block. It appears after the product's fields in that category. It is not a widget card and needs no drag handle or surrounding tile.
Declare settings.section and register your category component. The slot is keyed by plugin ID. Its sidebar label comes from timon.label, falling back to the ID. A custom pane can declare a child slot such as settings.acme, but must render that slot itself.
When both a custom category and manifest fields exist, the custom occupant wins: one sidebar entry, not duplicate forms. A disabled plugin loses its registration and category. The client settings API exposes asynchronous get() and set(key, value); host settings reads and browser settings reads have different signatures.
Native settings slots
| Group | Exact slot |
|---|---|
| Missions | settings.missions |
| LLM fallback | settings.llmfallback |
| Resources | settings.resources |
| Reaper | settings.reaper |
| Worktrees | settings.worktrees |
| Permissions | settings.permissions |
| Wake | settings.wake |
| Memory injection | settings.memoryinjection |
| Memory capture | settings.memorycapture |
| Memory synthesis | settings.memorysynthesis |
| Memory promotion | settings.memorypromotion |
| Global digest | settings.digest |
| Scoring | settings.scoring |
| Dreaming | settings.dreaming |
| Terminal | settings.terminal |
| Misc | settings.misc |
| Infra | settings.infra |
| Push | settings.notifications |
Do not generate a slot name from its translated label: settings.llmfallback has no hyphen. Admission remains exact for each group. Encode plugin IDs in ?group= deep links. See Secrets before handling secret fields.