> 🌐 Language: [English](Settings) | **中文** # Settings 主窗口右上角 **⚙** 进。左右两栏布局:左侧竖向 tab 导航(模型 / 外观 / 引擎 / 高级 / 安全 / 消息 / 插件 / 技能 / Goal 监工 / 多机协作),右侧内容独立滚动;窄窗口自动回退横向 tab。搜索框跨面板全景过滤。**保存/测试按钮常驻内容区底部** —— 任意 tab 都能直接按;表单有未保存改动时保存按钮亮提示点。 ## 模型 | 字段 | 说明 | |---|---| | Provider 协议 | `OpenAI 兼容` / `Anthropic` 二选一。决定请求走 `/chat/completions` 还是 `/v1/messages` | | Base URL | 端点根。预设按钮:GLM 智谱 / DeepSeek / OrcaRouter / OpenAI / Anthropic 一键填 | | Model | 默认模型。例 `glm-4.6` / `claude-sonnet-4-6` / `gpt-4o`。每会话可独立改 | | API Key | safeStorage 加密存(macOS Keychain / Windows DPAPI)。明文不进 settings.json | | **测试连接** | 发一个最小请求验证。**保存前必测** | | **添加模型(3.7.3+)** | 模型配置档改弹窗编辑:配置名 / key / URL / 模型 / 协议 / reasoning / 价格 / 余额查询,内置测试连接。保存即入列表 | | 智谱余额 | 一键查询 GLM key 的剩余额度 | `AppSettings.apiKey` 通过 `safeStorage.encryptString` 加密后存 `userData/settings.json` 的 `apiKeyEnc` 字段。 ## 引擎 / 行为(高级) | 字段 | 说明 | |---|---| | Shell 审批 | `always`(默认,每次弹确认)/ `never`(自动放行,慎用) | | 沙箱(Claude Code / Codex) | `readOnly` / `workspaceWrite` / `fullAccess`。映射到 `--permission-mode`(CC)/ `-s`(Codex) | | 计划模式 | 开了 → 引擎只读不写(CC 走 `plan` mode,Codex 走 `read-only`) | | CLI 引擎插件 | Claude Code / Codex **由插件开关控制** —— 在 ⚙ → 插件 里启用对应插件,引擎才进下拉 | | **复杂任务后台执行(V3)**(3.8.0+) | 开(默认)→ V3 判定为 `deep` 的任务提交 JobManager,会话立即解锁,完成自动回贴;关 → 同步等待 | | Computer Use 后台模式 | 鼠标/键盘事件后台投递到目标窗口,真实光标和焦点不动(Windows 完整支持) | | 关窗行为 | 退出 / 最小化 / 托盘 | ## 价格 | 字段 | 说明 | |---|---| | 输入价格(per 1M token) | 美元。覆盖默认(GLM `0.07`,其他 `3`) | | 输出价格(per 1M token) | 同上 | `priceUSD(model, tokensIn, tokensOut)`(`glm.ts:96`)优先用这里的设置;为 0 时回退到内置默认。 ## 界面 | 字段 | 说明 | |---|---| | 语言 | English / 简体中文 / 繁體中文 / 日本語。**实时切换**(不用重启) | | 主题 | dark(默认)/ light。**实时预览**(切走再切回不丢) | i18n 实现详见 [[i18n]]。 ## 长期记忆 | 按钮 | 说明 | |---|---| | 导出 JSON | 写到用户选的路径。`{ version: 1, exportedAt: number, memories: Memory[] }` | | 导入 JSON | 接受上面结构 **或** 纯 `string[]`。按 content 去重。返回 `{ imported: N, skipped: N }` | 适合换机器迁移、备份、不同 provider 共享。详见 [[Long-Term-Memory]]。 ## 技能(3.7.2+) 技能 tab 聚合所有来源的 skill / command / agent —— Claude Code、Codex、插件贡献,以及 app 自带**内置 skill**(只读,随 app 分发;首发 `data-analysis` 移植了 V3 分析工作法)。搜索、查看、直接编辑用户级源文件;插件/内置技能只读。保存即时生效。详见 [[Skills]]。 ## 消息 配置飞书和企业微信机器人集成。详见 [[Messaging-Bots]]。 | 字段 | 说明 | |---|---| | 飞书 — 启用 | 开关飞书机器人连接 | | 飞书 — App ID / Secret | 飞书开放平台凭证 | | 企微 — 启用 | 开关企微机器人连接 | | 企微 — Bot ID / Secret | 企微开发者后台凭证 | | 引擎 | 处理 IM 消息的 Agent 引擎 | | 流式回复 | 先发"思考中"占位,完成后替换为答案 | | 默认工作目录 | Agent 工具的工作目录 | ## 每会话独立 vs 全局 | 全局(setting) | 每会话(conv) | |---|---| | Provider 协议 | 引擎(Direct/CC/Codex) | | Base URL | 模型 | | API Key | cwd | | 价格 | | | 审批 / 沙箱 | | | 语言 / 主题 | | 每会话模型的可编辑下拉在聊天头部第二行,接 OpenAI 兼容 + Anthropic 双协议。 ## 加密存储的安全权衡 `CLAUDE.md` 明确写了: > API key is stored **plaintext** in `userData/settings.json` (known MVP constraint — swap for Windows Credential Manager before real distribution). 实际上 v1.0 后已经走 safeStorage 加密。但 CLAUDE.md 还留着这条说明(还没更新)。实际安全性:macOS Keychain / Windows DPAPI 保护,从 settings.json 直接读到的只是加密 blob。 ## 关键源文件 - `src/main/settings.ts` —— `getSettings` / `saveSettings` / `snapshot` / 加密读写 - `src/shared/types.ts:30` —— `AppSettings` 类型 - `src/renderer/settings.ts`(嵌入 app.ts) —— settings view 渲染