Settings
Open Settings with Cmd/Ctrl+,. Nine sub-tabs cover everything from theme to LLM providers to permission modes. This page is the index — each sub-tab gets one paragraph here and links out to deeper docs.
Settings is the desktop’s control panel. Most users only touch a handful of tabs, but every behavioural knob the desktop exposes lives here.
How to open Settings
The hotkey is Cmd/Ctrl+,; the sidebar gear icon and the tray menu both also open it. The Settings window is modal — pressing Esc closes it without discarding changes. Every change writes through internal/desktop/services/settings, which persists to the user-scoped config file and broadcasts the change so other surfaces (tray, status pill) update immediately.
1. Appearance
Theme (light / dark / system), language, always-on-top toggle, “Show chat button” (the FAB), sound on/off, and a layout-mode override. The layout-mode override lets you force compact mode regardless of window width — see Layout modes for what that affects.
2. Behavior
The Behavior tab covers the desktop’s interaction with the host OS: power blocker (prevents the system from sleeping during long agent runs), launch-at-login, and window-restore behaviour after a quit. The power blocker is a real system call, not just a flag — it asks the OS to stay awake.
Enabling power blocker grants the agent the right to keep your system awake while it works. Disable it for short sessions and re-enable it when you start a long-running run.
3. AI
Default model tier, custom-provider routing toggle, default chat persona, and context-window override. The picker UI lives in the Chat tab; this is where you set the defaults that picker starts from. For the catalogue of supported custom providers, see custom providers.
4. Security
The Security tab is the most consequential page. It exposes the permission mode (default / strict / bypass), the agent password, lockout behaviour, and the session-token TTL. The mode dropdown decides whether the gate prompts on every tool call, only on dangerous ones, or never. The gate implementation is internal/desktop/services/permissionspolicy.
Bypass mode disables the permission gate entirely. Use it only on machines you fully control — never on a remote machine you have shared a link to.
5. Updates
Auto-update toggle, channel selector (stable / beta), check interval, and a manual “Check now” button. Updates run through the daemon’s update service, so the same version bump applies to the desktop, CLI, and any local agent at once. The CLI equivalent lives at cli/update.
6. Connection
Server mode (prod / dev), endpoint host and port, the AutoConnect toggle, and the tray “stay disconnected” sticky toggle. This is the advanced surface for the same controls exposed on the system tray.
Switching server mode triggers a workspace migration — OAuth tokens are kept per-mode in token_prod.json / token_dev.json, so flipping back and forth doesn’t log you out.
7. Skills
The list of installed skills with enable/disable toggles, a “Install from marketplace” entry point, and a per-skill model override. Skills surface as inline tool calls inside chat — see skills for how the manifests work and installing skills for the install flow.
8. Providers
Custom LLM provider list with add, remove, set-default, and per-provider config (base URL, API key, model). Built-in presets cover Z.AI, MiniMax, Kimi K2, DeepSeek, Xiaomi MiMo, OpenRouter, Ollama, and LM Studio, plus arbitrary OpenAI-compatible endpoints. Setting a provider as default replaces the chat tier picker with a provider badge.
9. Developer
Debug overlay, log level, “Open logs folder”, “Regenerate bindings” (dev-mode only), and a preview of the MCP stdio entry-point. The MCP integration page is at MCP overview.
The Developer tab is hidden by default. Toggle “Show developer tools” in About → Build info to enable it.