Skip to content

Settings Reference

Magia stores all settings in a JSON file under the application data directory. Every setting has a sensible default so the app works out of the box — you only need to change what matters to you.

Settings file location (macOS):

~/Library/Application Support/sh.magia.com/settings.json

Settings are also accessible through the Settings panel (Cmd+,).


Settings that control the built-in CodeMirror editor.

SettingKeyTypeDefaultDescription
Editor preferenceeditorPreference"in-app" | "vscode" | "cursor" | "zed" | "sublime" | "system""in-app"Which editor to use when opening files. "in-app" uses the built-in editor; other values launch the named external editor.
MinimapminimapEnabledbooleantrueShow the minimap scrollbar overview in the editor gutter.
Font sizeeditorFontSizenumber13Editor font size in pixels.
Font familyeditorFontFamilystring"JetBrains Mono"Editor font family. Any monospace font installed on the system can be used.
Line heighteditorLineHeightnumber1.4Editor line height multiplier.

Settings for the integrated xterm.js terminal.

SettingKeyTypeDefaultDescription
Font sizeterminalFontSizenumber13Terminal font size in pixels.
Font familyterminalFontFamilystring"JetBrains Mono"Terminal font family. Any monospace font installed on the system can be used.
Cursor styleterminalCursorStyle"block" | "bar" | "underline""bar"Terminal cursor shape.
Cursor blinkterminalCursorBlinkbooleantrueWhether the terminal cursor blinks.
Line heightterminalLineHeightnumber1.0Terminal line height multiplier.
ShellterminalShellstring | nullnullPath to the shell executable. null means auto-detect from $SHELL or the system default.

Settings that control the visual appearance and general UI behavior.

SettingKeyTypeDefaultDescription
Theme modethemeMode"dark" | "light" | "system""dark"Color scheme. "system" follows the OS preference.
Theme IDthemeIdstring"magia"The active theme identifier. Custom themes register their own IDs.
Chat font sizechatFontSizenumber14Font size for chat messages in pixels.
Chat line heightchatLineHeightnumber1.5Line height multiplier for chat messages.
Chat font familychatFontFamilystring"Noto Sans"Font family for chat messages.
Title suggestionstitleSuggestionsEnabledbooleantrueAutomatically suggest session titles based on the first prompt.
Close behaviorcloseBehavior"minimize_to_tray" | "quit""minimize_to_tray"What happens when you close the main window.
Confirm before quitconfirmBeforeQuitbooleantrueShow a confirmation dialog before quitting when sessions are active.
WorkspacesworkspacesEnabledbooleantrueEnable the workspaces feature.
Workspace display modeworkspaceDisplayMode"tabs" | "sidebar""tabs"How workspace sessions are displayed — as tabs or in a sidebar.
Watchdog timeoutwatchdogTimeoutSecsnumber15Seconds without output before the session watchdog considers an agent stalled.
Developer modedeveloperModebooleanfalseUnlock developer tools and feature flags. See Feature Flags.

Settings that control which LLM provider is used.

SettingKeyTypeDefaultDescription
Default providerdefaultProvider"claude" | "gemini" | "codex""claude"The provider used for new sessions. Only providers enabled in PROVIDER_FLAGS are selectable.
Provider binary pathsproviderBinaryPathsRecord<string, string>{}Override the auto-detected CLI binary path for a given provider. Key is the provider ID (e.g. "claude"), value is the absolute path. Empty string reverts to auto-detect.

Settings that control which actions agents are allowed to take without asking.

SettingKeyTypeDefaultDescription
Permission presetpermissionPreset"acceptEdits" | "default" | "dontAsk" | "plan" | "auto" | "bypassPermissions""default"Global permission policy for agent tool use. See below for preset descriptions.
Tool permissionstoolPermissionsToolPermission[][]Per-tool overrides. Each entry has toolName: string and autoApprove: boolean.
PresetDescription
acceptEditsAutomatically accept all file edits; prompt for other actions.
defaultPrompt for all potentially destructive or network actions.
dontAskAuto-approve most actions; only prompt for high-risk operations.
planAgent plans actions and shows them before executing.
autoFully autonomous — agent executes without prompts.
bypassPermissionsDisable all permission checks. Use with caution.

Settings for the speech-to-text (Whisper) voice input feature.

