cmux-config 是编辑 cmux 用户配置的单一入口技能,目标文件为 ~/.config/cmux/cmux.json(JSONC 格式)。应用会监听该文件,保存后立即应用更改,无需重启。旧版 ~/.config/cmux/settings.json 仅在 cmux.json 缺少某些键时作为只读回退读取。
主要能力分为三个领域,每个领域都有对应参考文档:
设置(Settings):app、terminal、notifications、sidebar、sidebarAppearance、workspaceColors、automation、browser、shortcuts 下的类型化偏好。可参考 references/all-keys.md 与 references/shortcut-actions.md。
自定义(Customization):结构性配置,包括 actions、ui.surfaceTabBar.buttons、ui.newWorkspace(加号按钮点击与上下文菜单)、commands、rightSidebar、vault。可参考 references/customize.md。
工作区分组(Workspace groups):通过 cmux workspace group CLI / socket API 与 workspaceGroups 配置实现可折叠的、由锚点拥有的侧边栏分区。可参考 references/groups.md。
辅助脚本:所有设置与自定义项的读写都应使用随附的辅助脚本。它会去除 JSONC 注释、原子写入,并按 schema 校验键名。从已安装的技能目录运行:./scripts/cmux-settings <subcommand>。为简洁起见,下文假设它已在 $PATH 中作为 cmux-settings 使用(例如 export PATH="$HOME/.claude/skills/cmux-config/scripts:$PATH")。
子命令说明:
- cmux-settings path:打印配置路径。
- cmux-settings dump [--no-comments]:打印原始文件(或解析后的 JSON)。
- cmux-settings get <a.b.c>:打印点分 JSON 路径处的值。
- cmux-settings set <a.b.c> <value>:设置值(<value> 按 JSON 解析;裸词按字符串存储)。
- cmux-settings unset <a.b.c>:删除键,恢复为应用内默认值。
- cmux-settings list-supported:列出应用识别的所有设置 JSON 路径。
- cmux-settings validate:解析文件并标记未知的设置键。
- cmux-settings open:在 $EDITOR / VS Code / Cursor / TextEdit 中打开 cmux.json。
- --file <path> 可覆盖目标文件(用于旧版 settings.json)。
Schema 地址:https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json。
工作流程:
- 如果用户用自然语言提到某个设置,先查找:cmux-settings list-supported | rg -i '<keywords>'。
- 做最小改动(设置/自定义通过辅助脚本;分组通过 references/groups.md 中的 cmux workspace group CLI)。
- 按界面验证:类型化设置需读回(cmux-settings get <path>)并运行 cmux-settings validate;自定义项(actions、ui.*、commands、vault、rightSidebar)需读回精确键(cmux-settings get <path>)并确认文件仍可解析(cmux-settings dump --no-comments),此处不要依赖 validate,因为它会跳过结构性区块,像 ui.surfaceTabbar.buttons 这样的拼写错误能通过校验但会被 cmux 忽略,需对照 references/customize.md 检查键名;分组使用 cmux workspace group list(设置校验器不识别 workspaceGroups)。
- 告知用户保存后已自动重新加载,无需重启应用。可用 cmux-settings unset <key> 还原。
规则:
- 只编辑 cmux.json。除非被要求,否则不要编辑 settings.json,它是旧版。
- 绝不要告诉用户重启 cmux 来应用更改;监听器会在保存时重新加载。
- 不要盲目覆盖顶层结构性区块(actions、ui、commands、vault、rightSidebar),它们保存着手工调整的非设置配置。
- 颜色值为 #RRGGBB;不透明度为 0..1。
- 快捷键动作 id 必须匹配 schema 枚举;绑定前先在 references/shortcut-actions.md 中查找。
- 对于仅配置或仅技能的更改,不要运行带标签的应用重载。
- 对于工作区分组,优先使用 CLI/socket 操作而非编辑会话 JSON,并保留锚点语义(见 references/groups.md)。