Appearance
Settings


Accessible via the Settings button in the StatusBar. The Settings-dialog values are per-user / per-machine — they are written to localStorage["systema_user_settings"] so they follow the user across every Figma file. File-level layout state (zoom, split percent, scroll positions, sectionStates, selected theme, …) stays in the file's pluginData, and API keys live in figma.clientStorage (per-user, never shared).
Editor Display
- Show info panels — toggle the descriptive info blocks inside editor sections
- Show hotkeys — toggle the keyboard shortcut hints in the editor
- Show suggestions — toggle the suggestion footer panel. Drives both the Color Suggestions block (Palette tab — harmony chips: Complementary / Analogous / Triadic / Square / Tetradic / Split) and the Entity Suggestions block (Entities tab — per-pattern contrast / level / step pill rows)
- Editor footer — toggle the editor's bottom info panel (combines color suggestions, info text, hotkeys). Hotkey:
Alt+1 - Preview footer — toggle the preview's bottom info panel (hovered swatch / surface / container readout with clamp + chroma diagnostics). Inverse rows append an
invtoken to the entity name (Containers inv 0,Content inv 2) so direct vs inverse stays unambiguous; the suffix is added at render time and survives interactive composite cells where the displayed colour updates live with hover/press/drag events. Hotkey:Alt+2 - Agents footer — toggle the agents footer panel under the chat. Hotkey:
Alt+3 - Contrast cheatsheet — toggle the WCAG/APCA cheatsheet below the Contrasts field in entity editors
- Dark mode — switches the plugin UI to a dark theme. Swatch outlines adapt automatically
- Preview layout (Narrow / Wide) — Narrow: surfaces side-by-side, content stacked inside. Wide: surfaces stacked, content/containers laid out horizontally. Wide also flows per-condition groups (
Enabled|Selected|Disabled) horizontally insideEntityRowViewso they read at a glance instead of stacking vertically - Preview verbosity (Terse / Balanced / Verbose) — controls how much textual scaffolding the preview shows. Verbose =
c-N N.NN+coF/chFlabels around each swatch + 96-px wide swatch pills. Balanced (default) = labels dropped, swatches collapse to 40 × 16. Terse = every label hidden (section / row / condition headers + per-swatch labels). Paste-to-canvas walks the live DOM, so what isn't rendered isn't exported - Preview filters — show/hide the entire preview filter block (entity color overrides, display filters)
- Vision simulation (Preview only / Entire UI) — controls whether the CVD filter applies just to preview swatches or to the whole plugin UI
- AI Chat layout (Auto / Float) — Auto docks the chat as a third panel when the window is wide enough (≥1360px) and floats it otherwise; Float forces the floating overlay regardless of width
Helpers
- Swatch borders (Auto / Always / Hidden) — adds dashed borders when the contrast between a swatch and its background is too low to see the edge. Auto = only when needed
- Default collection structure (Compact / Balanced / Granular) — what structure new themes start with. See Push Vars
- Autosave — toggle plus a numeric input (10–600 seconds, default 60). Arrow keys step by 10s, Shift+arrow by 60s. When autosave fires, the Save button shows the same wave animation as a manual save
- Preview transitions — toggle plus a numeric input (50–500 ms, default 150). Drives the global
--systema-transition-durationCSS variable; flipping the switch off collapses every transition in the UI to 0 ms (state changes apply instantly). The override is scoped to elements that already declaredtransition-*(utility classes or inline styles), so popovers/tooltips that rely on Radix's inlinetop/left/transformaren't accidentally interpolated and snap into place as before
AI
- API keys — keys for Anthropic, OpenAI, OpenRouter, Gemini. Stored per-user in
figma.clientStorage(private, not shared with collaborators). Validated live on 600ms debounce: spinner → green check / "Invalid". Screenshot analysis requires an Anthropic key (Claude Vision); other providers support text chat only - Model — the dropdown is populated dynamically from each provider's
/v1/modelsendpoint after its key validates. Anthropic returns the live Claude lineup (Haiku / Sonnet / Opus variants), OpenAI is filtered to GPT-4 / GPT-3.5 / o1–o4, Gemini pulls models withgenerateContentsupport, and OpenRouter accepts a free-form model id. No model is hardcoded in the UI - Default agent — pick one of the four agents (DaiDai / Pappah / Mammah / Yetish) as the default for direct messages without an
@mention - Family mode — agents reference each other as relatives (uncle / mother / etc.) in their personalities. Off → strictly professional colleagues
- Debug mode — adds a View trace entry to message context menus (routing decision, model used, token estimates, tool call summary, duration)
- Debate limit — max sequential responses (typically 4-6) when you @all or start a multi-agent debate
- Personality — verbosity, skepticism, profanity, zoomerism, toxicity, and management are configured per-agent via the gear icon on each agent card. Each agent has its own defaults defined in its persona file. Dynamically injected as system prompt modifiers
- Auto-name AI colors — AI-generated colors get descriptive names automatically
- Export / Import — header buttons to export all settings as JSON and import them on another file or machine
Reset settings to defaults
A single Reset button restores every option above to its default in one shot. The button is hidden when nothing has been changed.
Danger Zone
| Action | What it does |
|---|---|
| Agent edit permissions (toggle) | managed-only (default): agents only see and modify variable collections that Systema itself created. all: agents can also touch foreign variable collections (other plugins, libraries, hand-made). They still cannot draw on the canvas. Implemented in src/plugin/code.ts figma-context-query / figma-rename-collection handlers, gated by the systema_managed plugin-data tag |
| Delete plugin data | Removes config, layout, collection tags, chat. Variables stay in Figma but become unmanaged. Optional checkboxes: "Keep API keys" and "Keep agent settings" |
| Delete Systema variables | Removes all collections created by Systema. Config preserved, Push Vars becomes available |
| Delete other variables | Removes all collections NOT created by Systema. Useful for cleaning up legacy variables |