Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
manaflow-ai avatar

Cmux Settings

  • 4.4k installs
  • 25.6k repo stars
  • Updated August 5, 2026
  • manaflow-ai/cmux

cmux-settings is an agent skill that views and edits cmux preferences in ~/.config/cmux/cmux.json using schema-validated cmux-settings CLI subcommands.

About

cmux-settings is an agent skill for reading and writing cmux terminal app preferences stored in ~/.config/cmux/cmux.json as JSONC with immediate reload via a file watcher and no restart required. Legacy ~/.config/cmux/settings.json is a fallback only for keys absent from cmux.json. A bundled cmux-settings helper script strips JSONC comments, writes atomically, and validates keys against the published schema with subcommands for path, dump, get, set, unset, list-supported, validate, and open. Top-level settings sections include app, terminal, notifications, sidebar, sidebarAppearance, workspaceColors, automation, browser, and shortcuts, while non-settings sections such as actions, ui, commands, vault, and rightSidebar must not be blindly overwritten. Workflow steps look up plain-English setting names, set JSON-literal values, read back with get, and run validate after bulk edits. Quick reference documents appearance, sidebar tint, notification sounds, browser hosts, automation socket control modes, and shortcut bindings using schema enum action ids. Rules forbid editing settings.json unless asked, require #RRGGBB colors and 0..1 opacities, and map UI labels to dotted JSON paths bef.

  • Edits ~/.config/cmux/cmux.json with atomic writes and schema validation via cmux-settings helper.
  • File watcher applies changes immediately without telling users to restart cmux.
  • Subcommands include get, set, unset, list-supported, validate, dump, and open in an editor.
  • Covers appearance, sidebar, notifications, browser, automation, and shortcut binding keys.
  • Warns against overwriting non-settings sections like actions, ui, commands, vault, and rightSidebar.

Cmux Settings by the numbers

  • 4,363 all-time installs (skills.sh)
  • +363 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #45 of 550 CLI & Terminal skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

cmux-settings capabilities & compatibility

Capabilities
jsonc config read and write · schema key validation · shortcut binding management · settings lookup and translation
Use cases
devops
Platforms
macOS
npx skills add https://github.com/manaflow-ai/cmux --skill cmux-settings

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs4.4k
repo stars25.6k
Security audit3 / 3 scanners passed
Last updatedAugust 5, 2026
Repositorymanaflow-ai/cmux

How do I change cmux appearance, sidebar, notifications, browser, automation, or shortcut settings without breaking unrecognized keys?

View and edit cmux user settings in ~/.config/cmux/cmux.json with schema-validated get, set, and shortcut bindings.

Who is it for?

cmux users who want programmatic or agent-assisted changes to terminal app settings and keyboard shortcuts.

Skip if: Skip when you do not use cmux or need generic shell configuration outside the cmux.json schema.

When should I use this skill?

User asks to change cmux settings, rebind shortcuts, validate cmux.json, or edit cmux config paths.

What you get

Validated cmux.json updates that reload on save with correct dotted JSON paths and shortcut bindings.

  • updated cmux.json
  • validation result

Files

SKILL.mdMarkdownGitHub ↗

cmux-settings

cmux reads user settings from ~/.config/cmux/cmux.json (JSONC). The app installs a file watcher; saving the file applies changes immediately, no restart needed. Legacy ~/.config/cmux/settings.json is read only as a fallback for keys not present in cmux.json.

Schema: https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json. The authoritative path list lives in Sources/CmuxSettingsJSONPathSupport.swift in the cmux checkout, and the installed skill includes a generated copy in references/all-keys.md. Top-level sections are app, terminal, notifications, sidebar, sidebarAppearance, workspaceColors, automation, browser, and shortcuts. Non-settings sections (actions, ui, commands, vault, rightSidebar) coexist in the same file.

Helper script

Use the bundled helper for every read/write. It strips JSONC comments, writes atomically, and validates keys against the schema.

# From a cmux checkout
skills/cmux-settings/scripts/cmux-settings <subcommand>

# From an installed Codex skill
~/.codex/skills/cmux-settings/scripts/cmux-settings <subcommand>

For brevity in the rest of this doc, assume the script is on $PATH as cmux-settings. To make it so for a session from a checkout: export PATH="$PWD/skills/cmux-settings/scripts:$PATH".

