cmux-config

Configure cmux through ~/.config/cmux/cmux.json: settings (appearance, sidebar, notifications, automation, browser, shortcuts, set/get/validate by JSON path), customization (tab bar buttons, plus-button click and right-click menus, custom actions/commands/menus, right sidebar), and sidebar workspace

By manaflow-ai · 566 installs

npx skills add manaflow-ai/cmux-skills --skill cmux-config

Source repository · Upstream listing

cmux config Single entry point for editing a user's cmux configuration in ~/.config/cmux/cmux.json (JSONC). The app watches the file; saving applies changes immediately, no restart. Legacy ~/.config/cmux/settings.json is read only as a fallback for keys absent from cmux.json . Three areas, each with a reference: Settings — typed preferences under app , terminal , notifications , sidebar , sidebarAppearance , workspaceColors , automation , browser , shortcuts . See the helper below and [references/all keys.md](references/all keys.md) / [references/shortcut actions.md](references/shortcut actions.md). Customization — structural config: actions , ui.surfaceTabBar.buttons , ui.newWorkspace (plus button click + context menu), commands , rightSidebar , vault . See [references/customize.md](references/customize.md). Workspace groups — collapsible anchor owned sidebar sections via the cmux workspace group CLI / socket API and workspaceGroups config. See [references/groups.md](references/groups.md). Helper script Use the bundled helper for every settings/customize read and write. It strips JSONC comments, writes atomically, and validates keys against the schema. From the installed skill directory: For brevity below, assume it is on $PATH as cmux settings (e.g. export PATH="$HOME/.claude/skills/cmux config/scripts:$PATH" ). Command What it does cmux settings path Print the config path. cmux settings dump [ no comments] Print the raw file (or parsed JSON). cmux settings get <a.b.c Print value at dotted JSON path. cmux settings set <a.b.c <value Set value ( <value parsed as JSON; bare words stored as strings). cmux settings unset <a.b.c Delete key, reverting to the in app default. cmux settings list supported List every settings JSON path the app recognizes. cmux settings validate Parse the file and flag unknown settings keys. cmux settings open Open cmux.json in $EDITOR / VS Code / Cursor / TextEdit. file <path overrides the target file (use for the legacy settings.json ). Schema: https://raw.githubusercontent.com/manaflow ai/cmux/main/web/data/cmux.schema.json . Workflow 1. If the user named a setting in plain English, look it up first: cmux settings list supported rg i '<keywords ' . 2. Make the smallest edit (settings/customize via the helper; groups via the cmux workspace group CLI in [references/groups.md](references/groups.md)). 3. Verify by surface: Typed settings: read back ( cmux settings get <path ) and cmux settings validate . Customization ( actions , ui. , commands , vault , rightSidebar ): read back the exact key ( cmux settings get <path ) and confirm the file still parses ( cmux settings dump no comments ). Do NOT rely on validate here: it skips structural sections, so a typo like ui.surfaceTabbar.buttons passes validation yet cmux ignores it. Check the key against [references/customize.md](references/customize.md). Groups: cmux workspace group list (the settings validator does not recognize workspaceGroups ). 4. Tell the user it auto reloaded on save. No app restart. Revert with cmux settings unset <key . Rules Only edit cmux.json . Never edit settings.json unless asked; it is legacy. Never tell the user to restart cmux to apply a change; the watcher reloads on save. Do not blindly overwrite top level structural sections ( actions , ui , commands , vault , rightSidebar ); they hold hand tuned non settings config. Color values are RRGGBB ; opacities are 0..1 . Shortcut action ids must match the schema enum; look them up in [references/shortcut actions.md](references/shortcut actions.md) before binding. Do not run a tagged app reload for config only or skill only changes. For workspace groups prefer CLI/socket operations over editing session JSON, and preserve anchor semantics (see [references/groups.md](references/groups.md)).