PluginBench
Skill
Pass
Audit score 90

cmux-settings

manaflow-ai/cmux

How to install cmux-settings

npx skills add null --skill cmux-settings
Claude Code
Cursor
Windsurf
Cline
Full instructions (SKILL.md)

Source of truth, from manaflow-ai/cmux.


name: cmux-settings description: "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'."

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

More from manaflow-ai/cmux and the wider catalog.

CM

cmux

manaflow-ai/cmux

End-user control of cmux topology and routing (windows, workspaces, panes/surfaces, focus, moves, reorder, identify, trigger flash). Use when automation needs deterministic placement and navigation in a multi-pane cmux layout.

4.2k installsAudited
CM

cmux-browser

manaflow-ai/cmux

End-user browser automation with cmux. Use when you need to open sites, interact with pages, wait for state changes, and extract data from cmux browser surfaces.

3.7k installs
CM

cmux-markdown

manaflow-ai/cmux

Open markdown files in a formatted viewer panel with live reload. Use when you need to display plans, documentation, or notes alongside the terminal with rich rendering (headings, code blocks, tables, lists).

3.1k installsAudited
CM

cmux-workspace

manaflow-ai/cmux

Work inside the current cmux workspace and terminal. Use for cmux workspace, current workspace, caller surface, panes, surfaces, socket targeting, and non-interfering cmux automation.

2.2k installsAudited
CM

cmux-customization

manaflow-ai/cmux

Customize cmux for an end user. Use when changing cmux.json actions, custom commands, workspace layouts, plus-button behavior, surface tab bar buttons, Command Palette entries, Dock controls, sidebar and app settings, shortcuts, notifications, browser routing, examples-library presets, or Ghostty-backed terminal preferences.

2.1k installsAudited
CM

cmux-diagnostics

manaflow-ai/cmux

Run end-user cmux diagnostics. Use when cmux hooks, notifications, session restore, settings, browser automation, socket access, CLI control, or agent resume behavior is not working, or when the user asks for a cmux health check, doctor report, or support-safe debug summary.

2.1k installsAudited