Subcommands:

CommandWhat it does
cmux-settings pathPrint the config path.
cmux-settings dumpPrint the raw file (preserves comments).
cmux-settings dump --no-commentsPrint 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", […], {…}); plain strings without quotes are stored as strings.
cmux-settings unset <a.b.c>Delete key, reverting to the in-app default.
cmux-settings list-supportedList every settings JSON path the app recognizes.
cmux-settings validateParse the file and flag any unknown settings keys.
cmux-settings openOpen cmux.json in $EDITOR, VS Code, Cursor, or TextEdit.

--file <path> overrides the target file (useful for --file ~/.config/cmux/settings.json when the user keeps things in the legacy file).

Workflow

1. Confirm the change. If the user named a setting in plain English (e.g. "make the sidebar tint match the terminal background"), look it up first.

   cmux-settings list-supported | rg -i 'sidebar.*terminal|terminal.*sidebar'

2. Set the value. JSON literals (true, false, numbers, arrays, objects) must be valid JSON. Plain words are stored as strings.

   cmux-settings set sidebarAppearance.matchTerminalBackground true
   cmux-settings set app.appearance dark
   cmux-settings set shortcuts.bindings.toggleSidebar cmd+b
   cmux-settings set shortcuts.bindings.newTab '["ctrl+b","c"]'
   cmux-settings set browser.hostsToOpenInEmbeddedBrowser '["localhost","*.internal.example"]'

3. Verify by reading back and validating.

   cmux-settings get sidebarAppearance.matchTerminalBackground
   cmux-settings validate

4. Tell the user it auto-reloaded. No app restart. If they want to revert, run cmux-settings unset <key>.

Quick reference

  • Appearance: app.appearance = "system" | "light" | "dark", app.appIcon, app.menuBarOnly, app.minimalMode.
  • Sidebar tint: sidebarAppearance.matchTerminalBackground, sidebarAppearance.tintColor, sidebarAppearance.tintOpacity (0..1).
  • Sidebar details: sidebar.hideAllDetails, sidebar.showBranchDirectory, sidebar.showPullRequests, sidebar.showPorts, sidebar.showLog.
  • Notifications: notifications.dockBadge, notifications.sound (enum incl. "none", "custom_file"), notifications.customSoundFilePath, notifications.hooks (array).
  • Browser: browser.defaultSearchEngine, browser.theme, browser.openTerminalLinksInCmuxBrowser, browser.hostsToOpenInEmbeddedBrowser.
  • Automation: automation.socketControlMode (off | cmuxOnly | automation | password | allowAll), automation.portBase, automation.portRange.
  • Shortcuts: shortcuts.bindings.<actionId> = "cmd+b", ["ctrl+b","c"], null, or "" to unbind. See references/shortcut-actions.md.

For the full list of settings, defaults, and descriptions, run cmux-settings list-supported or read references/all-keys.md.

Rules

  • Only edit cmux.json. Never edit settings.json unless the user explicitly asks; it is legacy and only read when the key is absent from cmux.json.
  • Never tell the user to restart cmux to apply a change. The file watcher reloads on save.
  • Always validate after a bulk edit: cmux-settings validate. Unknown keys mean the user pasted a key the app does not consume.
  • Do not blindly overwrite top-level sections (actions, ui, commands, vault, rightSidebar). They live in the same file and contain non-settings config the user has hand-tuned.
  • Shortcut action ids must match the schema enum. Look them up in references/shortcut-actions.md before binding.
  • Color values must be #RRGGBB. Opacities are 0..1.
  • For settings the user expressed in app-level language (e.g. "Settings > Notifications > Dock badge"), translate to the matching JSON path first; the docs page at web/app/[locale]/docs/configuration/page.tsx mirrors the schema 1:1.

Related skills

How it compares

Use cmux-settings over generic JSON editing when you need cmux-specific key lookup, validation, and trigger-aware preference changes.

FAQ

Does cmux require a restart after settings change?

No. The file watcher reloads cmux.json on save, and the skill forbids telling users to restart for normal preference edits.

Which file should cmux-settings edit by default?

Only cmux.json unless the user explicitly asks to use the legacy settings.json fallback file.

Is Cmux Settings safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.