cmux-workspace
cmux workspace
cmux-customization
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.
Full skill instructions
Use this skill for user-facing cmux customization. Keep the user's config intact, prefer schema-backed edits, and validate before reporting completion.
actions in cmux.json. Actions can appear in Cmd+Shift+P, surface tab bars, shortcuts, and the plus-button right-click menu.ui.newWorkspace.action to replace the normal plus-button click, and ui.newWorkspace.contextMenu to control right-click actions. ui.newWorkspace.rightClick is accepted as an alias, but new examples should use contextMenu.ui.surfaceTabBar.buttons to replace the default tab bar buttons. Include built-in IDs such as cmux.newTerminal, cmux.newBrowser, cmux.splitRight, and cmux.splitDown only when they should stay visible.commands with workspace definitions to open a worktree, multiple checkouts, local services, browser previews, or SSH sessions in a deliberate split layout..cmux/dock.json or ~/.config/cmux/dock.json for right-sidebar terminal controls such as logs, test watchers, git TUIs, dev servers, queues, or cmux feed tui --opentui.cmux-settings for supported settings such as appearance, sidebar display, notification behavior, browser routing, automation, shortcuts, and new-workspace placement.cmux-workspace for workspace names, descriptions, colors, read state, and sidebar metadata updates.cmux hooks setup for Feed event sources, notification settings for delivery behavior, and notification hooks in cmux.json for filtering or post-processing banners..cmux/cmux.json and .cmux/dock.json to share worktree, SSH, review, dev, CI, and docs workspace patterns with a repo.cmux-settings for global ~/.config/cmux/cmux.json settings such as appearance, sidebar, notifications, browser behavior, automation, and shortcuts.~/.config/cmux/cmux.json globally or .cmux/cmux.json in the project. Project-local actions and commands override global entries with the same ID or name..cmux/dock.json in the project or ~/.config/cmux/dock.json globally. Run cmux docs dock when available.~/.config/ghostty/config. This includes fonts, cursor style, copy-on-select, shell integration, themes, and terminal keybindings..cmux/cmux.json in the project so actions, commands, UI action wiring, and notification hooks travel with the repo. Do not put global app preferences there.If a request can be handled by Ghostty config, say that and use Ghostty config instead of inventing cmux UI settings.
For reusable patterns such as worktree agents, full-stack dev layouts, SSH
devboxes, PR review workspaces, docs workspaces, quick agent tab buttons, and
CI watches, read references/examples.md. Load it when the user asks for examples, presets,
templates, starter configs, or a known workflow shape.
Inspect existing config before editing.
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
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.
Before editing, back up the target file when it already exists:
stamp="$(date +%Y%m%d-%H%M%S)"
test -f ~/.config/cmux/cmux.json && cp -p ~/.config/cmux/cmux.json ~/.config/cmux/cmux.json."$stamp".bak
test -f .cmux/cmux.json && cp -p .cmux/cmux.json .cmux/cmux.json."$stamp".bak
Use the applicable path only. Do not create a backup for a missing file.
For app settings and cmux-owned shortcuts, use the settings helper from the installed skill or checkout:
~/.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.
For actions, UI wiring, workspace layouts, notification hooks, and Dock controls, edit JSONC or JSON carefully. Preserve unrelated sections such as vault, rightSidebar, commands, actions, ui, and notifications.
Reload config after successful edits:
cmux reload-config
Verify the configured entrypoint exists. For shortcuts, read back the binding. For custom actions, confirm the action ID and where it should appear.
Add a Command Palette action that opens Codex in a new tab. It will appear in Cmd+Shift+P unless palette is false:
{
"actions": {
"codex-new-tab": {
"type": "agent",
"agent": "codex",
"title": "Codex",
"subtitle": "Start Codex in this workspace",
"target": "newTabInCurrentPane",
"palette": true
}
}
}
Replace the plus-button click and define the plus-button right-click menu.
This is the pattern for "bring your own worktree, multiple checkouts, or SSH
setup". The workspaceCommand action ID is worktree-agents, and its
commandName must match a command named Worktree Agents in the same config:
{
"actions": {
"worktree-agents": {
"type": "workspaceCommand",
"title": "Worktree Agents",
"commandName": "Worktree Agents",
"icon": { "type": "symbol", "name": "folder.badge.plus" }
}
},
"ui": {
"newWorkspace": {
"action": "worktree-agents",
"contextMenu": [
{ "action": "worktree-agents", "title": "Worktree Agents" },
{ "type": "separator" },
{ "action": "cmux.newTerminal", "title": "New Terminal" },
{ "action": "cmux.newBrowser", "title": "New Browser" }
]
}
},
"commands": [
{
"name": "Worktree Agents",
"description": "Create a worktree and open agents inside it",
"workspace": {
"name": "Worktree Agents",
"cwd": "../worktrees/my-feature",
"layout": {
"direction": "horizontal",
"children": [
{
"pane": {
"surfaces": [
{ "type": "terminal", "name": "Codex", "command": "codex" }
]
}
},
{
"pane": {
"surfaces": [
{ "type": "terminal", "name": "SSH", "command": "ssh devbox" }
]
}
}
]
}
}
}
]
}
Add a project workspace layout:
{
"commands": [
{
"name": "dev",
"workspace": {
"name": "Dev",
"cwd": ".",
"layout": {
"direction": "horizontal",
"children": [
{ "pane": { "surfaces": [{ "type": "terminal", "command": "bun dev" }] } },
{ "pane": { "surfaces": [{ "type": "browser", "url": "http://localhost:3000" }] } }
]
}
}
}
]
}
Replace surface tab bar buttons:
{
"ui": {
"surfaceTabBar": {
"buttons": [
"cmux.newTerminal",
"cmux.newBrowser",
{
"action": "codex-new-tab",
"title": "Codex",
"icon": { "type": "symbol", "name": "terminal" }
}
]
}
}
}
Add project Dock controls:
{
"controls": [
{
"id": "git",
"title": "Git",
"command": "lazygit",
"cwd": ".",
"height": 300
},
{
"id": "feed",
"title": "Feed",
"command": "cmux feed tui --opentui",
"height": 260
}
]
}
cmux-settings validate..cmux/dock.json or ~/.config/cmux/dock.json with a JSON parser before reporting completion.cmux reload-config when the CLI is available.cmux workspace
cmux diagnostics
Guide and apply cmux keyboard shortcut customization. Use when the user asks to customize, rebind, unbind, reset, audit, or create shortcut templates for cmux, including tmux-style, Vim-style, terminal-first, browser-heavy, iTerm/Terminal-like, or agent-triage layouts.
cmux testing rules for Swift Testing, test target compilation, test wiring, and package/refactor validation. Use when adding or changing tests, touching package/refactor code, or deciding whether reload.sh is enough validation.
Contributor workflow rules for cmux setup, Xcode project normalization, tagged sidebar ExtensionKit development, and dev builds. Use when setting up the cmux repo, changing Xcode project files, adding sidebar extensions, or working with tagged debug builds.
cmux package architecture, refactor layering, dependency inversion, file organization, DocC documentation, package design discipline, testability, and Swift 6 concurrency rules. Use before adding or meaningfully rewriting Swift files, Swift packages, coordinators, services, repositories, or public package APIs.
Debug logging, Debug menu, runtime pitfalls, typing-latency-sensitive paths, SwiftUI list snapshot boundaries, OS-version repros, and local visual iteration for cmux. Use when adding debug probes, diagnosing UI/runtime issues, touching terminal rendering, tab/sidebar list views, drag/drop UTTypes, or using the Debug menu.
Build a custom cmux sidebar from a plain-language request. Use when the user asks for a custom sidebar, a sidebar that shows their workspaces/tabs/PRs/clock, a vibe-coded sidebar, or anything involving files in ~/.config/cmux/sidebars/. Covers authoring the interpreted SwiftUI-style file, enabling the beta flag, selecting it, and iterating with hot reload.
Backend TypeScript and Cloud VM development rules for cmux. Use when editing web/app/api, web/services, backend scripts, Cloud VM lifecycle, provider integrations, Postgres, Stack Auth pricing gates, migrations, or provider image build scripts.
Localization rules and audit workflow for cmux UI strings, settings rows, menus, shortcuts, schema/config text, docs, command/help text, alerts, tooltips, and web messages. Use whenever changing user-facing text.
Socket command threading and focus policy for cmux CLI/socket work. Use when adding or changing socket commands, CLI commands, telemetry commands, focus/select/open/close/send-key behavior, or automation that could steal app focus.
Ghostty submodule and GhosttyKit workflow rules for cmux. Use when modifying the ghostty submodule, rebuilding GhosttyKit.xcframework, updating the parent submodule pointer, or documenting fork conflict notes.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience