-
Notifications
You must be signed in to change notification settings - Fork 3
Settings
🌐 Language: English | 中文
Top-right ⚙ in the main window. Two-column layout: vertical tab nav on the left (Model / Appearance / Engine / Advanced / Security / Messaging / Plugins / Skills / Goal Supervisor / Mesh), independently scrolling content on the right; narrow windows fall back to horizontal tabs. A search box filters across all panels. Save / Test buttons are pinned to the bottom of the content pane — visible from any tab; the save button lights a dot when there are unsaved changes.
| Field | Description |
|---|---|
| Provider protocol |
OpenAI-compatible / Anthropic. Determines whether requests go to /chat/completions or /v1/messages
|
| Base URL | Endpoint root. Preset buttons: GLM Zhipu / DeepSeek / OrcaRouter / OpenAI / Anthropic |
| Model | Default model. e.g. glm-4.6 / claude-sonnet-4-6 / gpt-4o. Can be overridden per session |
| API Key | Encrypted via safeStorage (macOS Keychain / Windows DPAPI). Plaintext never goes into settings.json |
| Test connection | Sends a minimal request to verify. Always test before saving |
| Add model (v3.7.3+) | Model profile editing moved into a centered modal: profile name / key / URL / models / protocol / reasoning / pricing / balance check, with built-in test connection. Saved profiles appear in the list immediately |
| Zhipu balance | One-click query of the remaining balance for GLM keys |
AppSettings.apiKey is encrypted via safeStorage.encryptString, stored as apiKeyEnc in userData/settings.json.
| Field | Description |
|---|---|
| Shell approval |
always (default, modal every time) / never (auto-allow, use with caution) |
| Sandbox (Claude Code / Codex) |
readOnly / workspaceWrite / fullAccess. Maps to --permission-mode (CC) / -s (Codex) |
| Plan mode | On → engine is read-only (CC goes plan mode, Codex goes read-only) |
| CLI engine plugins | Claude Code / Codex are plugin-gated — enable them in ⚙ → Plugins to add them to the engine dropdown |
| Run complex tasks in background (V3) (v3.8.0+) | On (default) → tasks V3 grades as deep submit to the JobManager; the session unlocks immediately and the result backfills when done. Off → synchronous wait |
| Computer Use background mode | Mouse/keyboard events are delivered to the target window in the background — your real cursor and focus never move (full support on Windows) |
| Window close behavior | Quit / minimize / tray |
| Field | Description |
|---|---|
| Input price (per 1M tokens) | USD. Overrides the default (GLM 0.07, others 3) |
| Output price (per 1M tokens) | Same |
priceUSD(model, tokensIn, tokensOut) (glm.ts:96) prefers your settings; falls back to built-in defaults when 0.
| Field | Description |
|---|---|
| Language | English / 简体中文 / 繁體中文 / 日本語. Live switch (no restart) |
| Theme | dark (default) / light. Live preview (no flicker when toggling back and forth) |
i18n internals: i18n.
| Button | Description |
|---|---|
| Export JSON | Writes to a user-chosen path. { version: 1, exportedAt: number, memories: Memory[] }
|
| Import JSON | Accepts the above structure or a plain string[]. Dedupes by content. Returns { imported: N, skipped: N }
|
Good for machine migration, backup, sharing across providers. See Long-Term-Memory.
The Skills tab aggregates every skill / command / agent from all sources — Claude Code, Codex, plugin-contributed, and the app's own built-in skills (read-only, shipped with the app; the first one, data-analysis, ports the V3 analysis discipline). Search, view, and edit user-level source files directly; plugin/built-in skills are read-only. Changes take effect immediately. See Skills.
Configure Feishu and WeCom bot integrations. See Messaging-Bots for full details.
| Field | Description |
|---|---|
| Feishu — Enabled | Toggle Feishu bot connection |
| Feishu — App ID / Secret | Credentials from Feishu Developer Console |
| WeCom — Enabled | Toggle WeCom bot connection |
| WeCom — Bot ID / Secret | Credentials from WeCom developer portal |
| Engine | Which agent engine handles IM messages |
| Stream reply | Send "thinking" placeholder first, then replace with answer |
| Default cwd | Working directory for agent tools |
| Global (setting) | Per-session (conv) |
|---|---|
| Provider protocol | Engine (Direct/CC/Codex) |
| Base URL | Model |
| API Key | cwd |
| Pricing | |
| Approval / sandbox | |
| Language / theme |
The per-session model is an editable dropdown in the chat header's second row; supports both OpenAI-compatible and Anthropic protocols.
CLAUDE.md notes:
API key is stored plaintext in
userData/settings.json(known MVP constraint — swap for Windows Credential Manager before real distribution).
Actually, as of v1.0 it's already encrypted via safeStorage. The CLAUDE.md note is stale. Actual security: protected by macOS Keychain / Windows DPAPI; reading settings.json directly only gives you the encrypted blob.
-
src/main/settings.ts—getSettings/saveSettings/snapshot/ encrypted read-write -
src/shared/types.ts:30—AppSettingstype -
src/renderer/settings.ts(embedded in app.ts) — settings view rendering