SettingKeyTypeDefaultDescription
Voice input enabledvoiceInputEnabledbooleanfalseEnable microphone-based voice input.
Whisper modelwhisperModelstring"base"The Whisper model size to use ("tiny", "base", "small", "medium", "large"). Larger models are more accurate but slower.
Whisper languagewhisperLanguagestring"auto"BCP-47 language code for transcription (e.g. "en", "es"). "auto" enables automatic language detection.
Audio device IDwhisperDeviceIdstring""ID of the input audio device. Empty string uses the system default microphone.
STT enginesttEnginestring"auto"Speech-to-text engine. "auto" picks the best available engine.

Settings that control in-app and system notification behavior.

SettingKeyTypeDefaultDescription
Notifications enablednotificationsEnabledbooleantrueMaster switch for all notifications.
Desktop notificationsdesktopNotificationsEnabledbooleantrueSend OS-level desktop notifications.
Sound enablednotifSoundEnabledbooleantruePlay a sound with notifications.
Session completednotifSessionCompletedbooleantrueNotify when an agent session finishes successfully.
Session errornotifSessionErrorbooleantrueNotify when an agent session encounters an error.
Agent waitingnotifAgentWaitingbooleantrueNotify when an agent is waiting for user input.
System updatesnotifSystemUpdatesbooleantrueNotify when a new version of Magia is available.

Settings for the memory and reflection system.

SettingKeyTypeDefaultDescription
Memory enabledmemoryEnabledbooleantrueEnable the persistent memory system.
Reflections enabledreflectionsEnabledbooleantrueEnable automatic memory reflections (summaries of past sessions).
Sync intervalsyncIntervalMinutesnumber10How often (in minutes) memory is synced to disk.
Retention periodmemoryRetentionDaysnumber90Number of days to keep memory entries before pruning.
Max sizememoryMaxSizeMbnumber50Maximum size of the memory store in megabytes.
Reflection intervalreflectionIntervalMinutesnumber120How often (in minutes) the reflection process runs.
Observation modeobservationMode"off" | "post-session" | "live""live"When to run memory observations. "live" observes during sessions; "post-session" observes after.
Observation intervalobservationIntervalMinutesnumber10Interval in minutes for live observation checks.
Observation modelobservationModelstring"haiku"Model name used to generate observations.
Observation providerobservationProviderstring"claude"Provider used for observations.
Side question modelsideQuestionModelstring"haiku"Model used for side questions during observation.
Observation system promptobservationSystemPromptstring | nullnullCustom system prompt for the observation model. null uses the built-in default.
Reflection system promptreflectionSystemPromptstring | nullnullCustom system prompt for the reflection model. null uses the built-in default.

Settings for OpenTelemetry, crash reporting, and analytics. See Telemetry for a full explanation of what data is collected and how to opt out.

SettingKeyTypeDefaultDescription
OTel enabledotelEnabledbooleantrueEnable the local OpenTelemetry collector. Metrics are only sent to an external endpoint if MAGIA_OTEL_ENDPOINT is set at build time.
OTel collector portotelCollectorPortnumber4318HTTP port for the local OTLP collector. Agent processes export to this port.
Metric export intervalotelMetricExportIntervalMsnumber5000How often (ms) metrics are flushed from the collector.
Logs export intervalotelLogsExportIntervalMsnumber2000How often (ms) log records are flushed from the collector.
Log user promptsotelLogUserPromptsbooleanfalseInclude user prompt text in OTel log records. Disabled by default to avoid leaking sensitive content.
Log tool detailsotelLogToolDetailsbooleanfalseInclude tool call arguments and results in OTel log records.
Crash reportingcrashReportingEnabledbooleantrueSend crash reports to Sentry. Only active when MAGIA_SENTRY_DSN is set at build time. Self-builds are always silent.
AnalyticsanalyticsEnabledbooleantrueSend anonymous usage analytics to PostHog. Only active when MAGIA_POSTHOG_KEY is set at build time. Self-builds are always silent.

Settings that control the auto-update behavior.

SettingKeyTypeDefaultDescription
Auto-check updatesautoCheckUpdatesbooleantruePeriodically check for new releases and show a banner when one is available.
Update channelupdateChannelstring"stable"Which release channel to follow. "stable" for official releases; "nightly" for pre-release builds.
Dismissed versiondismissedUpdateVersionstring | nullnullVersion string the user has dismissed from the update banner. Managed automatically.