cmux-next palette: daily first, related commands folded, niche commands lower (palette audit)
Summary
An audit of the cmux NEXT command palette (Cmd-Shift-P), applied as ordering, not removal. Leo: keep the useful stuff, push the rest down, consolidate; nothing disappears from search.
- Tiers. Every palette action is daily, standard or niche (
ActionDescriptor+PaletteRank.swift, one table). Daily rows lead their section on the empty query and get +120 inside a match class while typing; niche rows close their section and get −120. A bias never crosses a match class, so a better match of a niche row still wins, and usage still lifts it. - Families. Related rows fold into one row on the empty query:
Workspace: Move…opens a page of the ten moves,Tab: Move…the fourteen, and so on (29 new rows). Where an action already opens the choices, it stands for them: Set Space Color… for the nine colors, Toggle Developer Tools for the 41 Developer Tools commands. Members stay search results, and the family row matches the members' titles. - Duplicates. Six pairs fold into the row people know, which matches the other title.
- Focus. A row the focused pane cannot run stays listed, last in its section, dimmed with the reason as its subtitle. Typing ranks it after every runnable row.
- Aliases. Built-in aliases
font,theme,backgroundandmachineact like a cmux.json alias: the whole word puts the command first. The user's own aliases for the same action come first. There is nosteercommand to alias yet: steering is the composer's Return key, and the composer-polish and steer-default lanes own its setting. - Recent and frequent rows already lead the palette (frecency, Recent, learned picks). This PR leaves that alone; tiers only order rows that tie on usage.
Before: 1,082 rows on the empty query, Window first, in catalog order. After: about 750 rows (families folded), daily first and unrunnable rows last in each section.
Classification
Full per-action table (1,082 rows, with default keys): plans/cmux-next/palette-audit.md. Rules: palette-ranking.md 5.4.
| Class | Rows | Empty query | Typing |
|---|---|---|---|
| a. daily | 43 | first in its section | +120 within a match tier |
| b. standard | 604 | its section, catalog order | unchanged |
| c. niche | 70 | last in its section | −120 within a match tier |
| c. family member | 359 | folded into its family row | matches, −120 |
| c. duplicate | 6 | folded into the row people know | matches, −120 |
| total | 1082 |
Daily: Change Background…, Check for Updates…, Close Pane, Close Tab, Close Workspace, Connect to Machine…, Customize Appearance…, Decrease Font Size, Equalize Splits, Find in Directory…, Find…, Go to Workspace…, Increase Font Size, Jump to Latest Unread, New Agent Chat, New Browser Tab, New Cloud Workspace, New Tab, New Window, New Workspace, New Workspace on Machine…, Open Diff Viewer, Open File…, Open Folder…, Open Keyboard Shortcuts, Recently Closed…, Reload Configuration, Rename Tab…, Rename Workspace…, Reopen Closed Workspace, Reopen Last Closed Tab, Search All Windows…, Search Chats & Agents…, Search Tabs…, Set Terminal Theme…, Settings…, Split Down, Split Right, Start Agent…, Toggle Left Sidebar, Toggle Pane Zoom, Toggle Right Sidebar, Toggle Setting…
| Family row | Opens | Members |
|---|---|---|
| Workspace: Move… | its own page | 10: Move Workspace Up, Move Workspace Down, Move Workspace to Top, Move Workspace to Bottom… |
| Workspace: New or Duplicate… | its own page | 9: New Workspace Above, New Workspace Below, New Workspace at Top, New Workspace at Bottom… |
| Workspace: Close Several… | its own page | 6: Close Other Workspaces, Close Workspaces Above, Close Workspaces Below, Close All Workspaces… |
| Workspace: Sort… | its own page | 3: Sort Workspaces by Directory, Sort Workspaces by Last Used, Sort Workspaces by Name |
| Workspace Group: Move… | its own page | 7: Move Workspace Group Up, Move Workspace Group Down, Move Workspace Group to Top, Move Workspace Group to Bottom… |
| Workspace Group: Sort… | its own page | 3: Sort Group by Directory, Sort Group by Last Used, Sort Group by Name |
| Tab: Move… | its own page | 14: Move Tab Left, Move Tab Right, Move Tab to Next Pane, Move Tab to Previous Pane… |
| Tab: New in Position… | its own page | 6: New Tab After Current Tab, New Tab at End, New Tab at Start, New Tab to the Right… |
| Tab: Close Several… | its own page | 3: Close Other Tabs, Close Tabs to the Left, Close Tabs to the Right |
| Tab Group: Move… | its own page | 7: Move Tab Group Left, Move Tab Group Right, Move Tab Group to New Column, Move Tab Group to New Split… |
| Screen: Move… | its own page | 5: Move Screen Left, Move Screen Right, Move Screen to New Window, Move Screen to New Workspace… |
| Screen: Close Several… | its own page | 3: Close Other Screens, Close Screens to the Left, Close Screens to the Right |
| Screen Group: Move… | its own page | 5: Move Screen Group Left, Move Screen Group Right, Move Screen Group to New Window, Move Screen Group to New Workspace… |
| Pane: Swap… | its own page | 5: Swap Pane Left, Swap Pane Right, Swap Pane Up, Swap Pane Down… |
| Pane: Resize… | its own page | 4: Resize Pane Left, Resize Pane Right, Resize Pane Up, Resize Pane Down |
| Column: Width… | its own page | 6: Column Width: One Third, Column Width: Half, Column Width: Two Thirds, Column Width: Full… |
| Column: Dock or Float… | its own page | 7: Dock Column, Dock Column Left, Dock Column Right, Dock Column Top… |
| Canvas: Align and Distribute… | its own page | 8: Align Panes Left, Align Panes Right, Align Panes Top, Align Panes Bottom… |
| Phone: All Commands… | its own page | 21: Boot Phone, Shut Down Phone, List Phones, Take Phone Screenshot… |
| Cloud Machine: Files and Network… | its own page | 13: List Cloud Files…, Read Cloud File…, Write Cloud File…, Cloud File Details…… |
| Bookmarks: All Commands… | its own page | 15: Add Bookmark…, Bookmark All Tabs…, New Bookmark Folder…, Open Bookmark in New Tab… |
| Browser Profile: All Commands… | its own page | 19: New Browser Profile…, Rename Browser Profile…, Delete Browser Profile and Its Data…, Set Browser Profile Color…… |
| Animations… | its own page | 18: Toggle All Animations, Turn Off Animations, Use Normal Animations, Use Fast Animations… |
| Window Style… | its own page | 9: Window Style: Default, Window Style: Bare, Window Style: Card, Window Style: Card with Outlines… |
| Pane Borders and Focus Ring… | its own page | 9: Toggle Pane Borders, Toggle Thick Pane Borders, Use Theme Color for Pane Borders, Toggle Rounded Pane Corners… |
| Tab Hibernation… | its own page | 7: Turn Off Tab Hibernation, Hibernate Hidden Tabs After 1 Hour, Hibernate Hidden Tabs After 10 Minutes, Don't Keep Neighbor Tabs Awake… |
| Notifications: When to Clear… | its own page | 6: Clear Notifications on Click, Clear Notifications Only When Opened, Clear Notifications on Focus, Clear Notifications When Typing… |
| Fork Conversation… | its own page | 6: Fork Conversation to the Right, Fork Conversation to the Left, Fork Conversation Above, Fork Conversation Below… |
| Sidebar Section: Layout… | its own page | 14: Show as List, Show as Grid, Show on One Line, Set Section Alignment…… |
| Set Space Color… | existing action | 9: Space Color: Grey, Space Color: Red, Space Color: Orange, Space Color: Yellow… |
| Set Workspace Group Color… | existing action | 9: Workspace Group Color: Grey, Workspace Group Color: Red, Workspace Group Color: Orange, Workspace Group Color: Yellow… |
| Set Screen Color… | existing action | 9: Screen Color: Grey, Screen Color: Red, Screen Color: Orange, Screen Color: Yellow… |
| Set Screen Group Color… | existing action | 9: Screen Group Color: Grey, Screen Group Color: Red, Screen Group Color: Orange, Screen Group Color: Yellow… |
| Set Tab Group Color… | existing action | 9: Tab Group Color: Grey, Tab Group Color: Red, Tab Group Color: Orange, Tab Group Color: Yellow… |
| Set Density… | existing action | 5: Density: Ultra-compact, Density: Compact, Density: Cozy, Density: Comfortable… |
| Toggle Developer Tools | existing action | 41: Developer Tools: Open Docked, Developer Tools: Dock to Right, Developer Tools: Open in Separate Window, Developer Tools: Close… |
| Extensions… | existing action | 10: Run Extension Shortcut, Disable Extension, Enable Extension, Move Pinned Extension… |
| View Site Information | existing action | 10: About This Page, Show Certificate, Show Connection Details, Show Cookies and Site Data… |
| Duplicate | Folded into |
|---|---|
Show Feed (switchRightSidebarToFeed) | Show Feed (feed.show) |
New Workspace on Machine (remote.newWorkspace) | New Workspace on Machine… (workspace.newOnMachine) |
Copy SSH Error (remote.copyError) | Copy SSH Error (copyWorkspaceSSHError) |
Increase Interface Size (appearance.interfaceSize.increase) | Increase Interface Scale (appearance.uiScale.increase) |
Decrease Interface Size (appearance.interfaceSize.decrease) | Decrease Interface Scale (appearance.uiScale.decrease) |
Reset Interface Size (appearance.interfaceSize.reset) | Reset Interface Scale (appearance.uiScale.reset) |
Niche: Allow Site Request, Always Center Focused Column, Attempt Update, Base Keymap…, Block Site Request, Center Focused Column on Overflow, Copy Agent Identifier, Copy Identifiers, Copy Machine ID, Copy Pane ID, Copy Tab ID, Copy Workspace Group ID, Copy Workspace ID, Copy Workspace ID and Ref, Decrease Workspace Font Size, Disable cmux Browser, Enable cmux Browser, Feature Flags, Go Back from Certificate Warning, Grant Accessibility Access, Grant Screen Recording Access, Hide Announcements, Hide Media Card Until Relaunch, Hide Profile Button, Import Workspaces from Classic cmux, Increase Workspace Font Size, Install cmux CLI in PATH, Kill Process…, Links: Open in Default Browser, Links: Open in cmux Browser, List Cloud Domains, List Cloud Networks, List Cloud Publications, Make This Mac a Server, Make cmux the Default Browser, Make cmux the Default Terminal, Never Show Media Card, Open Debug Settings, Open Site Settings of Blocked Download, Prepare Cloud File Transfer…, Proceed Past Certificate Warning (Unsafe), Promote Machine to Template, Quit and End Everything, Quit and End Sessions, Keep Layout, Quit and Keep Sessions, Reset Workspace Font Size, Restart CLI Listener, Restart VS Code Inline Server, Restart cmux-tui…, Roll Back to Previous Version…, Save Last 10 Seconds, Scroll Columns Minimally, Send Ctrl-F to Terminal, Show Announcements, Show Crash Logs, Show Ghostty Config Diagnostics, Show Media Card, Show Profile Button, Stop Serving, Stop VS Code Inline Server, Switch Update Channel…, Tabs: Use Scrolling Tabs, Tabs: Use Shrinking Tabs, Toggle Column Scroll Bar, Toggle React Grab, Uninstall cmux CLI from PATH, Use Chromium for New Browser Tabs, Use Minimal Titlebar, Use Standard Titlebar, Use WebKit for New Browser Tabs
Testing
PaletteRankCatalogTests(CmuxNextActionsTests): every listed id is a palette action, families don't overlap, members are niche.PaletteFamilyRowsTests(CmuxNextPaletteTests): no action row is dropped;Workspace: Move…opens its members; parents match member titles; tier order; thefontalias puts Customize Appearance… first; a folded member still matches its title.
Observed / Not run
Ran: python3 scripts/cmux-next/prepush-gate.py (no new violations); scripts/localization_catalog.py check (no errors for the new keys; the base has 41,091 existing parity errors elsewhere); every listed action id checked against action-surfaces.json (all exist and are palette-offered).
Not run locally: Swift build and tests (no compiles on this Mac). They run in this PR's CI. Not done: a before/after capture. The palette is native AppKit, so the Linux webview gallery doesn't render it; a debug.palette.capture from a tagged build would.
Changelog
Changed: The command palette lists daily commands first, folds related commands (moves, colors, Developer Tools) into one row each, and moves rarely used ones down; every command still shows up when you search.
Localization
29 new family titles in ActionCatalog.xcstrings, translated for all 21 locales the catalog carries. scripts/localization_catalog.py check reports no errors for the new keys (the base's existing needs_review entries elsewhere are unchanged).
Risk: normal (palette ordering and presentation; no action, CLI verb or MCP tool changes).
Agent session: cosmic-gray
🤖 Generated with Claude Code