View and edit cmux settings in ~/.config/cmux/cmux.json. Use when the user wants to change cmux preferences (appearance, sidebar, notifications, automation, browser, shortcuts), set a value by JSON path, validate the file, open it in an editor, or look up which keys cmux recognizes. Triggers on '/cmux-settings', 'change cmux setting', 'set <something> in cmux', 'cmux config', 'cmux.json', or 'rebind a cmux shortcut'.
77
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
cmux reads user settings from ~/.config/cmux/cmux.json (JSONC). A file watcher applies changes on save, no restart. Legacy ~/.config/cmux/settings.json is read only as a fallback for keys absent from cmux.json.
Schema: https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json. The authoritative path list is Sources/CmuxSettingsJSONPathSupport.swift; the installed skill carries a generated copy in references/all-keys.md. Settings sections are app, terminal, notifications, sidebar, sidebarAppearance, workspaceColors, automation, browser, shortcuts. Non-settings sections (actions, ui, commands, vault, rightSidebar) share the same file.
Use the bundled helper for every read/write. It strips JSONC comments, writes atomically, and validates keys against the schema.
skills/cmux-settings/scripts/cmux-settings <subcommand> # from a cmux checkout
~/.codex/skills/cmux-settings/scripts/cmux-settings <subcommand> # installed Codex skillThe rest of this doc assumes it is on $PATH as cmux-settings; from a checkout, export PATH="$PWD/skills/cmux-settings/scripts:$PATH".
| Command | What it does |
|---|---|
cmux-settings path | Print the config path. |
cmux-settings dump | Print the raw file (preserves comments). |
cmux-settings dump --no-comments | Print the parsed JSON. |
cmux-settings get <a.b.c> | Print value at dotted JSON path. |
cmux-settings set <a.b.c> <value> | Set value. <value> is parsed as JSON (true, 42, "text", […], {…}); unquoted plain words are 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, or TextEdit. |
--file <path> overrides the target file, useful for --file ~/.config/cmux/settings.json.
cmux-settings list-supported | rg -i 'sidebar.*terminal|terminal.*sidebar'cmux-settings set sidebarAppearance.matchTerminalBackground true
cmux-settings set app.appearance dark
cmux-settings set shortcuts.bindings.newTab '["ctrl+b","c"]'
cmux-settings set browser.hostsToOpenInEmbeddedBrowser '["localhost","*.internal.example"]'cmux-settings validate.cmux-settings unset <key> reverts it.app.appearance ("system" | "light" | "dark"), app.appIcon, app.menuBarOnly, app.minimalMode.sidebarAppearance.matchTerminalBackground, .tintColor, .tintOpacity (0..1).sidebar.hideAllDetails, .showBranchDirectory, .showPullRequests, .showPorts, .showLog.notifications.dockBadge, .sound (enum including "none", "custom_file"), .customSoundFilePath, .hooks (array).browser.defaultSearchEngine, .theme, .openTerminalLinksInCmuxBrowser, .hostsToOpenInEmbeddedBrowser.automation.socketControlMode (off | cmuxOnly | automation | password | allowAll), .portBase, .portRange.shortcuts.bindings.<actionId> = "cmd+b", ["ctrl+b","c"], null, or "" to unbind. Action ids in references/shortcut-actions.md.Full list of settings, defaults, and descriptions: cmux-settings list-supported or references/all-keys.md.
cmux.json. Never settings.json unless the user explicitly asks; it is legacy and read only when a key is absent from cmux.json.cmux-settings validate after a bulk edit. Unknown keys mean the user pasted a key the app does not consume.actions, ui, commands, vault, or rightSidebar; they share the file and hold hand-tuned non-settings config.#RRGGBB; opacities are 0..1.web/app/[locale]/(landing)/docs/configuration/page.tsx mirrors the schema 1:1.194afe1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.