Configuration
cmux lit la configuration depuis les fichiers de configuration Ghostty, vous offrant des options familières si vous venez de Ghostty.
Emplacements des fichiers de configuration
cmux cherche la configuration dans ces emplacements (dans l'ordre) :
~/.config/ghostty/config~/Library/Application Support/com.mitchellh.ghostty/config
Créez le fichier de configuration s'il n'existe pas :
mkdir -p ~/.config/ghostty
touch ~/.config/ghostty/configExemple de configuration
font-family = SF Mono
font-size = 13
sidebar-font-size = 14
surface-tab-bar-font-size = 11
theme = One Dark
scrollback-limit = 50000000
split-divider-color = #3e4451
working-directory = ~/codecmux.json
cmux keeps app-owned settings, shortcuts, actions, custom commands, and workspace layouts in ~/.config/cmux/cmux.json. Terminal rendering still lives in Ghostty config. On launch, if the file is missing, cmux writes a commented template there.
Open cmux Settings, then use the cmux.json section to open the canonical file in your preferred text editor.
~/.config/cmux/cmux.json.cmux/cmux.jsonin a project for project-scoped actions and workspace commands
~/.config/cmux/cmux.json settings override values saved in the Settings window. Legacy ~/.config/cmux/settings.json and Application Support settings files are read only as fallback for missing settings keys. Project-local .cmux/cmux.json can override actions, commands, UI action wiring, and notification hooks, but not global app preferences.Cmd+Shift+, or cmux reload-config to re-read it without restarting the app.schemaVersion at 1 for now. Future cmux versions will use that field for upgrades. If cmux sees a newer schema version, it logs a warning and parses known keys only.The file accepts JSON with comments and trailing commas. The canonical schema is published at https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json and the source lives at https://github.com/manaflow-ai/cmux/blob/main/web/data/cmux.schema.json.
{
"$schema": "https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json",
"schemaVersion": 1,
// "app": {
// "appearance": "dark",
// "menuBarOnly": false,
// "newWorkspacePlacement": "afterCurrent",
// "windowTitleTemplate": "[cmux:{windowToken}] {activeWorkspace}",
// "paneResizeStepPixels": 20,
// "confirmQuit": "always",
// "openSupportedFilesInCmux": true,
// "workspaceInheritWorkingDirectory": true,
// "iMessageMode": true
// },
// "terminal": {
// "showScrollBar": false,
// "copyOnSelect": true,
// "autoResumeAgentSessions": true,
// "showTextBoxOnNewTerminals": false,
// "focusTextBoxOnNewTerminals": false,
// "agentHibernation": {
// "enabled": false,
// "idleSeconds": 5,
// "maxLiveTerminals": 12
// },
// "textBoxMaxLines": 10
// },
// "browser": {
// "defaultSearchEngine": "kagi",
// // For an unlisted provider, set "defaultSearchEngine": "custom" and fill these:
// "customSearchEngineName": "My Search",
// "customSearchEngineURLTemplate": "https://search.example.com/?q={query}",
// "openTerminalLinksInCmuxBrowser": true,
// "hostsToOpenInEmbeddedBrowser": ["localhost", "*.internal.example"]
// },
// "markdown": {
// // Default body font size (points) for newly opened markdown viewers.
// // Zoom a viewer live with Cmd-+ / Cmd-- / Cmd-0.
// "fontSize": 15,
// // Default body font family. Empty keeps the system markdown font stack.
// "fontFamily": "",
// // Default maximum reading column width, in CSS pixels.
// "maxWidth": 980
// },
// "fileEditor": {
// // Wrap long lines at the editor's right edge instead of scrolling horizontally.
// "wordWrap": false
// },
// "fileExplorer": {
// // Double-clic sur un fichier : preview (par défaut), defaultEditor (app macOS par défaut) ou preferredEditor (commande app.preferredEditor).
// "doubleClickAction": "preview"
// },
// "automation": {
// "suppressSubagentNotifications": true
// },
// "workspaceColors": {
// "colors": {
// "Red": "#C0392B",
// "Blue": "#1565C0",
// "Neon Mint": "#00F5D4"
// }
// },
// "workspaceGroups": {
// "newWorkspacePlacement": "afterCurrent"
// },
// "agentChat": {
// "url": "http://127.0.0.1:7739",
// "startCommand": "cmux-chat"
// },
// "shortcuts": {
// "bindings": {
// "toggleSidebar": "cmd+b",
// "toggleFileExplorer": "cmd+opt+b",
// "toggleFileEditorWordWrap": "opt+z",
// "newTab": ["ctrl+b", "c"],
// "commandPalettePrevious": null
// }
// },
}Schema reference
This reference covers every supported global settings key in cmux.json. The embedded browser, terminal, sidebar, notifications, automation, and cmux-owned keyboard shortcuts all live here. Actions and workspace commands are documented on the custom commands page.
Metadata
$schemaOptional schema URL for editor completion and validation.
- Type
string- Default
"https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json"
schemaVersionSchema version for forward-compatible migrations. Newer versions are parsed on a best-effort basis.
- Type
integer- Default
1
app
General app preferences from Settings > App.
app.languagePreferred app language.
- Type
string- Default
"system"- Allowed values
system, en, ar, bs, zh-Hans, zh-Hant, da, de, es, fr, it, ja, ko, nb, pl, pt-BR, ru, th, tr
app.appearanceApp appearance mode.
- Type
string- Default
"system"- Allowed values
system, light, dark
app.accentColorAccent for cmux-drawn chrome: the selected workspace, attention ring and pane flash, agent status, pane swap, canvas focus, and scroll markers. "cmux" uses cmux blue; "system" follows the macOS accent color and updates when it changes; a "#RRGGBB" hex uses that color in light and dark mode. workspaceColors.selectionColor and notifications.paneFlashColor still override their parts. Native controls always use the macOS accent.
- Type
string | unknown- Default
"cmux"
app.appIconDock and app switcher icon style.
- Type
string- Default
"automatic"- Allowed values
automatic, light, dark
app.windowTitleTemplateModèle facultatif pour le titre NSWindow. Vide, il conserve le comportement de titre par défaut existant de cmux, y compris le repli sur le répertoire courant. Espaces réservés pris en charge : {windowId}, {windowToken}, {activeWorkspace}, {activeDirectory}, {defaultTitle}, {appName}.
- Type
string- Default
""
app.devWindowDisplayNom d’écran utilisé uniquement dans les builds DEBUG lors de l’ouverture de nouvelles fenêtres. Une valeur vide utilise la valeur par défaut du système.
- Type
string- Default
""
app.menuBarOnlyHide the Dock icon and app switcher entry while keeping cmux available from the menu bar.
- Type
boolean- Default
false
app.newWorkspacePlacementWhere new workspaces are inserted in the sidebar.
- Type
string- Default
"afterCurrent"- Allowed values
top, afterCurrent, end
app.goToWorkspaceOrderOrder used by Go to Workspace (Cmd-P): sidebar order, or most recently focused workspaces.
- Type
string- Default
"sidebar"- Allowed values
sidebar, recent
app.forkConversationDefaultDestinationDestination par défaut de l'action principale Fork Conversation dans le menu contextuel de l'onglet. Le sous-menu affiche toujours toutes les destinations.
- Type
string- Default
"right"- Allowed values
right, left, top, bottom, newTab, newWorkspace
app.workspaceInheritWorkingDirectoryWhen true, new workspaces inherit the current workspace working directory. When false, new workspaces use Ghostty's working-directory setting instead.
- Type
boolean- Default
true
app.minimalModeHide the workspace title bar and move controls into the sidebar.
- Type
boolean- Default
false
app.keepWorkspaceOpenWhenClosingLastSurfaceWhen true, closing the last surface keeps the workspace open.
- Type
boolean- Default
false
app.focusPaneOnFirstClickWhen cmux is inactive, the first click can activate and focus the clicked pane.
- Type
boolean- Default
false
app.paneResizeStepPixelsPixels moved per keypress when using pane-resize shortcuts. Accepts 1–200; defaults to 20. Changes apply immediately.
- Type
integer- Default
20
app.focusHistoryIncludesPanesAndTabsWhen true, Back and Forward include focus changes between panes and tabs. When false, they navigate between workspaces only.
- Type
boolean- Default
false
app.equalizeSplitsOnCreateWhen true, creating a split resizes the panes in that split's row or column to equal sizes. When false, a new split halves the pane it was created from.
- Type
boolean- Default
false
app.preferredEditorCustom editor command used when Cmd-click file previews are disabled or a file is unsupported. Leave empty to use the default.
- Type
string- Default
""
app.defaultWorkspacePathFolder the Open Folder panel starts in, for example ~/code. Supports a leading ~. Leave empty to start in the active workspace's directory.
- Type
string- Default
""
app.openSupportedFilesInCmuxWhen enabled, Cmd-clicking readable local files opens supported previews in cmux, including text, code, PDFs, images, audio, video, and Quick Look files. Preview headers include an Open With menu based on the user's default and compatible macOS apps for that file.
- Type
boolean- Default
true
app.openMarkdownInCmuxViewerWhen enabled, Cmd-clicking .md/.markdown/.mkd/.mdx files opens the rendered cmux markdown viewer panel (with live reload) instead of the generic file preview.
- Type
boolean- Default
true
app.globalFontMagnificationZoom en pourcentage appliqué à tout ce que cmux dessine lui-même : texte du terminal, titres d’onglets, barres latérales, Settings, superpositions et cadre de fenêtre. Les pages web affichées dans les surfaces de navigateur conservent leur propre taille.
- Type
integer- Default
100
app.reorderOnNotificationAutomatic workspace reordering. true or "notifications" moves workspaces with new notifications toward the top. "agentActivity" also moves them when a prompt is sent or an agent finishes a turn, needs input, or fails, at most once per burst and never while the pointer is over the sidebar. false or "off" keeps the order stable.
- Type
boolean | string- Default
true
app.iMessageModeMove a workspace to the top and show the submitted message when sending an agent prompt.
- Type
boolean- Default
false
app.sendAnonymousTelemetryAllow anonymous telemetry.
- Type
boolean- Default
true
app.confirmQuitContrôle quand cmux demande confirmation avant de quitter. Les builds DEV quittent toujours immédiatement, quel que soit ce réglage. L'ancien app.warnBeforeQuit reste accepté comme fallback booléen.
- Type
string- Default
"always"- Allowed values
always, dirty-only, never
app.warnBeforeQuitFallback booléen hérité pour la confirmation de fermeture. Utilisez app.confirmQuit pour les nouvelles configurations.
- Type
boolean- Default
true
app.warnBeforeClosingTabShow a confirmation before closing a tab.
- Type
boolean- Default
true
app.warnBeforeClosingAgentSessionShow a confirmation before closing an agent session while it is mid-turn.
- Type
boolean- Default
true
app.warnBeforeClosingTabXButtonAfficher une confirmation avant de fermer un onglet avec le bouton de fermeture d’onglet.
- Type
boolean- Default
false
app.warnBeforeClosingWorkspaceShow a confirmation before closing a workspace with a running process, or several workspaces at once. Pinned workspaces still ask when this is off.
- Type
boolean- Default
true
app.warnBeforeClosingWindowShow a confirmation before closing a window with a running process, or all of a window's workspaces at once.
- Type
boolean- Default
true
app.hideTabCloseButtonMasquer les boutons de fermeture d’onglet dans la barre d’onglets du volet.
- Type
boolean- Default
false
app.tabBarVisibilityDétermine quand un volet dessine sa barre d’onglets. "always" la dessine même pour un volet ne contenant qu’un onglet ; "multiple-tabs" la masque tant qu’un volet n’a qu’un onglet et la dessine dès qu’un deuxième onglet s’ouvre. Le mode minimal (app.minimalMode) la dessine toujours, car la barre d’onglets du volet supérieur y fait aussi office de barre de titre de la fenêtre.
- Type
string- Default
"always"- Allowed values
always, multiple-tabs
app.renameSelectsExistingNameSelect the current name when opening rename flows.
- Type
boolean- Default
true
app.commandPaletteSearchesAllSurfacesSearch every surface in the command palette switcher instead of only the active workspace.
- Type
boolean- Default
false
terminal
Terminal presentation settings from Settings > Terminal.
terminal.adaptiveDefaultThemeSi true (par défaut), cmux fournit une palette par défaut adaptée à l’apparence, sauf si un thème Ghostty ou des couleurs de terminal sont configurés. La police et les autres paramètres sont conservés. Si false, Ghostty utilise sa palette intégrée fixe. Les thèmes et couleurs explicites ont toujours la priorité, y compris theme = light:X,dark:Y.
- Type
boolean- Default
true
terminal.showScrollBarShow the right-edge terminal scroll bar when scrollback is available. cmux automatically suppresses it for alternate-screen style TUI surfaces.
- Type
boolean- Default
true
terminal.scrollSpeedRègle la distance parcourue par le terminal à chaque événement de défilement de la molette ou du trackpad. Une valeur supérieure à 1 accélère le défilement, une valeur inférieure à 1 le ralentit.
- Type
number- Default
1
terminal.sessionContentMaxWidthLargeur maximale facultative, en points, pour le contenu du terminal et du chat d’agent intégré. Définissez false pour utiliser toute la largeur du volet.
- Type
boolean | number- Default
false
terminal.sessionContentAlignmentPosition horizontale du contenu du terminal et du chat d’agent intégré lorsque sessionContentMaxWidth est activé.
- Type
string- Default
"center"- Allowed values
left, center, right
terminal.copyOnSelectLorsque la valeur est true, le texte sélectionné dans le terminal est copié dans le presse-papiers système quand la sélection est validée. Lorsque la valeur est false, cmux n’émet pas de remplacement Ghostty copy-on-select; la configuration et les valeurs par défaut de Ghostty contrôlent le comportement du presse-papiers de sélection.
- Type
boolean- Default
false
terminal.showCopyConfirmationBriefly show "Copied to clipboard" at the bottom of a terminal after selecting text copies it. Applies whether copyOnSelect or Ghostty's copy-on-select turned copying on. Copies made with a keyboard shortcut or by a program (OSC 52) never show it.
- Type
boolean- Default
false
terminal.reflowHardWrapOnCopyWhen true, copying terminal text also joins a line that exactly fills the terminal width onto the next line, undoing hard wraps a program inserted at the grid edge. Soft-wrapped rows are always joined.
- Type
boolean- Default
false
terminal.confirmUnsafePasteWhen true, a paste that Ghostty's clipboard-paste-protection flags as unsafe (for example, text with a line break going to a program that has not enabled bracketed paste) waits for confirmation in a sheet attached to the terminal's window. When false, cmux pastes it without asking. OSC 52 clipboard reads are not affected.
- Type
boolean- Default
false
terminal.textEditingGesturesReplay macOS text-editing gestures as line-editor keys at the shell prompt: Command and Option arrow keys move by line and word, and Command and Option Delete kill by line and word. While a full-screen application (vim, less, htop, tmux) has the terminal on the alternate screen, it gets the keys as if gestures were off, unless textEditingGesturesInFullScreenApps is on. Ghostty's own bindings still apply there, so Command+Left sends Ctrl+A and Option+Left sends Esc b.
- Type
boolean- Default
false
terminal.textEditingCommandMovesByWordWith textEditingGestures on, switch to a browser-style layout: Command arrow and Delete keys move and delete by word, like Option, and Control+Left/Right move to the start and end of the line. Every other Control chord, including Ctrl+W and Ctrl+C, still reaches the terminal. macOS reserves Control+Left/Right for switching Spaces by default; turn those off in System Settings > Keyboard > Keyboard Shortcuts > Mission Control for Control+arrows to reach cmux.
- Type
boolean- Default
false
terminal.textEditingGesturesInFullScreenAppsKeep textEditingGestures active while a full-screen application has the terminal on the alternate screen. tmux, screen, and zellij keep the outer terminal on the alternate screen even at their shell prompt, so turn this on to use gestures inside a multiplexer. Applications that bind the gesture chords themselves then receive the translated keys.
- Type
boolean- Default
false
terminal.showPasswordInputIndicatorShow a lock badge in the terminal corner while the foreground program has turned echo off for a password prompt (sudo, ssh, passwd, gpg). cmux draws the badge itself and never changes terminal text. Only prompts on the local terminal are detected: an ssh password prompt counts, but sudo run inside an ssh session does not. Changes apply to an open prompt at once.
- Type
boolean- Default
true
terminal.showPasswordInputDotsWhen the password input badge is shown, also draw one dot per typed character. cmux keeps only a count, never the typed characters. Backspace removes a dot; Enter or echo turning back on clears them. Pasted text is not counted.
- Type
boolean- Default
false
terminal.showJumpToBottomButtonRemoved. cmux no longer shows a Jump to Bottom button in terminal panes, and ignores this key. It stays in the schema so existing configs still validate.
- Type
boolean- Default
none
terminal.predictiveLocalEchoDraw typed characters immediately in a terminal whose shell runs on another machine (cmux ssh, Cloud, remote tmux) when the link is slow, underlined until the remote echo confirms them, and withdraw them if the remote disagrees. Local terminals, password prompts and full-screen apps are excluded.
- Type
boolean- Default
true
terminal.autoResumeAgentSessionsAutomatically run agent resume commands for restored terminal sessions when cmux reopens after quit. Set false to restore panes while keeping Claude Code, Codex, OpenCode, and other saved agent sessions idle until you resume them manually.
- Type
boolean- Default
true
terminal.showTextBoxOnNewTerminalsAffiche l'entrée TextBox par défaut pour les espaces de travail, onglets et divisions de terminal nouvellement créés.
- Type
boolean- Default
false
terminal.focusTextBoxOnNewTerminalsPlace le focus sur l'entrée TextBox par défaut pour les espaces de travail, onglets et divisions de terminal nouvellement créés. Le focus affiche aussi TextBox.
- Type
boolean- Default
false
terminal.agentHibernationRoutine Agent Hibernation settings. cmux kills idle background agent processes to free RAM and CPU, then resumes them with their saved session when their tab is visited. Routine hibernation requires a restorable coding agent whose lifecycle reports idle, an off-screen terminal, a live-terminal count above the configured limit, and unchanged output through the idle and confirmation windows. Independently, under memory pressure (critical pressure from macOS or from the cmux app's own footprint, or cmux's total memory use past its aggregate warning threshold) cmux may hibernate every safe idle background agent even when enabled is false; visible, running, needs-input, recently changed, and unprotectable agents remain excluded. The placeholder Resume button is a manual fallback.
- Type
object- Default
none
terminal.rendererRealizationReclaim off-screen terminal GPU renderer memory. cmux releases the Metal renderer (IOSurface) of a terminal that has stayed off-screen and idle while keeping its process and terminal state alive, then rebuilds the renderer instantly when the tab is visited again. Non-destructive and on by default.
- Type
object- Default
none
terminal.titleUpdatesTerminal title update throttling and diagnostics.
- Type
object- Default
none
terminal.runawayMemoryGuardrailPer-pane process-tree memory monitoring.
- Type
object- Default
none
terminal.textBoxMaxLinesMaximum number of lines the rich terminal TextBox input can grow to before it scrolls.
- Type
integer- Default
10
terminal.textBoxDefaultSubmitActionDefault TextBox submit action ID for new terminal sessions. Use text-entry for plain input or one of the configured action IDs.
- Type
string- Default
"text-entry"
terminal.textBoxSubmitActionsConfigurable TextBox submit actions shown on the submit button, Shift-Tab cycle, and right-click menu.
- Type
array<object>- Default
[]
terminal.resumeCommandsSigned command-prefix approvals for restoring non-agent terminal surfaces. cmux writes this list when you approve a surface resume command.
- Type
array<object>- Default
[]
terminal.uploadCommandsHost-scoped rules that replace the built-in scp for terminal file drops and pastes over SSH. When the ssh destination matches a rule, cmux runs that rule's command once per file instead of scp, and inserts the command's stdout at the cursor (verbatim, with control characters stripped); if the command prints nothing, cmux inserts the shell-escaped remote path it chose instead. Per-file outputs are space-joined. First matching enabled rule wins; no match runs the built-in scp unchanged. A non-zero exit, timeout, or cancel inserts nothing.
- Type
array<object>- Default
[]
notifications
Notification behavior from Settings > Notifications.
notifications.dockBadgeShow the unread count in the Dock tile.
- Type
boolean- Default
true
notifications.showInMenuBarShow the menu bar extra.
- Type
boolean- Default
true
notifications.unreadPaneRingHighlight panes with unread notifications.
- Type
boolean- Default
true
notifications.paneFlashFlash the focused pane when requested.
- Type
boolean- Default
true
notifications.paneFlashDoubleBlinkBlink the pane flash twice instead of one short pulse.
- Type
boolean- Default
true
notifications.paneFlashOnTypingFlash the pane when terminal typing dismisses its notification.
- Type
boolean- Default
true
notifications.paneFlashThemeColorUse the terminal theme foreground for flashes when paneFlashColor is unset. Unread rings remain cmux blue.
- Type
boolean- Default
false
notifications.paneFlashColorOverride the pane flash and unread notification ring color. Leave unset to use the accent from app.accentColor.
- Type
unknown- Default
null
notifications.soundWhenFocusedJouer le son de notification même lorsque le panneau à l’origine de la notification a déjà le focus. Désactivé par défaut : un panneau qui a le focus affiche seulement son anneau et son clignotement.
- Type
boolean- Default
false
notifications.suppressOnlyFocusedSurfaceLorsque cette option est activée, une bannière de notification n'est retirée automatiquement que lorsque sa surface est exactement la surface ayant le focus. Une bannière affichée pour une surface sans focus dans le workspace actuellement visible reste affichée jusqu'à ce que vous donniez le focus à cette surface (ou que vous cliquiez dessus / la fermiez), au lieu d'être retirée lorsque le workspace devient visible. Désactivée, cette option conserve l'ancien retrait basé sur la visibilité du workspace.
- Type
boolean- Default
false
notifications.suppressWhenAppFocusedLorsque cette option est activée, cmux ignore la bannière du bureau pour chaque notification tant que cmux est l'app active, et pas seulement pour le panneau ayant le focus. Les notifications apparaissent toujours dans la barre latérale, le son et la commande personnalisée sont toujours exécutés, et le transfert vers le téléphone reste inchangé. Désactivée, les bannières restent affichées pour les autres workspaces et panneaux lorsque cmux a le focus.
- Type
boolean- Default
false
notifications.agentPermissionPromptNotify when an agent (e.g. Claude Code) is blocked waiting for your permission to run a tool. On by default, since this is the alert you must act on to unblock the agent.
- Type
boolean- Default
true
notifications.agentTurnCompleteWhen to notify that an agent finished a turn. whenIdle (default) suppresses the notification while the agent still has a running background task or a pending scheduled wakeup, so you are pinged once work truly drains. always notifies on every turn end; never disables it.
- Type
string- Default
"whenIdle"- Allowed values
whenIdle, always, never
notifications.agentIdleReminderNotifier lorsqu’un agent est inactif et attend votre saisie (environ 60 secondes après la fin d’un tour). La notification est supprimée tant qu’un travail en arrière-plan du tour précédent est encore en attente, afin qu’un build ou un watcher en cours ne déclenche pas une fausse alerte d’attente.
- Type
boolean- Default
true
notifications.soundNotification sound preset.
- Type
string- Default
"default"- Allowed values
default, Basso, Blow, Bottle, Frog, Funk, Glass, Hero, Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink, custom_file, none
notifications.customSoundFilePathLocal path to the custom notification sound file.
- Type
string- Default
""
notifications.soundOverridesRemplacements ponctuels du son de notification par agent et par type d’alerte. Les cellules absentes utilisent notifications.sound.
- Type
object- Default
{}
notifications.commandOptional shell command to run alongside notification delivery.
- Type
string- Default
""
notifications.hooksModeControls whether project-local notification hooks append to inherited hooks or replace them.
- Type
string- Default
"append"- Allowed values
append, replace
notifications.hooksComposable shell hooks that receive notification policy JSON on stdin and return updated policy JSON on stdout.
- Type
array<object>- Default
[]
sidebar
Sidebar content and metadata visibility from Settings > Sidebar.
sidebar.fontSizeSidebar font size in points. The legacy Ghostty key sidebar-font-size remains a fallback alias.
- Type
number- Default
12.5
sidebar.hideAllDetailsHide all per-workspace detail rows.
- Type
boolean- Default
false
sidebar.wrapWorkspaceTitlesAllow workspace titles in the sidebar to wrap to multiple lines instead of truncating after one line.
- Type
boolean- Default
false
sidebar.showWorkspaceDescriptionShow custom workspace descriptions in the sidebar.
- Type
boolean- Default
true
sidebar.workspaceDescriptionColorOverride the workspace description text color in the sidebar.
- Type
unknown- Default
null
sidebar.betaExperimental sidebar features.
- Type
object- Default
none
sidebar.branchLayoutShow git branch details stacked vertically or inline.
- Type
string- Default
"vertical"- Allowed values
vertical, inline
sidebar.branchVerticalLayoutShow git branch details stacked vertically when true, or inline when false. This boolean form is the canonical setting; branchLayout remains supported as a legacy alias.
- Type
boolean- Default
true
sidebar.stackBranchDirectoryRender the git branch and working directory on separate lines instead of sharing one line.
- Type
boolean- Default
false
sidebar.pathLastSegmentOnlyTruncate sidebar paths from the start, showing as much of the trailing path as fits with a leading …/. When false, full paths are abbreviated with ~/.
- Type
boolean- Default
false
sidebar.showNotificationMessageShow the latest notification text in the sidebar.
- Type
boolean- Default
true
sidebar.notificationMessageLineLimitNombre maximal de lignes affichées pour la notification la plus récente sous le titre de chaque espace de travail.
- Type
integer- Default
12
sidebar.showBranchDirectoryShow the workspace working directory.
- Type
boolean- Default
true
sidebar.showCloudDeviceIconsAfficher les icônes des machines Cloud et des appareils à côté des titres des espaces de travail distants, indépendamment des détails de branche Git et de répertoire.
- Type
boolean- Default
true
sidebar.showPullRequestsShow pull request metadata in the sidebar.
- Type
boolean- Default
true
sidebar.watchGitStatusWatch repository files for sidebar branch and pull request metadata without polling git.
- Type
boolean- Default
true
sidebar.makePullRequestsClickableAllow sidebar pull request metadata to open links when clicked.
- Type
boolean- Default
true
sidebar.openPullRequestLinksInCmuxBrowserOpen sidebar pull request links in the embedded cmux browser.
- Type
boolean- Default
true
sidebar.openPortLinksInCmuxBrowserOpen sidebar port links in the embedded cmux browser.
- Type
boolean- Default
true
sidebar.showSSHShow SSH connection details.
- Type
boolean- Default
true
sidebar.showPortsShow listening ports.
- Type
boolean- Default
true
sidebar.showLogShow recent log snippets.
- Type
boolean- Default
true
sidebar.showProgressShow progress indicators.
- Type
boolean- Default
true
sidebar.showAgentUsageAjoute l’utilisation de l’agent de code à l’entrée d’état Claude Code ou Codex : le modèle et la fenêtre de contexte consommée, et pour Claude Code un coût d’API estimé (thread principal et sous-agents) aux tarifs publics d’Anthropic. Ce coût est une estimation, pas votre facture d’abonnement ; les niveaux batch et priority, les tarifs partenaires, le mode rapide et les frais d’outils serveur ne sont pas pris en compte.
- Type
boolean- Default
false
sidebar.showAgentActivityShow the loading spinner on workspaces with running coding agents or active loaders.
- Type
boolean- Default
true
sidebar.loadingSpinnerPositionWhich side of the workspace row the loading spinner appears on: leading (left, sharing the unread-badge slot) or trailing (right).
- Type
string- Default
"leading"- Allowed values
leading, trailing
sidebar.notificationBadgePositionWhich side of the workspace row the unread notification badge appears on: leading (left) or trailing (right).
- Type
string- Default
"leading"- Allowed values
leading, trailing
sidebar.showCustomMetadataShow custom metadata pills.
- Type
boolean- Default
true
sidebar.compactAgentStatusAfficher chaque espace de travail sur une seule ligne : une icône colorée avant le titre indique l’état de l’agent, des éléments non lus et de la pull request, et remplace les lignes de statut des agents (par exemple En cours ou Saisie requise), la ligne de branche et de dossier et les lignes de pull request, dont les détails passent dans l’infobulle de l’icône. Les autres entrées de statut gardent leurs lignes.
- Type
boolean- Default
false
sidebar.compactStatusIconsNoms de SF Symbols qui remplacent le glyphe compactAgentStatus pour chaque état, par exemple {"terminal": "apple.terminal", "needsInput": "hand.raised.fill"}. Les états non définis gardent le symbole intégré, et un nom qui ne s’affiche pas revient à celui-ci.
- Type
object- Default
{}
sidebar.activeTabIndicatorStyleActive workspace indicator style in the sidebar.
- Type
string- Default
"leftRail"- Allowed values
leftRail, solidFill, rail, border, wash, lift, typography, washRail, blueWashColorRail
sidebar.selectionColorOverride the selected workspace background color in the sidebar.
- Type
unknown- Default
null
sidebar.notificationBadgeColorOverride the unread notification badge color in the sidebar.
- Type
unknown- Default
null
sidebar.rightMaxWidthLargeur maximale en points de la barre latérale droite. Si elle est omise, la limite dynamique intégrée s’applique.
- Type
number- Default
none
workspaceGroups
Per-cwd customization for sidebar workspace groups. The anchor workspace's cwd is matched against the keys in `byCwd`; longest-match wins. Keys containing `*` or `?` are matched as fnmatch globs (with `~` expanded); other keys are path prefixes.
workspaceGroups.newWorkspacePlacementValeur globale par défaut indiquant où Cmd-N dans un groupe, le bouton + de l’en-tête du groupe et les actions de groupe configurées placent le nouveau workspace : `afterCurrent` (après le workspace actif du groupe, avec repli sur top), `top` (deuxième position, juste après l’ancre) ou `end` (après le dernier membre).
- Type
string- Default
"afterCurrent"- Allowed values
afterCurrent, top, end
workspaceGroups.byCwdMap of cwd patterns to group customization. Empty when omitted.
- Type
object- Default
none
workspaceColors
Workspace tab and badge colors from Settings > Workspace Colors.
workspaceColors.indicatorStyleActive workspace indicator style. Legacy aliases are accepted and normalized.
- Type
string- Default
"leftRail"- Allowed values
leftRail, solidFill, rail, border, wash, lift, typography, washRail, blueWashColorRail
workspaceColors.selectionColorOverride the selected workspace background color.
- Type
unknown- Default
null
workspaceColors.subtleSelectionShow the selected workspace as a faint accent tint with a thin edge instead of a solid fill. A custom selectionColor still uses a solid fill.
- Type
boolean- Default
false
workspaceColors.brightenInDarkModeLighten workspace colors in dark mode so they stay readable on a dark sidebar. false shows colors exactly as chosen. Applies to the solidFill indicator; leftRail always lightens its rail.
- Type
boolean- Default
true
workspaceColors.notificationBadgeColorOverride the unread notification badge color.
- Type
unknown- Default
null
workspaceColors.colorsFull named workspace color palette. Include built-in entries you want to keep, remove keys to remove colors, and add more named entries to extend the picker.
- Type
object- Default
{ "Red": "#C0392B", "Crimson": "#922B21", "Orange": "#A04000", "Amber": "#7D6608", "Olive": "#4A5C18", "Green": "#196F3D", "Teal": "#006B6B", "Aqua": "#0E6B8C", "Blue": "#1565C0", "Navy": "#1A5276", "Indigo": "#283593", "Purple": "#6A1B9A", "Magenta": "#AD1457", "Rose": "#880E4F", "Brown": "#7B3F00", "Charcoal": "#3E4B5E" }
workspaceColors.paletteOverridesLegacy workspace color overrides for built-in palette names. Prefer workspaceColors.colors for new configs.
- Type
object- Default
{}
workspaceColors.customColorsLegacy list of custom workspace colors. Prefer workspaceColors.colors for new configs.
- Type
array<unknown>- Default
[]
workspaceColors.colors is the full palette. Keep the built-in keys you want, delete keys to remove colors from the picker, and add more named color entries to extend it. Older paletteOverrides and customColors files still parse during upgrades, but new files should use colors.
{
"workspaceColors": {
"colors": {
"Red": "#C0392B",
"Blue": "#1565C0",
"Neon Mint": "#00F5D4"
}
}
}sidebarAppearance
Sidebar tint settings from Settings > Sidebar Appearance.
sidebarAppearance.matchTerminalBackgroundUse the terminal background instead of the sidebar tint.
- Type
boolean- Default
true
sidebarAppearance.tintColorBase sidebar tint color used when light/dark overrides are not set.
- Type
unknown- Default
"#000000"
sidebarAppearance.lightModeTintColorSidebar tint override for light appearance.
- Type
unknown- Default
null
sidebarAppearance.darkModeTintColorSidebar tint override for dark appearance.
- Type
unknown- Default
null
sidebarAppearance.tintOpacitySidebar tint opacity from 0 to 1. Note: this only controls the sidebar tint, not terminal/window transparency. For terminal background transparency or blur, set `background-opacity` and `background-blur` in `~/.config/ghostty/config` and run `cmux reload-config`.
- Type
number- Default
0.18
automation
Socket control and automation settings from Settings > Automation.
automation.socketControlModeSocket control mode. Legacy aliases are accepted and normalized.
- Type
string- Default
"cmuxOnly"- Allowed values
off, cmuxOnly, automation, password, allowAll, openAccess, fullOpenAccess, notifications, full
automation.socketPasswordPassword for password-mode socket access. Use null or an empty string to clear it.
- Type
string | null- Default
""
automation.claudeCodeIntegrationEnable cmux integration hooks for Claude Code.
- Type
boolean- Default
true
automation.codexIntegrationEnable cmux integration hooks for Codex. When disabled, cmux no longer wraps the codex command but still tracks live Codex sessions it can observe.
- Type
boolean- Default
true
automation.canonicalAgentScratchUse a cmux-owned scratch directory for native agent panels, organized per session.
- Type
boolean- Default
false
automation.piIntegrationEnable cmux integration hooks for Pi.
- Type
boolean- Default
true
automation.claudeBinaryPathCustom path to the claude binary.
- Type
string- Default
""
automation.workspaceAutoNamingNommage automatique optionnel des espaces de travail et des onglets par IA à partir du contenu des conversations de l'agent. Lorsqu'il est activé, cmux résume les sessions d'agents pris en charge en titres courts à l'aide du binaire propre à chaque agent ; les renommages manuels priment toujours.
- Type
boolean- Default
false
automation.autoNamingAgentQuel agent génère les noms automatiques pour chaque session. « auto » (par défaut) nomme chaque session avec son propre agent ; n'importe quel identifiant d'agent (claude, codex, grok, opencode, pi, omp, …) remplace le nommage pour toutes les sessions, même celles d'autres agents. Les agents non pilotables ou non installés se rabattent sur l'agent propre à la session, de sorte que le nommage n'échoue jamais.
- Type
string- Default
"auto"
automation.ripgrepBinaryPathCustom path to the ripgrep (rg) binary used by project search.
- Type
string- Default
""
automation.suppressSubagentNotificationsMasque les notifications visibles de fin et les changements d’état des agents enfants Codex ou Claude imbriqués, tout en conservant leurs événements dans la télémétrie Feed.
- Type
boolean- Default
true
automation.agentAutoResumeEnvoie `continue`, avec un délai progressif, à un agent lancé par cmux dont le tour s’est terminé sur une erreur amont réessayable (modèle saturé, surchargé ou connexion perdue). Les tours en attente d’une personne ne sont jamais relancés.
- Type
boolean- Default
true
automation.ampIntegrationActive ou désactive les hooks cmux pour Amp. Une fois désactivés, le plugin fourni reste installé mais inactif.
- Type
boolean- Default
true
automation.cursorIntegrationEnable cmux integration hooks for Cursor.
- Type
boolean- Default
true
automation.geminiIntegrationEnable cmux integration hooks for Gemini.
- Type
boolean- Default
true
automation.kiroIntegrationEnable cmux integration hooks for Kiro CLI.
- Type
boolean- Default
true
automation.kiroNotificationLevelControls how many Kiro tool events appear in Feed.
- Type
string- Default
"standard"- Allowed values
minimal, standard, verbose
automation.portBaseStarting value for workspace CMUX_PORT assignments.
- Type
integer- Default
9100
automation.portRangeNumber of ports reserved per workspace.
- Type
integer- Default
10
ui
UI action wiring, including surface tab bar buttons and plus-button behavior. The plus-button context menu shows ui.newWorkspace.contextMenu (or the default items) followed by actions that opt in via newWorkspaceMenu.
ui.newWorkspaceNew Workspace button behavior and context-menu wiring.
- Type
object- Default
none
agentChat
Agent Chat GUI server settings. The built-in New agent chat action opens this URL in a browser workspace, probes /healthz first, and can run a configured start command when the server is down.
agentChat.urlBase URL for the machine-local Agent Chat GUI server. cmux probes <url>/healthz before opening the workspace.
- Type
string- Default
"http://127.0.0.1:7739"
agentChat.startCommandOptional shell command to start the Agent Chat server when <url>/healthz is unreachable. cmux runs it detached with the user's SHELL, polls healthz for a short bounded window, then opens the workspace either way.
- Type
string- Default
none
agentChat.keysKeyboard behavior overrides for the Agent Chat web UI.
- Type
object- Default
none
agentChat.fontsFont overrides for the Agent Chat web UI. Omitted values fall back to Ghostty and built-in defaults.
- Type
object- Default
none
browser
Embedded browser settings from Settings > Browser.
browser.defaultSearchEngineMoteur de recherche par défaut pour les saisies de la barre d’adresse du navigateur qui ne sont pas des URL. Utilisez custom avec customSearchEngineURLTemplate pour d’autres fournisseurs.
- Type
string- Default
"google"- Allowed values
google, duckduckgo, bing, kagi, startpage, brave, perplexity, exa, yahoo, ecosia, qwant, mojeek, wikipedia, github, baidu, yandex, custom
browser.customSearchEngineNameNom affiché lorsque defaultSearchEngine vaut custom.
- Type
string- Default
""
browser.customSearchEngineURLTemplateURL de recherche utilisée lorsque defaultSearchEngine vaut custom. Incluez l’espace réservé de requête ou %s pour la requête encodée. Sans espace réservé, cmux ajoute q= à l’URL.
- Type
string- Default
"https://www.google.com/search?q={query}"
browser.showSearchSuggestionsShow omnibar search suggestions.
- Type
boolean- Default
true
browser.themeEmbedded browser theme.
- Type
string- Default
"system"- Allowed values
system, light, dark
browser.defaultZoomLevelDefault page zoom factor applied to newly opened browser pages (1 = 100%). Zoom In, Zoom Out, and Actual Size still adjust each page.
- Type
number- Default
1
browser.discardHiddenWebViewsAllow hidden browser tabs to release page memory. Scroll position, supported form input, and history are restored when recoverable.
- Type
boolean- Default
true
browser.hiddenWebViewDiscardModeHow cmux picks hidden browser tabs to free. budget frees the tabs hidden longest once hidden tabs use more than hiddenWebViewMemoryBudgetMB; timer frees every tab hidden longer than hiddenWebViewDiscardDelaySeconds.
- Type
string- Default
"budget"- Allowed values
budget, timer
browser.hiddenWebViewMemoryBudgetMBMegabytes of memory hidden browser tabs may use before cmux frees the tabs hidden longest. Applies when hiddenWebViewDiscardMode is budget.
- Type
integer- Default
2048
browser.hiddenWebViewDiscardDelaySecondsSeconds a browser tab must stay hidden before cmux may free its page memory. In timer mode, every tab hidden this long is freed.
- Type
number- Default
300
browser.autoRestoreUnloadedPagesRestore a browser page unloaded to save memory, or whose web process ended while hidden, as soon as its tab is shown. When false, the tab shows the page's last snapshot until you click Restore.
- Type
boolean- Default
true
browser.askWhereToSaveDownloadsShow a save panel for browser downloads instead of saving directly to Downloads.
- Type
boolean- Default
false
browser.showLinkHoverURLAffiche la destination d’un lien en bas à gauche du panneau du navigateur lorsque le pointeur survole le lien ou que le lien a le focus clavier.
- Type
boolean- Default
true
browser.openTerminalLinksInCmuxBrowserOpen clicked terminal links in the embedded browser.
- Type
boolean- Default
true
browser.interceptTerminalOpenCommandInCmuxBrowserIntercept terminal open http(s) commands and route them through the embedded browser.
- Type
boolean- Default
true
browser.hostsToOpenInEmbeddedBrowserAllowlist of hosts that should stay inside the embedded browser.
- Type
array<string>- Default
[]
browser.urlsToAlwaysOpenExternallyRules that always open matching URLs in the system browser.
- Type
array<string>- Default
[]
browser.insecureHttpHostsAllowedInEmbeddedBrowserHTTP hosts allowed in the embedded browser without a warning prompt.
- Type
array<string>- Default
[ "localhost", "*.localhost", "127.0.0.1", "::1", "0.0.0.0", "*.localtest.me" ]
browser.urlAllowlistMotifs d’hôte ou d’URL qui limitent la navigation du navigateur intégré. Les réglages suggèrent les origines de développement local ; enregistrer une liste active la restriction facultative. Supprimez des entrées pour les bloquer ou laissez la valeur utilisateur vide, sans politique gérée, pour désactiver la restriction.
- Type
array<string>- Default
[ "localhost", "*.localhost", "127.0.0.1", "::1", "0.0.0.0", "*.localtest.me" ]
browser.showImportHintOnBlankTabsShow the browser import hint on blank tabs.
- Type
boolean- Default
true
browser.reactGrabVersionPinned react-grab version for the browser toolbar helper.
- Type
string- Default
"0.1.29"
markdown
Built-in markdown viewer settings.
markdown.fontSizeDefault body font size, in points, for newly opened markdown viewers. Zoom a viewer live with Cmd-+ / Cmd-- / Cmd-0.
- Type
integer- Default
15
markdown.fontFamilyDefault body font family for newly opened markdown viewers. Leave empty for the system markdown font stack.
- Type
string- Default
""
markdown.maxWidthDefault maximum reading column width, in CSS pixels, for newly opened markdown viewers.
- Type
integer- Default
980
fileEditor
Built-in file editor settings.
fileEditor.wordWrapRenvoie à la ligne visuellement les lignes plus larges que l’éditeur, pour éviter tout défilement horizontal.
- Type
boolean- Default
false
fileEditor.syntaxHighlightingApplique une coloration adaptée au langage au code ouvert dans l’éditeur de fichiers intégré.
- Type
boolean- Default
true
fileEditor.lineNumbersNumérote chaque ligne dans une colonne à côté du texte de l’éditeur de fichiers intégré.
- Type
boolean- Default
true
fileEditor.indentGuidesMarque chaque niveau d’indentation d’une fine ligne verticale dans l’éditeur de fichiers intégré.
- Type
boolean- Default
true
fileEditor.currentLineHighlightColore la ligne qui contient le curseur de texte tant que rien n’est sélectionné.
- Type
boolean- Default
true
fileEditor.tabWidthNombre de colonnes couvertes par une tabulation. Les guides d’indentation utilisent le même espacement.
- Type
integer- Default
4
fileExplorer
Paramètres de l’explorateur de fichiers (arborescence) dans la barre latérale droite.
fileExplorer.doubleClickActionCe que fait un double-clic (ou l’appui sur Return dans un résultat de recherche) sur un fichier dans l’explorateur de fichiers. `preview` ouvre l’aperçu de fichier intégré à cmux (comportement par défaut et historique). `defaultEditor` ouvre le fichier avec l’app macOS par défaut pour ce type de fichier. `preferredEditor` ouvre avec la commande `app.preferredEditor`, avec repli vers l’app par défaut lorsqu’aucune commande n’est définie. S’applique uniquement aux fichiers ; les dossiers se développent/se replient toujours, et les explorateurs de fichiers non locaux (distants) ouvrent toujours l’aperçu cmux.
- Type
string- Default
"preview"- Allowed values
preview, defaultEditor, preferredEditor
shortcuts
Keyboard shortcut settings from Settings > Keyboard Shortcuts.
shortcuts.showModifierHoldHintsAffiche les pastilles d’indication de raccourcis pendant que Cmd ou Control est maintenu enfoncé.
- Type
boolean- Default
true
shortcuts.whenPrédicats de contexte facultatifs par action (clauses `when` de style VS Code), indexés par identifiant d'action cmux. Chaque valeur est une expression booléenne sur des clés de contexte, combinée avec !, &&, || et des parenthèses. Clés booléennes : sidebarFocus, browserFocus, markdownFocus, filePreviewTextEditorFocus, simulatorFocus, terminalFocus, commandPaletteVisible, terminalFindVisible, terminalAlternateScreen, workspaceCanvasLayout. Les clés typées acceptent des comparaisons : la chaîne sidebarMode (files, find, sessions, feed ou dock) et les entiers paneCount et workspaceCount. Les opérateurs de comparaison sont ==, !=, =~ (expression régulière), <, <=, >, >= et `in [a, b]` ; une clé inconnue ou absente vaut false. Les littéraux booléens true et false sont également acceptés ; `key == false` équivaut à `!key`. Le raccourci de l'action ne se déclenche (et n'entre en conflit avec d'autres raccourcis) que lorsque la clause est vraie. Exemples : { "selectWorkspaceByNumber": "!sidebarFocus" } sélectionne les espaces de travail avec Ctrl+1–9 partout sauf lorsque la barre latérale droite a le focus ; { "selectSurfaceByNumber": "sidebarMode == 'find' && paneCount > 1" } limite une liaison à la barre latérale Rechercher lorsque l'espace de travail comporte plusieurs panneaux.
- Type
object- Default
{}
shortcuts.bindings
Use a string for a single shortcut, a two-item array for a chord, or null to unbind a shortcut in shortcuts.bindings. Unbind aliases also include empty string (""), none, clear, unbound, and disabled. Example chord: ["ctrl+b", "c"]. Numbered actions use 1 as the stored default and still match digits 1 through 9.
The defaults below are the same cmux-owned actions listed on the keyboard shortcuts page.
App
openSettingsSettings
cmd+,openTeamPickerOuvrir le sélecteur d’équipes
opt+shift+cmd+treloadConfigurationReload configuration
cmd+shift+,showHideAllWindowsShow/hide all cmux windowssystem-wide hotkey
ctrl+opt+cmd+.globalSearchGlobal searchwhen cmux is active
opt+cmd+fcommandPaletteCommand palette
cmd+shift+pagentInboxAfficher la boîte de réception des agents
cmd+shift+icommandPaletteNextCommand palette next resultwhen the command palette is open
ctrl+ncommandPalettePreviousCommand palette previous resultwhen the command palette is open
ctrl+pnewWindowNew window
cmd+shift+ncloseWindowClose window
ctrl+cmd+wtoggleFullScreenToggle full screen
ctrl+cmd+fsendFeedbackSend feedbackunbound by default
reopenPreviousSessionReopen previous session
cmd+shift+oquitQuit cmux
cmd+qEspaces de travail
toggleSidebarToggle left sidebar
cmd+btoggleFileExplorerToggle right sidebar
cmd+opt+bnewTabNouvel espace de travail local
cmd+nnewLocalWorkspaceNouvel espace de travail localouvre un espace de travail local lorsqu’un espace de travail miroir tmux distant est actif, là où Nouvel espace de travail démarrerait une session sur l’hôte de cet espace
ctrl+opt+cmd+nnewBrowserWorkspaceNew browser workspacelike New Workspace, but the first surface is a browser pane with the address bar focused
opt+cmd+nnewCloudWorkspaceNouvel espace de travail cloudUtilise la machine du dernier espace de travail Cloud sélectionné, puis la première de la barre latérale droite ; si aucune machine utilisable n’existe, ouvre New Cloud Machine
cmd+ynewCloudMachineNouvelle machine cloud
shift+cmd+ysaveLayoutTemplateSave current workspace layout as a template
ctrl+cmd+sopenFolderOpen folder
cmd+ogoToWorkspaceGo to workspaceworkspace switcher
cmd+pnextSidebarTabNext workspace
ctrl+cmd+]prevSidebarTabPrevious workspace
ctrl+cmd+[nextSidebarTabInGroupNext workspace in groupunbound by default; skips the group anchor and uses window-wide cycling when ungrouped
prevSidebarTabInGroupPrevious workspace in groupunbound by default; skips the group anchor and uses window-wide cycling when ungrouped
moveWorkspaceUpMove workspace up
ctrl+opt+cmd+[moveWorkspaceDownMove workspace down
ctrl+opt+cmd+]focusHistoryBackFocus backFocus Back/Forward use Cmd+[ and Cmd+] outside browser panes; browser Back/Forward use the same defaults inside browser panes. Unbind Focus Back/Forward to let terminal shortcuts handle those keys.
cmd+[focusHistoryForwardFocus forwardFocus Back/Forward use Cmd+[ and Cmd+] outside browser panes; browser Back/Forward use the same defaults inside browser panes. Unbind Focus Back/Forward to let terminal shortcuts handle those keys.
cmd+]focusHistoryLastFocus lastunbound by default; toggles between the current position and the one focus last left, so pressing it twice returns where you started
selectWorkspaceByNumberSelect workspace 1…9
cmd+1renameWorkspaceRename workspace
cmd+shift+reditWorkspaceDescriptionEdit workspace description
opt+cmd+emarkWorkspaceDoneMark workspace as done
cmd+;cycleWorkspaceStatusCycle workspace status one lane forward
cmd+shift+;toggleChecklistItemCompleteToggle the highlighted checklist itemApplies in the focused todo pane or checklist popover.
cmd+enternewWorkspaceGroupNew empty workspace group
ctrl+cmd+ggroupSelectedWorkspacesGroup selected workspaces
cmd+shift+gtoggleFocusedWorkspaceGroupCollapsedCollapse or expand focused workspace group
ctrl+cmd+.focusSidebarFocus the workspace sidebar↑/↓ select workspaces; Return or Esc returns to the terminal
ctrl+cmd+eshowWindowHintsClick by hint: label the window's controlsType a label to click it, Shift+label to right-click; Esc cancels. Preview feature, off by default: turn on Click by Hint in Settings > Beta Features or from the command palette
cmd+jfocusRightSidebarToggle right-sidebar focus
cmd+shift+enavigateRightSidebarRowsNavigate focused sidebar rowsIn Files, H/L collapse and expand folders. Search starts with /.
j / kfileExplorerOpenSelectionOuvrir le fichier sélectionné ou basculer le dossierexplorateur de fichiers ciblé
enterfileExplorerOpenSelectionFinderAliasOuvrir le fichier sélectionné ou basculer le dossieralias de style Finder pour l'explorateur de fichiers ciblé
cmd+downcloseWorkspaceClose workspace
cmd+shift+wreopenClosedWorkspaceReopen closed workspaceunbound by default
Surfaces
newSurfaceNew surface
cmd+tnextSurfaceNext surface
cmd+shift+]prevSurfacePrevious surface
cmd+shift+[moveSurfaceLeftReorder surface left
opt+cmd+shift+[moveSurfaceRightReorder surface right
opt+cmd+shift+]moveSurfaceToPreviousPaneMove surface to previous pane
ctrl+cmd+shift+[moveSurfaceToNextPaneMove surface to next pane
ctrl+cmd+shift+]moveSurfaceToPaneLeftMove surface to pane on left
opt+cmd+shift+leftmoveSurfaceToPaneRightMove surface to pane on right
opt+cmd+shift+rightmoveSurfaceToPaneUpMove surface to pane above
opt+cmd+shift+upmoveSurfaceToPaneDownMove surface to pane below
opt+cmd+shift+downselectSurfaceByNumberSelect surface 1…9
ctrl+1renameTabRename tab
cmd+rcloseTabClose tab
cmd+wcloseOtherTabsInPaneClose other tabs in pane
opt+cmd+treopenClosedBrowserPanelReopen last closed
cmd+shift+ttoggleTerminalCopyModeToggle terminal copy mode
cmd+shift+mclearScreenKeepScrollbackClear screen (keep scrollback)
cmd+shift+ksimulatorHomeSimulator: Homefocused Simulator
cmd+shift+hsimulatorRotateLeftSimulator: rotate leftfocused Simulator
cmd+leftsimulatorRotateRightSimulator: rotate rightfocused Simulator
cmd+rightsimulatorToggleAppearanceSimulator: toggle appearancefocused Simulator
cmd+shift+asimulatorToggleSoftwareKeyboardSimulator: toggle software keyboardfocused Simulator
cmd+kfocusTextBoxInputSwitch focus between terminal and TextBox input
cmd+shift+acycleTextBoxSubmitActionCycle TextBox submit action
shift+tabattachTextBoxFileAttach file to TextBox input
opt+cmd+shift+asendCtrlFToTerminalSend Ctrl-F to terminalunbound by default; forwards Ctrl-F to the focused terminal (Claude Code: invoke twice to force-stop hung background agents)
sizeTerminalToMyWindowSize shared terminal to my windowwhen a terminal is shared with phones or other clients, makes this Mac's window set its grid
ctrl+opt+cmd+=pasteLastScreenshotColler la dernière capture d’écrannon attribué par défaut ; insère dans le terminal actif le chemin de la capture d’écran la plus récente du dossier de captures de macOS (le Bureau sauf modification), après l’avoir téléversée dans les espaces de travail distants
saveFilePreviewSave file previewfocused text preview
cmd+stoggleFileEditorWordWrapActiver ou désactiver le retour à la ligne de l’éditeur de fichierséditeur de fichiers actif
opt+zPanneaux divisés
focusLeftFocus pane left
opt+cmd+leftfocusRightFocus pane right
opt+cmd+rightfocusUpFocus pane up
opt+cmd+upfocusDownFocus pane down
opt+cmd+downfocusPreviousPaneFocus previous pane (cycle)unbound by default; a Ghostty goto_split:previous keybind also cycles panes while Focus Back does not claim the same keys
focusNextPaneFocus next pane (cycle)unbound by default; a Ghostty goto_split:next keybind also cycles panes while Focus Forward does not claim the same keys
focusPaneByNumberFocus pane 1…9
ctrl+cmd+1splitRightSplit right
cmd+dsplitDownSplit down
cmd+shift+dnewPaneAutoLayoutNew pane (auto layout)retiles all panes like Zellij and cmux-tui Alt-n: the right column fills to four panes before a new column opens
ctrl+cmd+nsplitBrowserRightSplit browser right
opt+cmd+dsplitBrowserDownSplit browser down
opt+cmd+shift+dtoggleSplitZoomToggle pane zoom
cmd+shift+enterincreaseWorkspaceTerminalFontSizeIncrease font size for every terminal in the selected workspace
ctrl+cmd+=decreaseWorkspaceTerminalFontSizeDecrease font size for every terminal in the selected workspace
ctrl+cmd+-resetWorkspaceTerminalFontSizeReset font size for every terminal in the selected workspace
ctrl+cmd+0equalizeSplitsEqualize split sizes
ctrl+cmd+shift+=resize-pane-leftResize pane left
ctrl+shift+hresize-pane-rightResize pane right
ctrl+shift+lresize-pane-upResize pane up
ctrl+shift+kresize-pane-downResize pane down
ctrl+shift+jCanevas
toggleCanvasLayoutToggle canvas layout
ctrl+cmd+ccanvasRevealFocusedPaneReveal focused pane
ctrl+cmd+rcanvasOverviewToggle overview zoom
ctrl+cmd+ocanvasZoomInZoom in
opt+cmd+=canvasZoomOutZoom out
opt+cmd+-canvasZoomResetActual size
cmd+0canvasTidyTidy panes into a grid
ctrl+cmd+tNavigateur
openBrowserOpen browser
cmd+shift+lfocusBrowserAddressBarFocus address bar
cmd+lbrowserBackBack
cmd+[browserForwardForward
cmd+]browserReloadReload pagefocused browser
cmd+rbrowserHardReloadActualisation forcée de la pagenavigateur ciblé
cmd+shift+rbrowserZoomInZoom in
cmd+=browserZoomOutZoom out
cmd+-browserZoomResetActual size
cmd+0markdownZoomInMarkdown viewer: zoom infocused markdown viewer
cmd+=markdownZoomOutMarkdown viewer: zoom outfocused markdown viewer
cmd+-markdownZoomResetMarkdown viewer: actual sizefocused markdown viewer
cmd+0toggleBrowserDeveloperToolsToggle browser developer tools
opt+cmd+ishowBrowserJavaScriptConsoleShow browser JavaScript console
opt+cmd+ctoggleBrowserFocusModeEnter browser focus modeGives the focused web page first claim on shortcuts. Press Esc twice to exit.
opt+cmd+entertoggleBrowserDesignModeToggle browser design modeSelect and visually edit elements in the focused browser
ctrl+opt+cmd+dtoggleReactGrabToggle React Grabfocused browser, or the only browser pane when a terminal is focused
cmd+shift+gVisionneuse de diff
openDiffViewerOpen diff viewer
ctrl+cmd+shift+ddiffViewerScrollDownScroll viewer down one smooth stepfocused diff or Markdown viewer
jdiffViewerScrollUpScroll viewer up one smooth stepfocused diff or Markdown viewer
kdiffViewerScrollHalfPageDownScroll viewer down half a pagefocused diff or Markdown viewer
ctrl+ddiffViewerScrollHalfPageUpScroll viewer up half a pagefocused diff or Markdown viewer
ctrl+udiffViewerScrollDownEmacsScroll viewer down one smooth step (Emacs)focused diff or Markdown viewer
ctrl+ndiffViewerScrollUpEmacsScroll viewer up one smooth step (Emacs)focused diff or Markdown viewer
ctrl+pdiffViewerScrollToBottomScroll diff to bottomfocused diff viewer
shift+gdiffViewerScrollToTopScroll diff to topfocused diff viewer
["g", "g"]diffViewerOpenFileSearchOpen diff file searchfocused diff viewer
/diffViewerNextFileJump to next diff filefocused diff viewer
["]", "f"]diffViewerPreviousFileJump to previous diff filefocused diff viewer
["[", "f"]]diffViewerNextHunkJump to next hunkfocused diff viewer
"n"diffViewerPreviousHunkJump to previous hunkfocused diff viewer
"p"diffViewerToggleViewedMarquer ou démarquer le fichier actuel comme consultévisionneuse de diff active
"v"Recherche
findFind
cmd+ffindInDirectoryFind in directory
cmd+shift+ffindNextFind next
cmd+gfindPreviousFind previous
opt+cmd+ghideFindHide find bar
opt+cmd+shift+fuseSelectionForFindUse selection for find
cmd+eNotifications
showNotificationsShow notifications
cmd+ijumpToUnreadJump to latest unread
cmd+shift+ujumpToLastPromptAller à la surface où vous avez envoyé votre dernier prompt à un agent
cmd+shift+btoggleUnreadToggle current item unread state
opt+cmd+umarkOldestUnreadAndJumpNextMark current item as oldest unread and jump to the next latest unread
ctrl+cmd+umarkAllNotificationsReadMarquer toutes les notifications comme luesnon attribué par défaut
clearAllNotificationsEffacer toutes les notificationsnon attribué par défaut
triggerFlashFlash focused panel
cmd+shift+hshortcuts.when
Prédicats de contexte facultatifs par action (clauses when de style VS Code), indexés par identifiant d'action cmux. Une liaison ne se déclenche — et n'entre en conflit avec une autre liaison sur la même frappe — que lorsque sa clause est vraie. Omettez la clause pour conserver le contexte intégré de l'action. Le vocabulaire des clauses :
sidebarFocus,browserFocus,markdownFocus,filePreviewTextEditorFocus,simulatorFocus,terminalFocus,commandPaletteVisible,terminalFindVisible,terminalAlternateScreen,workspaceCanvasLayout— clés booléennes. Une clé inconnue ou absente vaut false ; les littéraux true et false sont également acceptés.sidebarMode(files,find,sessions,feed,dock),paneCount,workspaceCount— clés typées pour les comparaisons : le mode actif de la barre latérale droite (chaîne) ainsi que le nombre de panneaux et d'espaces de travail (entiers).!,&&,||,(…),==,!=,=~,<,<=,>,>=,in [a, b]— opérateurs booléens, comparaisons typées, correspondance par expression régulière et appartenance à une liste. Les comparaisons lient plus fort que && et ||.
Par exemple, ceci fait que Ctrl+1–9 sélectionne les espaces de travail partout sauf lorsque la barre latérale droite a le focus (laissant Ctrl+1–5 au sélecteur de mode de la barre latérale), et limite la sélection de surface à la barre latérale Rechercher lorsque l'espace de travail comporte plusieurs panneaux :
"shortcuts": {
"bindings": { "selectWorkspaceByNumber": "ctrl+1" },
"when": {
"selectWorkspaceByNumber": "!sidebarFocus",
"selectSurfaceByNumber": "sidebarMode == 'find' && paneCount > 1"
}
}