#cmux 0.64.15: Diff Viewer Review Comments, Rebindable ⌘1-9 + Shortcut When-Clauses, In-Process Custom Sidebars, iOS Terminal Composer

Review Comments in the Diff Viewer. Comment on changed lines in the diff viewer, persisted per repo. Attach the comment set to a terminal TextBox to hand structured review feedback straight to an agent.

Rebindable Shortcuts with When-Clauses. The Select Workspace and Surface 1…9 shortcuts (⌘1-9) can finally be rebound, and every shortcut supports VS Code-style `when` context clauses so a binding only applies where you want it.

Custom Sidebars, In-Process by Default. Custom sidebars now render in-process by default with a dedicated Settings section, instant toggling, live-resize repaint, and example sidebars to start from.

iOS Beta: Composer, Toolbar, Multi-Mac. An iMessage-style terminal composer with per-terminal drafts, a customizable terminal toolbar, a multi-Mac host switcher, clipboard image paste, and notification forwarding only while you're away from the Mac.

Stability Under Load. Fixes for the macOS 26 launch hang, a macOS 27 beta launch crash, SSH typing lag, sidebar livelocks with many workspaces, white-on-white light themes, and a UI freeze when closing tabs.

Added
  • Review comments in the diff viewer: comment on changed lines, persisted per repo, and attach the comment set to a terminal TextBox to hand to an agent (#5768)
  • when context clauses for keyboard shortcuts with VS Code-style context keys and operators, and the Select Workspace/Surface 1…9 shortcuts (⌘1–9) are now rebindable (#5196)
  • New Browser Workspace command (Option+Cmd+N) (#5926)
  • Browser view actions in the CLI (react-grab, devtools, console, focus-mode, zoom, history) with a more reliable automation lane (#5766, #5778)
  • cmux window display to place a window on a named display (#5804) -- thanks @azooz2003-bit!
  • Workspace group commands in the cloud CLI relay (#5856) -- thanks @azooz2003-bit!
  • Fish shell integration (#5678)
  • React and Solid agent session panels (#4429)
  • iOS (beta): iMessage-style terminal composer with inline send and per-terminal drafts, plus a View as Text sheet for copying terminal output (#5876, #5875)
  • iOS (beta): customizable terminal toolbar with custom actions and reorderable built-ins, on a redesigned default layout (#5510, #5579, #5532)
  • iOS (beta): multi-Mac host switcher with a hierarchical device tree, workspaces from all Mac windows, and rename/pin from the phone (#5513, #5648, #5565, #5512)
  • iOS (beta): paste images from the phone clipboard into the terminal (#5546)
  • iOS (beta): first-run onboarding, Tailscale-off detection, actionable pairing failures, cancellable sign-in, and pull-to-refresh on the workspace list (#5655, #5714, #5722, #5713, #5728, #5654)
  • iOS (beta): early browser panes (WKWebView) and a Send Feedback flow (#5652, #5653)
Changed
  • Custom sidebars render in-process by default, get a dedicated Settings section, remount instantly on toggle, and repaint live during resize, with new example sidebars to start from (#5867, #5864, #5895) -- thanks @azooz2003-bit!
  • Terminal notifications forward to the iPhone only while you're away from the Mac (#5912)
  • Slimmer pairing QR codes that scan faster, with Copy IP/Port and no expiry (#5727, #5872)
  • The Mac pairing window shows a connected state when the iPhone attaches (#5542, #5795)
  • Crash reports scrub file paths, PII, and secrets before sending (#5598)
  • Webview assets are split per surface so panes load less JavaScript (#5613)
Fixed
  • Fix the app hanging at 100% CPU on launch on macOS 26 from a FileExplorer SwiftUI update loop (#5786, #4937) -- thanks @kevinsslin, and @haoranaaa for the report!
  • Fix a launch crash on the macOS 27 beta and unblock Xcode 27 builds (#5670) -- thanks @matheustimbo!
  • Fix SSH typing lag with async PTY writes (#5594) -- thanks @lleewwiiss!
  • Fix light themes rendering white-on-white terminals (#5826) -- thanks @abdullahnauman2 for the report!
  • Hide the sidebar scrollbar when content fits and fade the overlay knob when idle (#4767, #5846, #5955) -- thanks @yigitkonur for the report!
  • Fix recurring main-thread livelocks with many workspaces and agent sessions, and a UI freeze when closing tabs (#5708, #5859, #5673, #5669)
  • Cmd-click links inside fullscreen TUIs (Claude, Codex) now open in cmux's browser instead of the system default (#5406) -- thanks @denysshnurenko for the report!
  • Fix OSC 8 Cmd-click hyperlinks in terminal panes (#3580)
  • Surface needs-input attention (sidebar status, bell, tab elevation) for blocking PermissionRequest hook decisions (#5313) -- thanks @Dukeman330 for the report!
  • Fix resumed Claude sessions dropping cmux hooks when claude doesn't resolve to the wrapper (#5721) -- thanks @Lipdog for the report!
  • Preserve user Claude settings on resume (#5661)
  • Fix forked Claude sessions restoring the parent session after a cmux restart, and restore missing Fork Conversation entries (#5910, #5937)
  • Recover session restore from a corrupt snapshot via the rolling backup (#5914)
  • Keep Codex permission hooks non-blocking (#5507)
  • Browser: fix the context menu opening the wrong link, wrong image download filenames, and loopback URLs hitting the system proxy on local workspaces (#5780, #5938, #5915)
  • Fix a browser keyDown stack-overflow crash (#5899) -- thanks @azooz2003-bit!
  • Fix crashes from key-routing replay loops in the find overlay and browser (#5755, #5891)
  • Fix the Find pane for same-directory workspaces (#5956)
  • Stop SSH auto-reconnect when the host is unreachable and add a manual Reconnect control (#5767)
  • Keep remote shell startup responsive (#5695)
  • Stop titlebar elements shifting when toggling the sidebar (#5707) -- thanks @azooz2003-bit!
  • Localize package display strings missing from the app catalogs (#5829) -- thanks @azooz2003-bit!
  • Clearer updater errors when the launchd agent install fails, with a manual-download fallback (#5760) -- thanks @azooz2003-bit!
  • Retain the Settings window so it reliably reopens (#5801) -- thanks @azooz2003-bit!
  • Fix the diff viewer loading state showing gray instead of the terminal theme (#5631)
  • Fix the inline VS Code command palette and WebSocket startup (#5595)
  • Fix sidebar Shift-click range selection after a no-op drag (#5601)
  • Keep pinned workspaces inside their group, and fix dragging grouped workspaces above their group (#5541, #5612)
  • Fix sidebar status pills for newly created workspaces (#5662)
  • Don't hijack ZDOTDIR when the bundled shell-integration bootstrap is missing (#5773)
  • Fix memory growth from retained publish responses and event-stream allocations (#5664)
  • Reduce background CPU from process polling and browser-availability checks (#5759, #5744)
  • iOS (beta): park notification-tap deep links until the workspace can be opened, fix a false-fire render watchdog replay loop, cap the restoring-session wait for stale Macs, and localize push notification strings (#5927, #5869, #5564, #5519)