Repository navigation
Add customization and diagnostics skills #4222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
lawrencecchen
merged 4 commits into
main
from
task-end-user-skills-customization-diagnostics
May 16, 2026
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,121 @@ | ||
| --- | ||
| name: cmux-customization | ||
| description: "Customize cmux for an end user. Use when changing cmux.json actions, custom commands, workspace layouts, Command Palette entries, surface toolbar buttons, shortcuts, notifications, browser routing, appearance, or Ghostty-backed terminal preferences." | ||
| --- | ||
|
|
||
| # cmux Customization | ||
|
|
||
| Use this skill for user-facing cmux customization. Keep the user's config intact, prefer schema-backed edits, and validate before reporting completion. | ||
|
|
||
| ## Choose the Right Surface | ||
|
|
||
| - cmux app preferences: use `cmux-settings` for `~/.config/cmux/cmux.json` settings such as appearance, sidebar, notifications, browser behavior, automation, and shortcuts. | ||
| - Custom actions, workspace layouts, toolbar buttons, plus-button behavior, and Command Palette entries: edit `~/.config/cmux/cmux.json` globally or `.cmux/cmux.json` in the project. | ||
| - Terminal rendering and terminal keybindings: use Ghostty config, usually `~/.config/ghostty/config`. This includes fonts, cursor style, copy-on-select, shell integration, themes, and terminal keybindings. | ||
| - Project-specific behavior: prefer `.cmux/cmux.json` in the project so the customization travels with the repo. | ||
|
|
||
| If a request can be handled by Ghostty config, say that and use Ghostty config instead of inventing cmux UI settings. | ||
|
|
||
| ## Workflow | ||
|
|
||
| 1. Inspect existing config before editing. | ||
|
|
||
| ```bash | ||
| test -f ~/.config/cmux/cmux.json && sed -n '1,220p' ~/.config/cmux/cmux.json | ||
| test -f .cmux/cmux.json && sed -n '1,220p' .cmux/cmux.json | ||
| ``` | ||
|
|
||
| 2. Pick global or project-local scope. Ask only when the choice changes behavior meaningfully. Default to project-local for repo-specific commands and global for app preferences. | ||
| 3. For app settings and cmux-owned shortcuts, use the settings helper from the installed skill or checkout: | ||
|
|
||
| ```bash | ||
| ~/.agents/skills/cmux-settings/scripts/cmux-settings list-supported | ||
| ~/.agents/skills/cmux-settings/scripts/cmux-settings set browser.openTerminalLinksInCmuxBrowser true | ||
| ~/.agents/skills/cmux-settings/scripts/cmux-settings validate | ||
| ``` | ||
|
|
||
| If the user installed with `skills.sh`, use `~/.codex/skills/cmux-settings/scripts/cmux-settings` instead. | ||
| 4. For actions and workspace layouts, edit JSONC carefully. Preserve unrelated sections such as `vault`, `rightSidebar`, `commands`, `actions`, `ui`, and `notifications`. | ||
| 5. Reload config after successful edits: | ||
|
|
||
| ```bash | ||
| cmux reload-config | ||
| ``` | ||
|
|
||
| 6. Verify the configured entrypoint exists. For shortcuts, read back the binding. For custom actions, confirm the action ID and where it should appear. | ||
|
|
||
| ## Common Patterns | ||
|
|
||
| Add a Command Palette action that opens Codex in a new tab: | ||
|
|
||
| ```json | ||
| { | ||
| "actions": { | ||
| "codex-new-tab": { | ||
| "type": "agent", | ||
| "agent": "codex", | ||
| "title": "Codex", | ||
| "subtitle": "Start Codex in this workspace", | ||
| "target": "newTabInCurrentPane", | ||
| "palette": true | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| Add a project workspace layout: | ||
|
|
||
| ```json | ||
| { | ||
| "commands": [ | ||
| { | ||
| "name": "dev", | ||
| "type": "workspace", | ||
| "cwd": ".", | ||
| "layout": { | ||
| "type": "split", | ||
| "direction": "horizontal", | ||
| "children": [ | ||
| { "type": "pane", "surfaces": [{ "type": "terminal", "command": "bun dev" }] }, | ||
| { "type": "pane", "surfaces": [{ "type": "browser", "url": "http://localhost:3000" }] } | ||
| ] | ||
| } | ||
| } | ||
| ] | ||
| } | ||
| ``` | ||
|
|
||
| Add surface toolbar buttons: | ||
|
|
||
| ```json | ||
| { | ||
| "ui": { | ||
| "surfaceTabBar": { | ||
| "buttons": [ | ||
| "cmux.newTerminal", | ||
| "cmux.newBrowser", | ||
| { | ||
| "action": "codex-new-tab", | ||
| "title": "Codex", | ||
| "icon": { "type": "symbol", "name": "terminal" } | ||
| } | ||
| ] | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| ## Validation | ||
|
|
||
| - App settings: run `cmux-settings validate`. | ||
| - JSONC shape: keep valid JSONC and avoid duplicate keys. | ||
| - Runtime reload: run `cmux reload-config` when the CLI is available. | ||
| - User-facing action: confirm the action title, shortcut, or toolbar placement the user asked for. | ||
|
|
||
| ## Rules | ||
|
|
||
| - Do not overwrite whole top-level config sections unless you own the full section. | ||
| - Do not store secrets directly in actions, commands, or prompts. Use environment variables or the user's secret manager. | ||
| - Do not use app/runtime sleeps or timing workarounds in generated commands. | ||
| - Do not add a cmux setting for behavior Ghostty already owns. | ||
| - Keep labels short enough for menus, buttons, and the Command Palette. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| interface: | ||
| display_name: "cmux Customization" | ||
| short_description: "Customize cmux actions, settings, and layouts." | ||
| default_prompt: "Use $cmux-customization to add a project-specific cmux action and validate the config." |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
190 changes: 0 additions & 190 deletions
190
skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.