AI Auto-Naming, Per-Workspace Env Vars, Left/Right Option as Alt
AI Auto-Naming for Workspaces and Tabs. Opt in to have cmux name your workspaces and tabs from the agent conversation running inside them, so a wall of sessions stays readable at a glance.
Per-Workspace Environment Variables. Set environment variables on a workspace and every shell it spawns inherits them, so per-project configuration no longer has to live in your shell profile.
Left and Right Option as Alt. macos-option-as-alt now distinguishes the left and right Option keys, sending sided modifier bits to the terminal. One of our most-requested terminal fixes.
iOS Beta Polish. A redesigned workspace list with groups, unread dots, and last-activity previews; smoother terminal scrolling; cross-device notification dismiss-sync with an authoritative unread badge; and a TestFlight push-notification fix.
Added- Opt-in AI auto-naming of workspaces and tabs from your agent conversations (#5547) -- thanks @mvanhorn!
- Per-workspace environment variables inherited by every shell in the workspace (#6116)
- Configurable file explorer double-click action: preview, default editor, or preferred editor (#5827)
- Setting to hide modifier shortcut hints (#6071)
- Configurable Dock max width (#4385) -- thanks @sort2f for the report!
- Customizable stable window title templates (#6059) -- thanks @digijoebz for the report!
- Diff language highlighting aliases (#6076)
- Expose each workspace's custom title to the control socket for scripting (#6013)
- iOS (beta): workspace list with groups, unread dots, last-activity previews, and a shared Unread filter (#5726)
- iOS (beta): workspace row actions (#6022) -- thanks @azooz2003-bit!
- iOS (beta): Shift key on the terminal keyboard toolbar (#6104)
- Experimental freeform 2D canvas layout for workspace panes, still in progress (#5987) -- thanks @azooz2003-bit!
Changed- macos-option-as-alt now honors left and right Option independently, sending sided modifier bits to the terminal (#6007) -- thanks @1nto5, @ucan-lab, @MrSpock, @Sancerro, @dreasan, @alceal, @lejahmie, and @tofunori for the reports!
- Gate remote SSH port scanning on the sidebar ports setting (#6136) -- thanks @Fail-Safe for the report!
- Polish the experimental canvas minimap navigation (#6105) -- thanks @azooz2003-bit!
- Make Codex agent hooks fire-and-forget so they never block the session (#6110)
- Detect live claude/codex processes so hook-less agent sessions stay fork-able (#6133)
- Stagger restored terminal surface spawns to smooth session restore (#6149)
- Reclaim offscreen terminal renderer GPU memory (IOSurface) non-destructively (#5857)
- iOS (beta): smoother terminal scrolling with local scrollback prefetch and faster scroll rendering (#6067, #6035) -- thanks @azooz2003-bit!
- iOS (beta): cross-device notification dismiss-sync and an authoritative unread badge (#5916)
- iOS (beta): local-first, offline-safe sign-out (#5776)
- iOS (beta): require a matching email for pairing (#6028)
Fixed- Fix terminal top-row mouse event routing, including minimal-UI hit testing (#4391, #6073) -- thanks @colangelo and @edouardp for the reports!
- Restore OSC 11 pane-local backgrounds (#5997) -- thanks @fkchang for the report!
- Fix the macOS 27 SF Symbol rasterization crash (#5999) -- thanks @matheustimbo and @joseluislucio for the reports!
- Fix a stale Metal drawable after terminal layer realization (#6057) -- thanks @robertnisipeanu for the report!
- Fix terminal arrow key routing for TUI model selection (#6002) -- thanks @wo4wangle for the report!
- Fix the Cmd+T working directory after session restore (#6055) -- thanks @WangRouna for the report!
- Preserve Pi sessions across workspace restore (#5607) -- thanks @bjesuiter for the report!
- Fix top-right titlebar drag chrome (#6003) -- thanks @dbachelder for the report!
- Fix the OpenWrt BusyBox remote platform probe (#6056) -- thanks @Fail-Safe for the report!
- Fix stale remote connected state after a proxy disconnect (#4513)
- Surface a browser fallback when Safari sign-in hangs (#6113)
- Fix the browser omnibar Return submitting stale text during fast typing (#5923)
- Avoid mirroring web proxies as CONNECT (#5959)
- Fall back to SSH when the Cloud VM attach endpoint is unavailable (#6079)
- Fix sidebar row-height layout feedback (#6111)
- Kill a sidebar LazyVStack layout livelock (#6033) -- thanks @azooz2003-bit!
- Fix unexpected menu-bar-only activation policy (#6068)
- Fix Mermaid diagrams scaling in the markdown viewer zoom (#6072)
- Honor Focus / Do Not Disturb for the fallback notification sound (#5651) -- thanks @Reebz!
- iOS (beta): fix compact workspace row navigation by removing redundant tap gestures (#6124) -- thanks @azooz2003-bit!
- iOS (beta): reduce workspace row swipe contention (#6064) -- thanks @azooz2003-bit!
- iOS (beta): fix a workspace swipe-delete confirmation crash (#6051) -- thanks @azooz2003-bit!
- iOS (beta): preserve the email code sign-in nonce (#6097)
- iOS (beta): fix TestFlight push notifications by exporting the production APNs entitlement (#6131)
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)
iPhone Companion App (Beta), Cross-Window Workspace Drag, Out-of-Process Custom Sidebars
iPhone Companion App (Beta). Pair an iPhone with your Mac from the new Mobile Connect window and attach to your terminals from your phone, with opt-in forwarding of terminal notifications. The iOS beta ships on TestFlight as cmux BETA.
Cross-Window Workspace Drag. Drag a workspace out of one window's sidebar and drop it into another window's sidebar to move it, including grouped workspaces.
Out-of-Process Custom Sidebars. Custom sidebar extensions now run in their own process with an isolated interpreter, so a broken sidebar can't hang or crash cmux, and the interpreter covers a broader set of SwiftUI primitives.
Browser Polish. The omnibar selects the whole URL on the first focusing click (Chrome parity), browser chrome scales with the tab bar font size, a typing beachball with large histories is fixed, and hidden panes no longer stop actively-playing audio or video.
Agent Session Fixes. Claude resume keeps cmux hooks attached so notifications and status tracking survive resumes, Agent Hibernation works for node-backed Claude sessions, and Codex resume preserves CODEX_HOME and pane order.
Added- iPhone companion app (beta): pair an iPhone from the new Mobile Connect window (also in the command palette) and attach to your Mac's terminals from your phone, with a configurable pairing port and opt-in forwarding of terminal notifications; the iOS beta ships on TestFlight as cmux BETA (#5079, #5493, #5489, #5518)
- Drag a workspace into another window's sidebar to move it between windows, including grouped workspaces (#5399)
- Sign In and Sign Out commands in the command palette (#5529)
- OMP agent hook integration with notifications and session restore via
cmux hooks omp (#5413) -- thanks @joshrzemien!
Changed- Custom sidebar extensions now run out-of-process with an isolated interpreter, so a broken sidebar can't hang or crash the app (#5294, #5382) -- thanks @azooz2003-bit!
- Broader SwiftUI primitive coverage in the custom sidebar interpreter (#5275) -- thanks @azooz2003-bit!
- Browser omnibar: the first click that focuses the address bar selects the whole URL, later clicks place the caret (Chrome parity) (#5462, #5352)
- Browser chrome (omnibar font and toolbar icons) scales with the tab bar font size (#5464)
- Sidebar workspace group headers scale with the sidebar font size (#5401)
- Agent Hibernation defaults to a 5-second idle window when enabled (#5449)
- Tighter fuzzy filtering for skill suggestions in the terminal textbox (#5348)
Fixed- Keep actively-playing audio and video in browser panes alive when the pane is hidden (#5412, #5441)
- Fix a typing beachball in the browser omnibar with large browsing histories (#5397)
- Fix the main window refusing to resize narrower than its current width (#5474)
- Fix the sidebar close button hidden under wrapped workspace titles (#5488)
- Fix notification sound selection so the picker previews the selected sound and notifications play it (#5480)
- Restore the menu bar icon dropdown menu on click (#5451)
- Fix OSC control sequences (e.g. terminal background color) printed as literal text when sent via
cmux send (#5509) - Fix native Claude resume dropping cmux hooks, so notifications and status tracking keep working on resumed sessions (#5430)
- Fix Agent Hibernation for node-backed Claude sessions (#5433)
- Codex resume hardening: keep restored surfaces from jumbling and preserve
CODEX_HOME so non-default Codex homes resume correctly (#5351) - Fix Cmd +/- zoom in the browser and Markdown viewer on non-US keyboard layouts (#5394)
- Preserve syntax highlighting on changed lines in the diff viewer (#5415)
- Fix a stale group name in the window title bar after renaming a workspace group (#5408)
- Fix the Dock sidebar not rendering after closing and reopening it (#5437)
- Fix OMO subagent pane respawn through the tmux compatibility shim (#5465) -- thanks @leodiegoo for the report!
- Reduce sidebar git activity by coalescing repeated metadata probes (#5402)
Browser Focus Mode, SSH Agent Forwarding, Custom Sidebars (Beta), Major Stability Fixes
Browser Focus Mode. Browser panes get a focus mode that strips away the surrounding chrome so a single page can take over the pane while you read or work in it.
SSH Agent Forwarding. `cmux ssh` now forwards your local SSH agent, so remote sessions can use your local keys for git pushes and further hops without copying private keys onto the remote.
Vibe-Codable Custom Sidebars (Beta). Build your own sidebar with a runtime Swift interpreter, behind the Beta Features flag. Edit the sidebar source, validate it from the CLI, and reload it live without rebuilding the app.
Browser Mouse Back & Forward. The browser now responds to the dedicated back and forward buttons on a mouse, so side-button navigation works the way it does in a normal browser.
Major Stability & Performance Fixes. Fixed a settings-observation leak that grew the app to 4.4 GB over a day, a browser render loop burning ~39% of the main thread on every CoreAnimation commit, a WebKit crash after sleep/wake, a 100% CPU hang in the Markdown and file-preview editor, and child processes launching under Rosetta on Apple Silicon.
Added- Browser focus mode (#4573)
- SSH agent forwarding for
cmux ssh, so remote sessions can use your local SSH keys (#5301) - Vibe-codable custom sidebars: a runtime Swift interpreter for building your own sidebar, behind a Beta Features flag, with CLI validation and live reload (#5254, #5327) -- thanks @azooz2003-bit!
- Browser mouse back and forward button support (#5197)
- Persisted word-wrap setting for the file editor (#5247)
- "Open Current Directory in Devin" command (#5288) -- thanks @MaxiAschenbrenner!
- Live status reporting in the Amp Neo session plugin, driving the cmux tab status bar (#5235) -- thanks @HamptonMakes!
Changed- Anchor the textbox autocomplete to the cursor (#5021)
- Add a font-size popover to the Markdown viewer controls (#5168)
- Open group config files in your configured editor (#5250)
- Isolate browser WebKit process pools so one browser pane crashing no longer takes down the others (#4987)
- Move large scrollback read-text work off the main actor to reduce UI hangs (#5243) -- thanks @azooz2003-bit!
Fixed- Fix a settings-observation task leak that grew the app process to 4.4 GB over ~23h (#5310)
- Fix a browser pane render loop that re-navigated the WebView on every CoreAnimation commit (~39% main-thread CPU) (#5311)
- Fix a WebKit post-wake crash with sleep/wake-aware hidden-webview discard scheduling (#5315) -- thanks @azooz2003-bit!
- Fix the Markdown and file-preview text editor hanging at 100% CPU on click or drag-select by forcing a TextKit 1 stack (#5257)
- Stop cmux from launching child processes under Rosetta on Apple Silicon (#5306) -- thanks @CharlesWiltgen for the report!
- Recover terminal focus when the first responder is stranded in another window (#5296)
- Fix the browser address bar so a single click places a caret instead of selecting the whole URL (#5270)
- Fix copy-mode vim keys (j/k/h/l) swallowed under non-ASCII input sources (Korean, Japanese Kana, Zhuyin) (#5292) -- thanks @pstanton237!
- Fix terminal copy-mode cursor navigation (#5328)
- Fix terminal selection on mouse-up while the find overlay is open (#5335)
- Fix TextBox IME and input-source handling (#5340)
- Fix the macOS "wants to access data from other apps" prompt on agent session start and quit by moving the control socket out of Application Support (#5176)
- Fix Codex auto-resume emitting an invalid
-s disabled sandbox flag (#5276) -- thanks @taonetm7 for the report! - Fix agent session resume cd-ing into the wrong directory after a cwd drift, plus post-kill cwd handling (#5300, #5312)
- Fix restored cwd bindings after a reboot (#5307)
- Fix a stale sidebar git branch after cd-ing out of a repo into a non-git directory (#5279)
- Fix a TextBox teardown crash when toggling the sidebar background (#5317)
- Fix a workspace-close teardown hang (#5316) -- thanks @azooz2003-bit!
- Fix the workspace-group "Delete Group" context-menu action being a no-op (#5253)
- Fix the diff viewer showing a raw CLI error and beeping when there is no diff (#5252)
- Fix sidebar drag-and-drop frame collection with the lazy (virtualized) sidebar (#5325)
- Lazy-load file explorer roots to speed up opening the file tree (#5342)
- Fix Claude workflow resume transcript resolution (#5242) -- thanks @azooz2003-bit!
- Fix opening the remote SSH file browser (#5241) -- thanks @azooz2003-bit!
- Fix custom-sidebar extension discovery for tagged builds (#5267) -- thanks @azooz2003-bit!
- Fix Sparkle update packaging and Claude hook transcript scaling (#5202)
Diff Viewer Shortcut, Markdown Zoom, Prompt & Remote SSH Fixes
Diff Viewer Shortcut. Open the diff viewer with a keyboard shortcut, configurable and editable in Settings alongside every other cmux shortcut.
Markdown Viewer Zoom. The Markdown viewer gains font size and zoom controls, so you can scale rendered docs up or down without leaving the pane.
Feed Behind Beta Features. The Feed is now gated behind Beta Features and off by default, mirroring how the Dock is gated, so it only appears when you opt in.
Prompt & Remote SSH Fixes. Starship and other custom bash prompts no longer go static: the prompt bootstrap composes with your existing PROMPT_COMMAND instead of overwriting it. And `cmux ssh` now reports remote PTY allocation failures loudly instead of failing silently when a plain ssh would have worked.
Restored Sidebar Views & Scrollback Colors. The right-click sidebar view switcher and built-in views (Default Workspaces, Project Worktrees, and others) are back after a 0.64.11 regression. Restored session scrollback no longer keeps a previous theme's colors, fixing white-on-white history after a theme change.
Added- Configurable keyboard shortcut to open the diff viewer, editable in Settings (#5178)
- Font size and zoom controls in the Markdown viewer (#5163)
Changed- Gate the Feed behind Beta Features (mirroring Dock), off by default (#5174)
- Improve the terminal text context menu (#5135) -- thanks @azooz2003-bit!
- Rank visible title matches above hidden metadata in the workspace switcher (#5148)
- Build the release app with the macOS 26 SDK (#5042)
Fixed- Fix Starship and other custom prompts going static in bash by composing the prompt bootstrap with the user's existing
PROMPT_COMMAND (#5187) -- thanks @xzjncu for the report! - Report remote PTY allocation failures loudly so
cmux ssh no longer fails silently when remote PTY attach fails (#5186) -- thanks @windyslow for the report! - Fix a main-thread hang from focus-surface broadcast re-entrancy triggered by custom shortcuts (#5108) -- thanks @wzh4464 for the report!
- Restore the right-click sidebar view switcher and built-in views (Default Workspaces, Project Worktrees, and others) (#5182)
- Strip terminal-color OSC sequences from restored scrollback so old sessions no longer keep a previous theme's colors (white-on-white after a theme change) (#5175)
- Fix the browser Web Inspector reopening by itself after manual close and navigation (#5180)
- Honor the Settings rebinding of Global Search by parsing package object-form
cmux.json shortcut bindings (#5143) - Fix Claude fork and resume failing when the session had changed directories (#5154)
- Fix titlebar shortcut-hint pills clipped at the bottom on macOS 26.5 (#5145)
- Fall back to the default sidebar when extensions are disabled (#5127) -- thanks @azooz2003-bit!
- Stabilize the git metadata FSEvents watcher to stop an event storm (#5131) -- thanks @azooz2003-bit! and @randybias for the report!
- Avoid E2BIG when the SSH startup script exceeds
MAX_ARG_STRLEN (#5133) -- thanks @lauzierj!
Workspace Groups, Focus & Recently Closed History, Agent Hibernation, Detachable SSH
Workspace Groups. Select sidebar workspaces and press ⌘⇧G to gather them under a collapsible header. Each group has an anchor workspace, its own color and icon, and an unread badge on the header. Drag workspaces in and out, reorder inside a group, and control where new workspaces land per group or via cmux.json. A full `cmux workspace-group` CLI namespace creates, colors, moves, focuses, and deletes groups from scripts.
Focus & Recently Closed History. Navigate back and forward through recently focused workspaces and windows straight from the titlebar, with shortcut hints inline. A searchable Recently Closed history pane reopens surfaces you closed, restoring them to their original anchor.
Agent Hibernation. Idle agent sessions hibernate to cut background CPU and memory, then restore on demand with their state intact, so a sidebar full of agents stops competing for resources while you work in one.
Detachable SSH PTY Daemon. Remote SSH sessions now run behind a detachable PTY daemon that keeps the session alive across reconnects, so a dropped network connection no longer kills your remote workspace.
Font Size Controls & Notifications Redesign. The sidebar workspace font size and the workspace tab bar font size (capped at 14pt) are both configurable. The notifications popover was redesigned bigger and more minimal with swipe-to-dismiss, and now uses Hermes hook payloads for richer agent notifications.
Fork Conversation, Browser Mute, Diff Viewer. Fork Conversation moves into the tab right-click menu with configurable destinations, browser tabs gain an audio mute toggle, and `cmux diff` opens a CodeView diff viewer that streams large git diffs before full render.
Added- Workspace groups: select sidebar workspaces and press ⌘⇧G to group them under a collapsible header, with an anchor workspace, drag-to-group, in-group reorder, per-group color and icon, unread badges on the header, and a Delete Group action that closes all members (#4815)
cmux workspace-group CLI namespace to create, remove, set-color, set-icon, move, and focus groups, with new-workspace placement configurable per group and via cmux.json (#5018)- Focus history and Recently Closed history: navigate back and forward through recently focused workspaces and windows from the titlebar, and reopen recently closed surfaces from a searchable history pane (#4160)
- Agent Hibernation pauses idle agent sessions and restores them on demand to cut background resource use (#4165)
- Detachable SSH PTY daemon keeps remote sessions alive across reconnects so SSH workspaces survive a dropped connection (#4807)
- Configurable sidebar workspace font size, plus a workspace tab bar font size control capped at 14pt (#4798)
- Browser tab audio mute toggle in the tab right-click menu, kept in sync with WebKit playback state (#4911)
- Fork Conversation action in the tab right-click menu, with configurable fork destinations (#4888, #4986 -- thanks @lawrence703!)
- Xcode-style project visualizer pane (#4996)
cmux diff command opens a CodeView diff viewer, with large git diffs streamed into the viewer before full render (#4451, #5016)- Send Ctrl-F to Terminal passthrough action to force-stop Claude Code agents (#5011)
- Native Kiro CLI hook integration with notifications, task manager attribution, and session restore (#4831)
- Default terminal registration so the system terminal preference resolves to cmux (#4935)
- Configurable browser search providers (#4849)
- Terminal textbox input with beta TextBox defaults settings (#4333, #4773)
- Viewport-aware workspace path display truncates sidebar paths to fit the available width (#3730) -- thanks @gonzaloserrano!
- Wrap long workspace titles in the sidebar instead of truncating (#4848)
- Open cmd-clicked Markdown paths in the Markdown viewer (#4864)
- Beta Features toggle gates the in-progress extension sidebar UI (#5092)
Changed- Notifications popover redesigned: bigger, minimal layout with swipe-to-dismiss (#4778)
- Use Hermes hook payloads for richer agent notifications (#4851)
- Settings is now a top-level peer window instead of a floating child window (#5081)
- Launch restored agent sessions through their saved startup commands (#4777)
- Reduce browser WebView input latency (#4863)
- Make the workspace sidebar lazy with
@Observable drag state and batch sidebar actions for faster reorders on large sidebars (#4736, #4865) - Make session index backfill linear so large session histories load faster (#4868)
- Resolve TypeScript
.ts files as text previews instead of routing them through QuickLook media (#4924) - Forward CLI subcommands from the GUI binary to the bundled CLI (#4679) -- thanks @tiffanysun1!
Fixed- Fix File Preview hang when drag-selecting large files (#4962)
- Fix the File Preview Open With menu (#4932)
- Stop stale closed-browser snapshots from reappearing in unrelated workspaces (#4961)
- Fix zsh hook errors when the job table is saturated (#4959)
- Fix bash job notification spam (#4934)
- Fix Claude hooks-disabled environment passthrough (#4418)
- Fix
NSFileHandle process pipe read crashes (#4800) - Fix cmux terminal environment injection (#4728)
- Recognize Eternal Terminal for remote file drops (#4712)
- Fix Vault resume for non-ASCII paths (#4683)
- Fix Markdown files with trailing punctuation being detected as URLs (#4594) -- thanks @jasonko!
- Fix the Reload Configuration menu action (#4534)
- Fix OMO tmux compatibility session ids (#4468)
- Fix equalize split span weighting so 3+ pane rows distribute evenly (#4787)
- Fix matched sidebar terminal background (#4780)
- Fix restore-previous-launch crash and preserve current work on restore (#4982)
- Fix agent resume when the saved cwd was deleted (#4859)
- Fix hidden Settings window burning CPU during Codex output (#4661)
- Fix embedded Ghostty split theme resolution so split panes inherit the active theme (#4795)
- Fix titlebar controls intercepting window drags and right-sidebar button clicks (#5005, #5102)
- Fix split zoom not clearing when the maximized tab is closed (#5076)
- Fix spurious "Terminal needs approval" prompts from the Hermes pre-tool-call hook (#5010)
- Fix Hermes session restore so a per-turn session-end is treated as a turn boundary, not a teardown (#5009)
- Fix the JSONC comment skipper for CRLF line endings (#4869)
- Fix Bonsplit tab indicator drift (#4873)
- Open bare relative path arguments externally without requiring socket access (#4812)
- Keep Cmd-Tab app switching off the session snapshot path (#4613)
- Restore the sidebar minimum width and keep the titlebar stable at minimum width (#5062, #5089)
Removed- Remove History from the right sidebar (#4785)
- Remove the terminal scrollbar workspace menu (#5072)
- Stop bundling example sidebars in the app (#4662)
Copy on Select, Extension Sidebar Prototypes, Browser & Terminal Polish
Copy on Select. Highlighting text in the terminal now copies it to the clipboard the instant the mouse is released. The setting is off by default and toggles from Settings so existing selection behavior stays untouched for anyone who relies on it.
CmuxExtensionKit Sidebar Prototypes. An in-tree preview of the upcoming extension API for custom workspace sidebars. Sample sidebars cover an attention queue, browser stack, dev server status, last prompt, and project worktree views, each rendered through the same provider/reducer surface a third-party extension will use.
TaskManager 0.64.8 Memory Leak Fix. The TaskManager panel had a snapshot-boundary violation that retained pane store references inside a lazy list subtree, keeping every entry's `@Published` updates wired to every row. 0.64.10 lifts that state above the list and passes immutable snapshots, so reopening the manager no longer accumulates retained state across sessions.
Browser Polish. The browser loading spinner now runs on Core Animation so it stays smooth during heavy rendering, Cmd+Up and Cmd+Down forward into the browser pane (Google Docs jump-to-top/bottom works), the URL bar no longer steals focus on tab switch, and the markdown viewer renders remote SVG images correctly.
Workspace Reorder CLI. `cmux reorder-workspaces` accepts batch input, supports `--dry-run`, and emits reorder events so scripted layouts can plan a full sidebar reshuffle in one call and react to the changes via the socket.
Tab Close Guards. Tab close buttons can now warn before closing or be hidden entirely from Settings, so a stray click on the X stops dropping the surface without confirmation.
Added- Copy on Select setting copies the active terminal selection to the clipboard as soon as the mouse is released (#4011) -- thanks @kallioaleksi for the report!
- CmuxExtensionKit sidebar prototypes showcase the upcoming extension API for custom workspace sidebars (#4309)
- Ghostty Settings command palette action opens the embedded Ghostty configuration directly (#4654)
- Warn before, or hide, the tab close button to prevent stray accidental closes (#4632)
- Skip the quit-confirm dialog on DEV builds and honor
app.confirmQuit on stable/nightly (db267718) - Keep Codex notifications after interrupted turns so the badge survives a ctrl-c mid-stream (#4583)
- Move resume command approvals into
cmux.json so per-repo configuration can preapprove agent resume invocations (#4538) cmux reorder-workspaces accepts batch input, supports --dry-run, and emits reorder events (#4507)
Changed- Move the browser loading spinner onto Core Animation so it stays smooth during heavy rendering (#4600)
- Harden remote websocket PTY sessions against connection churn (#4323)
Fixed- Fix the TaskManager snapshot-boundary violation that caused the 0.64.8 memory leak by keeping pane store references out of the lazy list subtree (#4555)
- Fix the
runProcess pipe teardown crash hit when a process exits during stdout drain (#4568) - Fix key repeat rendering lag in the terminal under sustained input (#3986)
- Fix asymmetric equalize splits so a 3+ pane row distributes evenly even when one pane started larger (#4381)
- Fix
cmux.json split ratios so persisted ratios apply to restored splits (#3980) - Fix browser URL bar stealing focus on tab switch (#4623)
- Forward Cmd+Up / Cmd+Down to the browser pane so Google Docs and other web apps can jump to top/bottom (#4637)
- Fix close shortcuts targeting the original window when the user has moved focus to a different one (#4615)
- Fix Ghostty split theme appearance resolution so a freshly split pane inherits the active theme (#4567)
- Fix theme picker chrome preview sync so the swatch matches the applied chrome (#4652)
- Fix sidebar edge fade background so the gradient blends with the active surface (#4610)
- Fix markdown remote SVG image loading inside the markdown viewer (#4533)
- Fix restored panel unread sidebar badges so badge state survives session restore (6f1ecc9f)
- Prevent DEV builds from stealing the stable CLI socket when both run side-by-side (5ab642a3)
0.64.8 Memory Leak Hotfix
Fix 8GB RSS Growth on Non-Git Workspaces. Git repository search now stops at filesystem root instead of walking forever into `/..`. On older Foundation builds, `deletingLastPathComponent()` could yield `/..` and keep climbing, allocating ever-longer parent paths until the OS OOM killer fired. Non-Git workspaces no longer grow RSS from ~450MB to 8GB within minutes on 0.64.8.
Restore Browser Memory Saver Default. Hidden browser webview renderers discard by default again, reverting the 0.64.8 keep-alive default that exposed the memory regression. The keep-alive behavior remains available as an opt-in setting for workflows that need to preserve DOM state across workspace switches.
Fixed- Stop unbounded Git repository search past filesystem root so non-Git workspaces no longer grow RSS from ~450MB to 8GB and trigger the OOM killer (#4557) -- thanks @Luciferxie for the report!
- Restore the Browser Memory Saver default to on (discards hidden browser webview renderers after the discard delay) to mitigate the 0.64.8 memory regression (#4545) -- thanks @Luciferxie for the report!
Antigravity CLI, Grok Vault Resume, CLI Window Targeting, Browser Screenshots
Antigravity CLI Integration. Antigravity joins the supported coding-agent lineup with hook notifications, task manager attribution, and Vault session restore, the same way Claude, Codex, Gemini, and Grok already work in cmux.
Native Grok Vault Resume. Grok sessions can now be resumed natively from Vault. cmux parses registered Grok transcripts by layout, deduplicates sessions across shell-Grok homes, and quotes built-in resume commands so they round-trip cleanly.
CLI Window Targeting. cmux CLI commands now accept `--window` to scope workspace, pane, surface, SSH, VM, notifications, tree, and top flows to a specific window. Refs resolve inside the targeted window, and cross-window pane handles are rejected before they mutate state.
Browser Screenshot Clipboard Actions. Capture a screenshot of the current browser pane and copy it straight to the clipboard, ready to paste into an agent conversation or notes.
Browser Webviews Kept Alive. Reverts the 0.64.7 default of discarding hidden browser webview renderers. Switching back to a hidden browser pane now resumes instantly without reloading. The discard behavior remains available as an opt-in setting.
Bug Fixes. Fixes for minimal-mode pane tabs moving the window when dragged, Option dead-key accent composition (Option+n then a now commits "ã"), equalize splits with 3+ panes, Quick Look preview crashes, git index.lock polling, theme override paths leaking from channel builds, sidebar overlay contrast, terminal scheme synchronization on theme reload, restored unread badges, transparent terminal hosting, browser navigation race conditions, and session search ripgrep cancellation crashes.
Added- Antigravity CLI integration with hook notifications, task manager attribution, and session restore (bd4a31c0)
- Native Grok Vault resume support (5708d67b)
--window routing for window-scoped CLI commands (workspace, pane, surface, SSH, VM, notifications, tree, top) (#4211)- Browser screenshot clipboard actions (#4479)
- Attribute notifications to their source panel (20691adb)
Changed- Keep browser webviews alive by default, reverting the 0.64.7 discard-by-default behavior (#4388)
- Align titlebar controls with macOS traffic lights (#4471)
- Localize Antigravity hook strings and running status (861d43a9, b5a4d6dc)
Fixed- Prevent minimal-mode pane tabs from moving the window when dragged (e7941740)
- Fix Option dead-key accent composition so Option+n then a commits "ã" (#4382) -- thanks @moskoweb for the report!
- Route keyboard/menu equalize_splits through v2ProportionalEqualize so 3+ panes split evenly (#4400) -- thanks @mvanhorn!
- Fix Quick Look preview deactivation crash (#4459)
- Fix QuickLook crash after proxy icon split close (#4460)
- Fix git index.lock polling in sidebar metadata watcher (#2797)
- Fix theme override path for channel builds (Nightly/Staging no longer retheme Release) (#4484)
- Fix minimal-mode sidebar titlebar icon alignment (#4481)
- Fix notification Settings open path (#4456)
- Suppress nested agent hook notifications (#4334)
- Fix Antigravity presentation and resume (0f67df81)
- Fix Antigravity Vault resume indexing (9fa5d1d8)
- Fix Antigravity fallback session build (80fe38d6)
- Fix Antigravity conversation sanitizer width (8bd285a9)
- Fix Grok agent-scoped Vault filtering (12ae177f)
- Fix Grok Vault titles and icon (84373476)
- Deduplicate Grok Vault sessions (9f66dffd)
- Honor shell Grok homes in Vault, including custom hook state directories (be8c37c4, f95b25b9)
- Restore compact pane tab width (f0370709)
- Fix session search ripgrep cancellation crash (fa623368)
- Preserve right sidebar remembered mode (aac80054)
- Persist restored pane notifications and resync restored notification badges (e4856922, 9ffdb45a)
- Preserve workspace cwd metadata for registered agents (9b1e186d)
- Preserve transparent terminal hosting (1ca56296)
- Keep browser URL tied to committed navigation and harden provisional navigation state (40863609, e240c302)
- Fix sidebar overlay contrast scheme and keep sidebar chrome readable across themes (452745b6, 4223df74)
- Synchronize theme contrast on reload and align terminal scheme with live theme (228f3abd, b6d34706)
- Reload themes through the cmux socket so theme changes propagate to running instances (1be9d26c)
- Foreground and reload after interactive theme picker (b0f58e47, 8a4e57cf)
- Ignore inherited socket context from other cmux bundles (b361e9a2)
- Preserve numbered shortcut stale-menu routing and remapped close defaults (d198a962, f2b257fb)
- Clear restored unread on workspace resume and defer dismissal to focused panel (b24cf548, f594d5a8)
- Update Bonsplit minimal tab drag hit testing and keep titlebar drag handle out of pane tabs (36fc880f, 735dde1d)
- Gate process termination until launch succeeds and handle deferred cancellation edge cases (a14ca57c, 227305d5)
- Deduplicate shell wrapper installer (a21a21c5)
Grok Build CLI, Browser Memory & Background Preload, Conversation Forks
Grok Build CLI Integration. Grok Build joins the supported coding-agent lineup with notifications, task manager attribution, and session restore, the same way Claude, Codex, and Gemini already work in cmux.
Browser Memory Reclaim and Background Preload. Hidden browser webviews can now discard their renderer process to release memory and reappear instantly when you switch back. CLI-created browser panes preload offscreen so the page is ready the moment the workspace becomes visible. Thanks @lidge-jun for the community contributions.
Agent Conversation Forks. New socket commands let you fork an agent conversation off its current turn, so you can branch into a what-if without losing the original thread.
Crash Diagnostics from Notifications. When cmux logs a crash, the notification now opens directly into the crash diagnostics view so you can inspect the breadcrumb trail without digging through state.
Bug Fixes. Fixes for browser deep-link popups (slack://, discord://, zoom://), Cmd-click reload duplicating browser tabs, omnibar arrow key focus races, light-theme foreground rendering with conditional themes, Cmd-hover bounds for spaced file paths, markdown viewer image rendering, surface tab bar action button clipping, task manager attribution, SSH pane sibling kills, background workspace PTY startup, browser IME candidate windows for Japanese / Zhuyin, ripgrep resolution on Nix installs, and Claude sidebar resume config dir overrides.
Added- Grok Build CLI integration with notifications, task manager, and session restore (#4225)
- Surface resume bindings (#4237)
- Allow tab header double-click to zoom panes (#3892) -- thanks @Litee for the report!
- Open crash diagnostics from notifications (#4296)
- Toggle Unread shortcut (#4231)
- Command palette toggle for file opening (#4208)
- Agent conversation fork commands (#4198)
- Let terminal tabs move into existing workspaces (#3890)
- Browser: hidden webview discard settings (#4245) -- thanks @lidge-jun!
- Browser: expose webview lifecycle state in
top (#4243) -- thanks @lidge-jun! - Show
cmux open in CLI help (#4206)
Changed- Preload CLI-created browser panes offscreen so they're ready when the workspace becomes visible (#4345)
- Discard hidden browser webviews to reclaim memory (#4244) -- thanks @lidge-jun!
- Avoid idle background terminal surface priming (#4184)
- Reduce Cloud VM create overhead (#4202)
- Optimize command palette search (#4043)
- Drop runtime-only flags from agent resume commands (#4196) -- thanks @dangaogit for the report!
- Open markdown files through the shared markdown viewer path (#4285)
- Mark workspace unread when any tab inside it is marked unread (#4169)
- Preserve unread indicators across session restore (#4130)
- Reconcile provider-deleted Cloud VMs before applying active VM limits (94c0b709)
- Skip the approval prompt for CLI resume commands (1b5bc76b)
Fixed- Fix NIGHTLY update bundle icon metadata (#4353)
- Fix ripgrep resolution for Nix installs (#3946) -- thanks @afterthought for the report!
- Prevent omo plugin warning infinite loop (#3960) -- thanks @liyue2008 for the report!
- Don't auto-resume an agent that already exited before the snapshot (#4269) -- thanks @wowpotato!
- Fix markdown viewer image rendering (#4288)
- Fix task manager process accounting accuracy (#4132)
- Fix browser omnibar IME candidate window for Japanese / Zhuyin (#4268)
- Fix Cmd-hover bounds for spaced file paths (#4291)
- Fix light theme foreground rendering when using conditional
dark:X,light:Y themes (#4278) - Suppress browser editing shortcut replay (#4186)
- Discover cmux user themes so the light theme palette applies as expected (#3956) -- thanks @abdullahnauman2 for the report!
- Fix Web Inspector blank restore and close crash (#4182)
- Fix variant-aware CLI socket fallback (#3543)
- Cmd-click reload now duplicates the browser tab (Chrome parity) (#4284)
- Fix surface tab bar action button clipping on window resize (#4121) -- thanks @jmoses26 for the report!
- Fix Claude sidebar resume so it no longer overrides
CLAUDE_CONFIG_DIR and triggers first-run prompts (#4116) -- thanks @hexalellogram for the report! - Keep SSH pane close from killing sibling panes (#3995) -- thanks @kylejcaron for the report!
- Fix background workspace PTY startup for socket-created surfaces (#3876) -- thanks @hummer98 for the report!
- Preserve Codex plugin config during hook setup (#4270)
- Fix browser deep-link popups (slack://, discord://, zoom://, etc.) (#4226)
- Fix offscreen terminal helper PTY startup (#4233)
- Fix Cmd-N routing from the browser omnibar (#4038)
- Fix omnibar arrow key focus races (#4183)
- Fix browser
window.showOpenFilePicker support (#4122) -- thanks @ZhuYichuan for the report! - Fix task manager attribution for launchd-parented helpers (#4190)
- Fix background
new-workspace commands (#4137) - Fix Slack composer Cmd+C in browser panes (#4126)
- Fix permission notifications after auto-allow (274128ec)
- Fix markdown and file preview panel session reuse (838ad59f)
- Fix nightly startup crash (76ba2bfd)
SSH Typing Restored, Command Palette Settings Toggles
SSH Typing Restored. Fixes a critical regression in 0.64.5 where cmux ssh sessions would connect and render the remote prompt but drop every keystroke. The backgrounded ssh inside the startup wrapper now inherits the wrapper's stdin via <&0, so typing reaches the remote shell again. Thanks @kays0x for the community fix.
Command Palette Settings Toggles. Boolean Settings rows are now reachable from the command palette, including iMessage Mode. Toggle features without opening Settings.
Sidebar Reorder Stays in View. Reordering a selected workspace now keeps it visible — the sidebar scrolls along so the selected item never disappears off-screen after a move.
Cloud VM Error Guidance. cmux vm errors now include actionable next steps: sign-in instructions when not authenticated, suggested fixes for unknown flags, and usage examples for missing arguments.
Added- Command palette toggles for boolean Settings rows, including iMessage Mode (f85cc56a)
Changed- Improve Cloud VM error guidance with sign-in steps, unknown-flag suggestions, and usage examples (#4094)
- Use transparent backgrounds for file preview panels so previews follow the active Ghostty theme opacity (#4088)
Fixed- Fix
cmux ssh dropping keystrokes after connecting — the backgrounded ssh inside the startup wrapper now inherits the wrapper's stdin so typing reaches the remote shell (#4135) -- thanks @kays0x for the fix, @kenfdev and @liudp1988 for the reports! - Keep the selected workspace visible after sidebar reorders (#4083)
- Fix Pi Vault icon and JSONL session titles (#4120)
Codex Teams, Menubar Global Search, Markdown Viewer, Feed by Default
Codex Teams Subagent Panes. cmux codex-teams now maps Codex's subagent sessions into native cmux panes, the same way claude-teams does for Claude Code. Spawned subagents stack in a right column with sidebar metadata and notifications routed through cmux.
Menubar Global Search. A new global search command surfaces windows, workspaces, panes, surfaces, and right-sidebar tools from the menu bar so you can jump anywhere without reaching for the sidebar.
Rewritten Markdown Viewer. The Markdown viewer now uses a webview-based renderer with richer formatting, better selection, and faster scrolling. Thanks @tobi for the contribution.
Feed on by Default. The Feed is now enabled by default for new and existing users, surfacing notifications, agent events, and workspace activity in one chronological stream.
Quality-of-life Polish. Open right sidebar tools as panes, workspace cwd inheritance, an unread defer shortcut, iMessage workspace ordering and previews, and right-sidebar CLI parity. Bug fixes for Korean IME arrows, garbled Chinese paste, Metal renderer crashes, terminal portal resize lag, multi-monitor sleep/wake window position, and Cloud VM SSH attach.
Added- Codex Teams subagent panes that map
codex-teams sessions into native cmux panes (#4056) - Task Manager column sorting and Program Totals that aggregate repeated processes by name (#4066)
- Amp built-in restore and session plugin with hook installer (be769af3) -- thanks @comp615!
- Menubar global search across windows, workspaces, panes, and surfaces (#3908)
- Open right sidebar tools as panes (#4065)
- Workspace cwd inheritance setting (#3921)
- Right-sidebar CLI command parity (#3810)
- Bring notification CLI to panel parity with dismiss, mark-read, open, and jump-to-unread (#3811)
- Open supported files in cmux on cmd-click (#4041)
- Unread defer shortcut (#4086)
- Pi agent icon (#4057)
- iMessage workspace ordering and live message previews (#4062)
Changed- Enable Feed by default (#3854)
- Keep manually marked workspace and tab unread state sticky until you interact with the terminal, so navigation and focus don't clear it (#4104)
- Route markdown paths from
cmux open and file.open into markdown preview panels instead of generic file preview panels (#4085) - Rewritten Markdown viewer with a webview-based renderer (#3664) -- thanks @tobi!
- Auto-preserve Vertex/Bedrock auth env when launching the Claude wrapper inside cmux (#3714) -- thanks @psh4607!
- Approve installed Codex hooks during initial setup (#4075)
- Hide sidebar descriptions in title-only mode (#4040)
- Limit Cloud VMs by active provider state (#4046)
- Save crash diagnostics under cmux state (#4077)
- Reset Kitty keyboard mode at shell prompt boundaries (#3870)
- Narrow IME candidate key suppression (#3867)
- Keep Claude running after
/clear (#3631) - Clarify in
cmux --help that reload-config covers Ghostty config too (#4060)
Fixed- Fix Korean 2-Set IME left/right terminal arrows (#4095)
- Fix terminal portal resize lag (#4102)
- Fix Settings search synonyms (#4082)
- Fix sidebar unread badge after re-marking notifications (#4084)
- Close browser panels when pages request window close (#4070)
- Fix new-workspace caller window routing (#4042)
- Prevent display-link crash from terminal portal layout reentry (#3885)
- Fix shared WebView task manager attribution
- Fix stale SSH ControlPath cleanup before pane launch (#3894)
- Prevent Metal renderer row rebuild crash (#3916)
- Fix garbled Chinese paste text (#3929)
- Fix cmux frontmost state without keyboard focus (#3907)
- Reject unsupported durable Claude cron requests (#3905)
- Use absolute remote path for cmuxd-remote scp upload (#3880) -- thanks @bcb225 for the report!
- Fix browser Return beep during sign-in (#3843)
- Honor focusPaneOnFirstClick for minimal-mode chrome and workspace sidebar (#3881) -- thanks @rursache for the report!
- Preserve window position across sleep/wake with multiple monitors (#3882) -- thanks @al3kaz for the report!
- Fix terminal TUI background seam (#3903)
- Pass Claude subcommands through the cmux wrapper (#3871) -- thanks @abdelibrahim-hh for the report!
- Open bare
window.open(_blank) without features as a tab instead of a popup (#3245) -- thanks @azu for the report! - Clear sidebar freeze after color/reorder so workspace rows keep updating (#3874) -- thanks @michaellopez for the report!
- Keep update pill polling current after the first update (#3833)
- Redraw cmux window on focus regain even when the cursor is over the sidebar resize handle (#3879) -- thanks @mikesmitty for the report!
- Fix Cloud VM SSH attach and baked tooling (#3786)
- Fix multi-image terminal drops (#3769)
- Cover right sidebar tool panel in search
- Skip unrestorable Claude startup sessions (#4079)
- Fix repeated assistant iMessage completions
- Sanitize Claude Agent View passthrough env
SSH Files Polish, Vault Pi & Hermes, Browser Cookie Import
SSH Files Polish. The Files sidebar now follows SSH workspaces and shows the remote root instead of the local macOS path. SSH workspace descriptors restore on relaunch, and new guarded cmux://ssh deep links prompt before launching ssh so unfamiliar links can't run arbitrary commands.
Vault Pi and Hermes. Pi sessions now restore across relaunch via Vault, and Hermes Agent hooks pipe into the sidebar like Claude, Codex, OpenCode, Gemini, and Rovo Dev. Per-agent toggles let you hide individual agent session restores from Vault.
Browser Cookie Import. A new cmux browser cookies import CLI brings cookies from other browsers into cmux's browser panes so logged-in sessions follow you over.
Quality-of-life Polish. Welcome sidebar toggle shortcuts, Insert Path and Insert Relative Path in the file explorer right-click menu, a warnBeforeClosingTab toggle to opt back into the close confirmation prompt, plus fixes for IME, command palette Escape, modified Backspace in the omnibar, and stale terminal colors after theme switches.
Added- Add
warnBeforeClosingTab close-warning toggle to opt back into the close confirmation prompt (#2808) -- thanks @dandaka for the report! - Add
cmux browser cookies import CLI for bringing cookies into cmux browser panes (#3770) - Add guarded
cmux://ssh deep links that prompt before launching SSH (#3677) - Restore Vault Pi agent sessions across relaunch (#3582, #3636) -- thanks @garizs for the report!
- Add Hermes Agent hook support (#3585)
- Per-agent toggles for hiding Claude, Codex, OpenCode, Gemini, and Rovo Dev session restore (#3616)
- Add Insert Path and Insert Relative Path context menu items in the file explorer (#3620)
- Restore SSH workspace descriptors on relaunch (#3576)
- Follow SSH workspaces in the Files sidebar so the remote root replaces the local macOS path (#3721) -- thanks @Lots-ninety-nine for the report!
- Add Welcome sidebar toggle shortcuts (#3748)
Changed- File drop routing now defaults to text with Shift used as the split override.
- Allow HTTP localhost subdomains in browser panes (#3764)
- Make browser find shortcuts respect remaps (#3728)
- Make Close Tab remaps own browser popup close (#3830)
- Alias top-level auth commands so
cmux signin and cmux signout work without the auth prefix.
Fixed- Fix stale terminal foreground after theme switch leaving white-on-white text in running sessions (#3852)
- Fix managed defaults replay overriding user changes after every
cmux.json reload (#3847) - Preserve the Claude wrapper dev channel resume flag (#3752) -- thanks @Clean-Cole!
- Fix SSH browser loopback fetches reaching backends on second forwarded ports (#3820)
- Fix modified Backspace deleting more than one character when an omnibar inline completion is showing (#3842)
- Close Web Inspector before browser host teardown to prevent a UAF crash on pane close (#3835)
- Fix Files sidebar find result aggregation (#3818)
- Fix Escape dismissing the command palette (#3823)
- Resume Claude, Codex, and OpenCode sessions from the session's original cwd.
- Fix Close Other Tabs targeting all tabs in the pane right-click menu (#3628) -- thanks @flatsponge for the report!
- Clear surface notifications during pane teardown so workspace badges don't stay stuck (#3744)
- Fix folder proxy icon drag (#3804) -- thanks @lederniermagicien!
- Fix right sidebar shortcut defaults (#3784)
- Fix right sidebar titlebar double-click (#3750)
- Fix right sidebar Find typing lag (#3739)
- Route SSH image drops through the terminal text path.
- Fix terminal top-row click routing (#3720)
- Fix Mark Workspace as Unread enablement (#3727) -- thanks @mfn for the report!
- Fix Cmd-W to close Task Manager and auxiliary windows.
- Fix command palette arrow keys and no-match flash.
- Restore Zhuyin IME candidate marked-text handling (#3574) -- thanks @yuanganai for the report!
- Fix Task Manager CPU sampling (#3588)
- Fix Cmd+N window size after the last window closes (#3611) -- thanks @bigtruth for the report!
- Fix Match Terminal Background sidebar toggle snapping back on (#3635)
- Count cmux app RSS in Task Manager totals (#3587)
- Keep Settings layered above the main window (#3612)
- Forward Left/Right arrow keys to the browser surface (#3663) -- thanks @kimdane0115 for the report!
- Fix Rovo Dev transcript previews (#3666)
Added- Added Show in Finder to the workspace sidebar right-click menu.
cmux config CLI with cmux config doctor for validating cmux.json without a socket, plus cmux config path, cmux config docs, and cmux config reload aliases (#3454)
Fixed- Fix launch crash from off-main-thread CoreAnimation transactions when reapplying managed settings (#3598)
- Fix file preview drag-and-drop so Finder and sidebar drops route into the hovered pane and tab bar drops insert as preview tabs (#3539)
Fixed- Fix launch crash on v0.64.1 caused by the bundled CLI failing to load the Sentry framework (#3565) -- thanks @hyi1233 for the report!
- Keep SSH sessions alive when closing a pane (#3566) -- thanks @kylejcaron for the report!
- Restore sidebar scroller visibility to reflect real overflow state (#3570) -- thanks @ibagur for the report!
- Fix Finder image drops into Claude Code terminals (#3567) -- thanks @streeyt for the report!
- Open links in the Markdown panel via an explicit OpenURLAction (#3558) -- thanks @psh4607!
- Prevent recursive lock crash on cmd-clicked Markdown viewer route and stop dropping fragment/query URLs (#3559) -- thanks @psh4607! Reported by @addisonlynch.
- Stop the Claude wrapper from auto-adding bypass-permissions flags and preserve user-provided
ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN through terminal startup (#3564)
Fixed- Fix sidebar workspace close (×) button intermittently failing to appear on hover (#3546)
Session Restore on Quit, Passkeys, File Explorer, Task Manager
Session Restore on Quit. Closing the last window with the red X no longer drops your work. cmux restores prior panes on relaunch and resumes Claude Code, Codex, OpenCode, Gemini, and Rovo Dev sessions where you left off.
Passkeys, WebAuthn, and FIDO2. Sign in to passkey-protected sites directly inside cmux browser panes. Reworked inside-out signing keeps the notarized Developer ID build compatible with macOS authentication services.
File Explorer. A Finder-like file explorer sidebar with full SSH support so remote workspaces get the same tree view as local ones.
Task Manager. A built-in Task Manager window plus cmux top CLI shows a live snapshot of windows, workspaces, panes, surfaces, and browser webviews, with jumps from the manager into the matching surface.
Added- Restore prior panes and resume Claude Code, Codex, OpenCode, Gemini, and Rovo Dev sessions across relaunch, including when you close the last window with the red X (#2936, #2978, #3259, #3419, #3429, #3487, #3528, #3530, #3535)
- Passkey, WebAuthn, and FIDO2 support in browser panes (#2660, #2727, #2905, #2908)
- Task Manager window and
cmux top CLI for window, workspace, pane, surface, and browser webview snapshots (#3290, #3471) - Finder-like file explorer sidebar with SSH support (#1963)
- File preview panels in the sidebar (#3139)
- Menu bar only mode (#3181)
- System-wide hotkey to show and hide cmux windows (#2389)
- Cursor and Gemini CLI agent integrations with
setup-hooks (#2717) - iMessage mode for agent prompts (#3252)
- Settings sidebar shell and unified config utility window with cmux, Ghostty, and synced tabs (#3024, #3244, #3400)
- Make
cmux.json the canonical settings file with JSONC parsing and legacy settings.json fallback (#3409, #3424) - Configurable
cmux.json workspace and tab bar plus-button actions (#3084, #3348) - Configurable surface tab bar font size (#2645)
- Configurable workspace recoloring actions, default-bound to Ctrl+Option+0 through Ctrl+Option+9 (#3327)
- Allow space as a bindable key, allow keyboard shortcuts to be unbound, and make reload and rename shortcuts context-aware (#3333, #3334, #3468)
- Inline recorder messages explaining shortcut rejections and offering localized Reassign for conflicts (#3035)
- Help menu with cmux docs nav, Skills, Agent Integrations submenu, and
skills.sh install flow (#3402) - Find in directory shortcut (#3208)
- Move tabs into new workspaces (#3285)
- Hover tooltips on workspace and pane tabs (#3329)
- Command palette ID copy actions and copy ID context menu actions (#3183, #3247)
- Command palette actions for right sidebar modes (#3408)
- macOS clear glass background blur support (#3313)
- Focus-neutral split-off layout command (#3484)
--layout parameter on workspace.create for programmatic split layouts (#2916) -- thanks @talldan!- Korean (ko) localization (#2885) -- thanks @say8425!
- Opt-in setting to open Cmd-clicked Markdown files in the cmux Markdown viewer (#2904) -- thanks @SeongJaeSong!
- cmux browser disable switch (#3256)
- Markdown and plain-text variants for docs pages plus
/llms.txt index for agent consumption (#3410)
Changed- Coalesce sidebar PR polling per-repo, drop checks fetch, and state-machine the probe queue to avoid GitHub rate limits (#2585, #2662)
- Speed up large terminal pastes by skipping eager HTML/RTF decoding when plain text is available (#3000)
- Use workspace color for selected sidebar rows and the left rail (#3038, #3082, #3310)
- Improve default light and dark theme fallback (#3123)
- Sidebar PR clickability defaults to on, with visibility split from clickability as a separate setting (#3273, #3492)
- Make hook notifications non-blocking (#3218)
- Clean up Claude session titles, render slash-command markup as readable titles, and skip meta caveats (#3211)
- Apply sidebar background to right panel and consolidate sidebar settings (#3103, #3400)
- Improve settings search aliases with localized variants (#3294, #3296)
- Disable right sidebar horizontal scroll (#3202)
- Optimize surface config reload (#3480)
- Auto-hide terminal scroll bar with disable setting on TUI alt-screen (#2678, #2729)
- Show Codex TUI errors in the sidebar (#3212)
- Keep Cmd-Shift-N windows on the source display (#3214)
- Select find text on repeated Cmd+F (#3314)
- Disable Claude OSC notifications in the cmux wrapper and gate Claude OSC suppression on integration setting (#3418, #3474)
- Namespace agent hook CLI commands (#3298)
Fixed- Fix shell integration not injected when Ghostty
ZDOTDIR overrides the wrapper (#2778) -- thanks @michaeljauk! - Allow symlinked Ghostty config files (#2813) -- thanks @ivanrvpereira!
- Fix paste only pasting first character (#2847) -- thanks @dezren39!
- Prefer UTF-8 plain text in the pasteboard to avoid Mac OS Roman character loss (#2877) -- thanks @dasanworld!
- Fix blank split panes after portal reveal (#2840) -- thanks @jaynora2026!
- Fix workspace color picker context menu blinking (#2566)
- Hide stale startup workspace portals during teardown (#2658)
- Fix AX window polling stalls with app hierarchy caching (#2986)
- Fix close confirmation bypass when spamming close (#2989)
- Fix multi-workspace close confirmation modality (#3153)
- Fix Cmd/Ctrl shortcut hint parity (#2994)
- Cancel drag on Escape (#3013)
- Pin regular-weight Japanese auto-fallback face (#3015)
- Fix 100% CPU from ContentView publisher feedback loop (#3028)
- Fix
DebugEventLog NSFileHandle ObjC exception crash (#3034) - Fix main-thread blocking in workspace PR refresh (#3036)
- Fix terminal blanking after OSC completion notifications (#3048)
- Fix blank terminal after workspace selection (#3012)
- Fix minimal-mode traffic-light inset, new-window Bonsplit tab bar, window routing, portal hit testing, drag pass-through, and pane tab rendering (#3055, #3150, #3194, #3399)
- Drop stale merged PRs from the sidebar badge selection (#3063)
- Fix transparent titlebar backdrop matching and sidebar tint backdrop ownership (#3179, #3382)
- Fix feedback editor scrolling (#3182)
- Fix bare
window.open(_blank) routing in browser panes (#3262) - Fix non-ASCII Cmd+V paste when rich clipboard payloads are lossy (#3268)
- Fix locale separators in sidebar identifiers (#3269)
- Deduplicate numpad input across IME full-to-half-width transition (#3292)
- Follow up equalize splits shortcut fixes (#3309)
- Make find escape behavior consistent (#3330)
- Fix unbound Cmd+Shift forwarding to terminal (#3332)
- Make Ctrl+P command palette navigation remappable and Cmd+D new-tab shortcut rebindable (#3335, #3338, #3398)
- Prevent shortcut recorder keys from navigating Settings (#3377)
- Preserve context-separated shortcuts through recorder swaps (#3489)
- Fix browser tab drag to new workspace, drops into sidebar workspaces, and terminal portal tab drop routing (#3299, #3381, #3430)
- Fix Cmd+Shift+Enter pane zoom for browser panes (#3520)
- Fix terminal focus after browser split (#3460)
- Fix shortcut settings dispatch_once launch crash and settings-file launch crash paths (#3455, #3476)
- Fix editable shortcuts from
settings.json (#3462) - Fix live theme picker application, launch theme before app appearance exists, and cmux theme picker Enter from search (#3221, #3378, #3431, #3479)
- Clamp Settings window away from display edge (#3436)
- Fix SSH
LocalCommand incompatibility with Fish shell (#3506, #3534) - Fix OMX HUD bottom pane placement (#3516)
- Fix inherited Claude auth env in cmux terminals (#3519)
- Fix config window to open active cmux Ghostty config (#3525)
- Fix notification dismissal with stale app focus (#3532)
- Persist app icon mode on the app bundle (#2884)
- Fix appIcon=automatic crash on macOS Tahoe (#2833)
- Fix terminal selection autoscroll past viewport edge (#2725)
- Fix command-hold shortcut hints and prevent sidebar truncation (#2767)
- Fix Raycast paste fallback regression (#2768)
- Fix Cmd+Shift+V paste in browser pane (#2779)
- Fix up/down arrow keys in browser surface (#2780)
- Fix Cmd+click file path punctuation trimming (#2831)
- Fix bilibili search popup opening detached window (#2836)
- Fix macOS modifier desync causing idle terminal input corruption (#2855)
- Fix scrollback-limit byte handling (#2927)
- Fix LinkedIn external-link redirect handoff in browser pane (#2930)
- Fix OpenCode bracketed paste fallback in terminal (#2971)
- Fix startup hang from repeated file drop overlay install (#2972)
- Fix
cmux.json named workspace colors (#3149) - Keep selected workspace visible in the sidebar (#3152)
- Hide portals for unmounted workspaces (#3155)
- Fix Bonsplit tab bar height and selected tab separator (#3331, #3351)
- Fix browser omnibar typing lag with many workspaces (#3422)
- Fix nightly codesigning for nested bundles, Sparkle executables, and dock tile plugin (#2676, #2677, #2679, #2680)
Added- Support chorded keyboard shortcuts (#2528)
- Detect listening ports for remote SSH workspaces (#2398)
- Editable workspace descriptions (#2475)
- Claude Binary Path setting (#2514)
cmux omx and cmux omc agent integrations (#2619)- "Open Folder in VS Code (Inline)" menu item and command palette entry (#2409)
- New Window entry in the Dock menu (#2340)
- Reset-terminal workaround in the terminal menu (#2349)
- React Grab inject button in the browser toolbar (#2373)
- Hover background on split action buttons (#2271)
- Cmd-click fallback for bare filenames in
ls output (#2294) - Localized tab context menu and alert strings (#2422)
Changed- Relicense cmux from AGPL-3.0 to GPL-3.0 (#2364)
- Update bundled Ghostty fork to latest upstream (#2379)
- Sidebar PR lookups are now event-driven to reduce GitHub API load (#2453)
- Keep the latest sidebar notification until it is explicitly cleared (#2623)
- Switch the nightly Sparkle appcast feed to R2 (#2335, #2363, #2366)
Fixed- Fix terminals freezing when the first responder drifts off the focused surface (#2505)
- Fix sidebar layout loop and CLI socket deadlocks (#2601)
- Fix sidebar LazyVStack layout loop in the workspace list (#2328)
- Fix focus reporting leak on pane creation (#2511)
- Fix browser pane flicker during multi-split resize (#2574)
- Fix browser panel resize flicker during split drag (#2513)
- Fix browser pane hangs from redundant portal refreshes (#2353)
- Fix browser pane dark-mode leak on light pages (#2346)
- Fix DevTools pane breaking after workspace switch round-trips (#2621)
- Fix sidebar background: add missing locale entries and portal resync on toggle (#2622)
- Fix session restore suppression on relaunch (#2469)
- Fix session restore terminal cursor focus race (#2471)
- Fix terminal focus and surface recovery after layout changes (#2354)
- Fix missing sidebar ports for agent-run dev servers (#2562)
- Fix missing sidebar git branch metadata for workspaces (#2563)
- Fix sidebar live refresh for branch and PR state (#2331)
- Fix duplicate sidebar git metadata publishes (#2405)
- Fix SSH password-auth bootstrap race (#2564)
- Fix remote proxy notification spam with cooldown, backoff, and SSH keepalive (#2330)
- Fix tmux-compat
split-window surface resolution (#2351) - Fix
new-split falling back to the focused surface when the target is stale (#2518) — thanks @anusheel! - Fix CLI commands briefly stealing focus (#2464)
- Fix paste from Raycast and other apps using alternate plain-text UTIs (#2467)
- Fix stray
C insertion from Speakly dictation (#2413) - Fix Korean IME jamo leak during composition (#2529)
- Stop swallowing
/ and ? on ABC-QWERTZ keyboard layouts (#2447) - Keep prompt colors when zsh switches local
TERM to xterm-256color (#2613) - Ensure shell integrations always dispatch
claude through the bundled wrapper (#2465) - Fix shell integration review regressions (#2466)
- Fix React Grab Cmd+Shift+G terminal round-trip (#2615)
- Suppress cmd-hover path highlighting while terminal selection is active (#2579)
- Keep cmux browser Find shortcuts authoritative over page handlers (#2356)
- Fix minimal-mode tab bar disappearing in fullscreen (#2375)
- Fix transparent background flash during sidebar toggle (#2378)
- Fix macOS 26 glass window gating (#2468)
- Fix fullscreen new windows opening in the current Space (#2345)
- Fix Dock persistence for manual app icons (#2360)
- Fix update error details dialog overflow (#2359)
- Fix Ctrl+K reaching the command palette text editor (#2394)
- Keep Cmd+P stable during animated workspace title updates (#2393)
- Fix Cmd+P workspace retention for the main CI workspace (#2412)
- Coalesce portal sync to latest geometry to fix browser overlay drift (#2214)
- Fix
claude_vm_node OOM behavior and hook payload retention (#2462) - Fix GitHub star badge
k formatting (#2473) - Keep GitHub stars badge stable across navigation (#2476)
- Fix web header overlap (#2452)
Fixed- Fix crash on startup after upgrading from older versions due to stale window geometry data (#2306)
- Fix re-entrant
displayIfNeeded crash during layout follow-up from SwiftUI geometry changes (#2305) — thanks @KyleJamesWalker! - Fix macOS compatibility with versioned geometry persistence to prevent future upgrade crashes (#2308)
SSH, Claude Code Teams, oh-my-openagent, Browser Import, Minimal Mode
SSH. cmux ssh user@remote creates a workspace for a remote machine. Browser panes route through the remote network so localhost just works. Drag an image into a remote session to upload via scp. Coding agent notifications come home to your local sidebar. Reconnects on drops.
Claude Code Teams. cmux claude-teams launches Claude Code's experimental teammate mode with one command. It sets up the environment, fakes a tmux session, and translates tmux commands into native cmux splits. Teammates stack vertically in a right column with sidebar metadata and notifications.
oh-my-openagent. cmux omo integrates oh-my-openagent (formerly oh-my-opencode), which orchestrates specialist agents across Claude, GPT, and Gemini in parallel. Same tmux shim as claude-teams, auto-installs the plugin, notifications route through cmux.
Browser Profile Import. Import cookies, history, and sessions from Chrome, Arc, Brave, Firefox, Safari, and 20+ browsers. The import wizard detects installed browsers, lets you pick profiles, and injects everything into cmux's browser panes so you're already logged in.
Minimal Mode. Hide the titlebar for a distraction-free terminal. Controls move to the sidebar and appear on hover. Toggle from the command palette or Settings.
Custom Commands. Define project-specific actions in cmux.json that launch from the command palette. One file per repo, no global config needed.
Added- Browser profile import — cookies, history, and settings from Chrome, Firefox, Safari, and more (#318, #1582, #1593)
- Support
window.open() popup windows in browser panes with shared OAuth context (#1150, #1600) - Minimal mode — hide the titlebar for a distraction-free terminal (#1479, #2218)
cmux.json custom commands — define project-specific actions launched from the command palette (#2011, #2122)cmux omo command for oh-my-openagent integration (#2087, #2230, #2280)- Codex CLI hooks integration for terminal notifications (#2103)
- Customizable number shortcuts for workspace switching (#1951)
- Customizable sidebar selection highlight color (#1824)
- Match Terminal Background sidebar color setting (#2293)
- Optional single-click focus for inactive split panes (#1796)
- Support image drag-and-drop into SSH terminals (#1838)
- Support dropping folders onto the dock icon to open as workspaces (#1571)
- Support modifier+key combinations in
send-key CLI — ctrl+enter, shift+tab, arrow keys, home/end/delete/pageup/pagedown (#1994, #1920) --name flag for new-workspace CLI command (#2160)--no-focus flag for cmux ssh (#2227)--direction flag for markdown open command (#1763)- Per-surface TTY exposed in
cmux tree output (#2040) set-color / clear-color workspace actions for tab color via CLI (#1873, #1833)- IntelliJ IDEA added to command palette Open Directory targets (#1860)
- Open a new terminal tab from empty tab bar double-click (#1601)
- Double-click custom titlebar to zoom or minimize (#2130)
- Confirm before closing pinned workspaces (#1895)
- Show tab name in close tab confirmation dialog (#1845)
- Sidebar listening ports are now clickable to open in browser (#1844)
- Ukrainian (uk) localization (#2226)
- Hidden CLI command for live terminal debugging (#1599)
rc and remote-control added to command passthrough (#1539)- Export
CMUX_SOCKET alongside CMUX_SOCKET_PATH in terminal env (#1991) - Dual licensing — AGPL + commercial (#2021)
- Universal binary (arm64 + x86_64) for stable releases (#2287)
- Add claude-teams, omo, and __tmux-compat to Go relay CLI for SSH sessions (#2238)
- Warn Before Quit enforced when Cmd+Q arrives via app switcher (#2186)
Changed- Show update-available banner automatically on launch (#1651, #1543, #1575)
- Restore Sparkle scheduled update checks (#1597)
- New window inherits size from current window (#2124)
- Restore last-surface close preference toggle (#1679)
- Rename "Import From Browser" to "Import Browser Data" (#1672)
- Make founders email selectable in feedback success view (#1733)
- Include hardware details in feedback submissions (#1726)
- Coalesce scrollbar updates during bulk output for improved performance (#2116)
- Reduce shell integration prompt latency (#2109)
- Skip quit confirmation for tagged DEV builds (#2288)
- Use dedicated setting for sidebar port link browser preference (#2219)
- Skip sidebar PR lookup on main/master branches (#2110)
- Stabilize sidebar directory ordering when split focus changes (#1798)
- Improve tmux notification attention routing (#1898)
Fixed- Fix Cmd+N workspace creation crashes caused by stale snapshots, ARC hotpaths, and restore-time races (#2204, #2183, #2181, #2178, #2176, #2173, #2133, #2023, #1985, #1930)
- Fix ARC workspace inheritance crash and native Zig helper builds (#2283)
- Fix
EXC_BAD_ACCESS caused by over-releasing Ghostty font (#1496) - Fix terminal black screen on macOS 26.3.1 by dispatching Ghostty callbacks to main thread (#1937)
- Fix blank terminal renders after workspace switches (#1964)
- Fix stale terminal portal after restore churn (#2025)
- Fix floating portal terminal after nightly update relaunch (#1696)
- Fix terminal portal resync after restore-time bind (#1973)
- Fix terminal find overlay crash and focus handoff (#1487)
- Fix split transparency regression (#1568)
- Apply
background-opacity and background-blur to terminal rendering area (#1858) - Fix keyboard shortcuts not working with CJK input sources (Korean, Japanese, Russian) (#1649, #1913, #2202)
- Skip CJK fallback font injection when font-family already covers glyphs (#2241)
- Skip Korean from CJK font-codepoint-map auto-injection (#1700)
- Fix Japanese IME confirmation Enter from executing command prematurely (#2075, #1671)
- Fix Korean IME Enter handling on composition path in browser panes (#2108)
- Fix AZERTY Option+Delete word delete in Claude Code (#1640)
- Fix Escape key not working in terminal panels (e.g., lazygit) (#1957)
- Fix unbound Cmd+Shift+key combos being silently swallowed (#1959)
- Fix Cmd+W closing terminal tabs instead of About/Licenses windows (#1473)
- Fix Cmd+O opening Documents folder — handle in custom shortcut handler (#2034)
- Consume Cmd+number shortcuts when workspace index is out of bounds (#2033)
- Fix arrow key glyph matching in customizable shortcuts (#1443)
- Fix cursor movement on double-click selection (#1709)
- Fix doomscroll when reviewing scrollback (#1616)
- Fix browser panes rendering blank after reopen (#2141)
- Fix browser portal leaking to other tabs on Bonsplit tab switch (#2000)
- Fix browser freeze after pane split (#1852)
- Fix browser pane video fullscreen (#1921)
- Fix browser image copy pasteboard data (#1850)
- Fix browser pane file drops hanging on "Uploading" (#1843)
- Fix browser back navigation history handoff (#1897)
- Fix browser devtools X-close persistence (#1627)
- Fix browser PR metadata deadlock and BrowserPanelView hot paths (#1564)
- Fix Cloudflare/CAPTCHA verification failures in browser panel (#1877)
- Fix Google sign-in infinite loading in browser pane (#1493)
- Fix native value setter for React compatibility in browser panes (#2059)
- Fix sidebar badges not refreshing on workspace state change (#2046)
- Fix sidebar PR badge detection for workspace branches and restored workspaces (#1896, #1570, #1636)
- Fix sidebar notification persisting after being read (#1933)
- Fix premature workspace title truncation in sidebar (#1859)
- Fix pinned workspace ordering — keep pinned workspaces above pin boundary (#1503, #1505)
- Fix command palette ordering for "check" query (#1740)
- Fix command palette focus after terminal find (#2089)
- Fix missing command palette open-in targets (#1621)
- Fix all split panes appearing focused after layout restoration (#2088)
- Fix panel resize stuttering when tiled with browser panels (#1969)
- Fix splitter hitbox overlap and terminal scrollbar width resync (#1950)
- Increase content side hit width to prevent accidental window resize (#2018)
- Fix window position restore on relaunch (#2129)
- Fix dock icon not auto-switching with system dark mode (#1928, #1510)
- Align titlebar icons with traffic-light buttons (#1754)
- Fix focused notification sound playback (#1855)
- Fix laggy terminal sync during sidebar drags (#1598)
- Fix spinner hang after display resolution changes (#1549)
- Fix workspace layout follow-up spin loop (#1633)
- Fix Ghostty
resize_split keybind support (#1899) - Fix update attempt refreshing pill without actually updating (#2168, #2142, #2117)
- Fix SSH control master cleanup on remote teardown (#2104)
- Fix SSH cleanup after moving the last remote surface (#2123)
- Fix SSH image transfer cleanup and IPv6 followups (#1907, #1904)
- Fix SSH remote CLI wrapper and proxy follow-ups (#1596)
- Fix nightly SSH remote daemon checksum mismatch (#2225)
- Fix cmux ssh notify surface targeting (#1799)
- Fix tmux compat store decoding, layout cleanup, and cross-workspace fallback (#2207)
- Fix claude-teams pane anchoring with main-vertical layout (#2119)
- Fix claude-hook stop teardown races (#1954)
- Fix Claude Code hooks config to match actual schema (#1388)
- Handle TabManager unavailable in SessionEnd/Start hooks (#1735)
- Fix blocking sleep in preexec hook causing command lag (#1444)
- Fix redundant focus events causing Powerlevel10k redraws (#1579)
- Fix identical session autosave writes (#1732)
- Fix locale page crashes under Google Translate (#1956)
- Fix About Panel newline escaping (#1298)
- Fix remote sidebar directory canonicalization to preserve live paths (#1800)
- Fix AppleScript
count windows returning 0 and working directory returning empty (#1826) - Fix PWD action routing to correct TabManager per tabId (#2147)
- Fix socket returning wrong error when surface_id is provided but unresolvable (#2150)
- Guard inherited terminal config against stale surfaces (#2101)
- Suppress socat stdout in
_cmux_send to prevent "OK" leak (#1619) - Add
-r shorthand to skip session ID check in Claude wrapper (#1992) - Check git repo before running git commands to prevent TCC permission prompts (#1677)
- Preserve explicit wheel scrollback against passive follow (#1965)
- Fix terminal pane drag/drop handoff delay (#1837)
Removed- Remove restricted web-browser entitlement (#1727)
Added- Configurable sidebar tint color with separate light/dark mode support via Settings and config file (
sidebar-background, sidebar-tint-opacity) (#1465) - Cmd+P all-surfaces search option (#1382)
cmux themes command with bundled Ghostty themes (#1334, #1314)- Sidebar can now shrink to smaller widths (#1420)
- Menu bar visibility setting (#1330)
Changed- CLI Sentry events are now tagged with the app release (#1408)
- Stable socket listener now falls back to a user-scoped path, and repeated startup failures are throttled (#1351, #1415)
Fixed- Command palette command-mode shortcut, navigation, and omnibar backspace or arrow-key regressions (#1417, #1413)
- Stale Claude sidebar status from missing hooks, OSC suppression, and PID cleanup (#1306)
- Split cwd inheritance when the shell cwd is stale (#1403)
- Crashes when creating a new workspace and when inserting a workspace into an orphaned window context (#1391, #1380)
- Cmd+W close behavior and close-confirmation shell-state regressions (#1395, #1386)
- macOS dictation NSTextInputClient conformance and terminal image-paste fallbacks (#1410, #1305, #1361, #1358)
- VS Code command palette target resolution, Ghostty Pure prompt redraws, and internal drag regressions (#1389, #1363, #1316, #1379)
Added- Cmd+T (New tab) shortcut on the welcome screen (#1258)
Fixed- Cmd+backtick window cycling skipping windows
- Titlebar shortcut hint clipping (#1259)
- Terminal portals desyncing after sidebar changes (#1253)
- Background terminal focus retries reordering windows
- Pure-style multiline prompt redraws in Ghostty
- Return key not working on Cmd+Ctrl+W close confirmation (#1279)
- Concurrent remote daemon RPC calls timing out (#1281)
Removed- SSH remote port proxying (reverted, will return in a future release)
Markdown Viewer, Browser Find, Vi Copy Mode, and Localization
Markdown Viewer. Open Markdown files in their own panel and keep them live with file watching. Notes, READMEs, and docs refresh automatically as the file changes on disk.
Find in Browser. Browser panels now support Cmd+F with inline find controls, so you can search long docs, dashboards, and issue threads without leaving cmux.
Vi Copy Mode. Terminal scrollback now has a keyboard copy mode with vi-style navigation, making it much easier to inspect and copy from large output buffers.
Custom Notification Sounds. Choose from bundled sounds or pick your own audio file so background task notifications are easier to notice and easier to personalize.
Expanded Localization. cmux now includes Japanese plus 16 additional languages, and a per-app language override lets you change the UI language without changing macOS system settings.
Added- Markdown viewer panel with live file watching (#883)
- Find-in-page (Cmd+F) for browser panels (#837, #875)
- Keyboard copy mode for terminal scrollback with vi-style navigation (#792)
- Custom notification sounds with file picker support (#839, #869)
- Browser camera and microphone permission support (#760, #913)
- Language setting for per-app locale override (#886)
- Japanese localization (#819)
- 16 new languages added to localization (#895)
- Kagi as a search provider option (#561)
- Open Folder command (Cmd+O) (#656)
- Dark mode app icon for macOS Sequoia (#702)
- Close other pane tabs with confirmation (#475)
- Flash Focused Panel command palette action (#638)
- Zoom/maximize focused pane in splits (#634)
cmux tree command for full CLI hierarchy view (#592)- Install or uninstall the
cmux CLI from the command palette (#626) - Clipboard image paste in terminal with Cmd+V (#562, #853)
- Middle-click X11-style selection paste in terminal (#369)
- Honor Ghostty
background-opacity across all cmux chrome (#667) - Setting to hide Cmd-hold shortcut hints (#765)
- Focus-follows-mouse on terminal hover (#519)
- Sidebar help menu in the footer (#958)
- External URL bypass rules for the embedded browser (#768)
- Telemetry opt-out setting (#610)
- Browser automation docs page (#622)
- Vim mode indicator badge on terminal panes (#1092)
- Sidebar workspace color in CLI sidebar_state output (#1101)
- Prompt before closing window with Cmd+Ctrl+W (#1219)
- Jump to Latest button in notifications popover (#1167)
- Khmer localization (#1198)
- cmux claude-teams launcher (#1179)
Changed- Command palette search is now async and decoupled from typing for reduced lag
- Fuzzy matching improved with single-edit and omitted-character word matches
- Replaced keychain password storage with file-based storage (#576)
- Fullscreen shortcut changed to Cmd+Ctrl+F, and Cmd+Enter also toggles fullscreen (#530)
- Workspace rename shortcut Cmd+Shift+R now uses the command palette flow
- Renamed tab color to workspace color in user-facing strings (#637)
- Feedback recipient changed to
feedback@manaflow.com (#1007) - Regenerated app icons from Icon Composer (#1005)
- Moved update logs into the Debug menu (#1008)
- Updated Ghostty to v1.3.0 (#1142)
- Welcome screen colors adapted for light mode (#1214)
- Notification sound picker width constrained (#1168)
Fixed- Frozen blank launch from session restore race condition (#399, #565)
- Crash on launch from an exclusive access violation in drag-handle hit testing (#490)
- Use-after-free in
ghostty_surface_refresh after sleep/wake (#432, #619) - Startup SIGSEGV by pre-warming locale before
SentrySDK.start (#927) - IME issues: Shift+Space toggle inserting a space (#641, #670), Ctrl fast path blocking IME events, browser address bar Japanese IME (#789, #867), and Cmd shortcuts during IME composition
- CLI socket autodiscovery for tagged sockets (#832)
- Flaky CLI socket listener recovery (#952, #954)
- Side-docked dev tools resize (#712)
- Dvorak Cmd+C colliding with the notifications shortcut (#762)
- Terminal drag hover overlay flicker
- Titlebar controls clipped at the bottom edge (#1016)
- Sidebar git branch recovery after sleep/wake and agent checkout (#494, #671, #905)
- Browser portal routing, uploads, and click focus regressions (#908, #961)
- Notification unread persistence on workspace focus
- Escape propagation when the command palette is visible (#847)
- Cmd+Shift+Enter pane zoom regression in browser focus (#826)
- Cross-window theme background after jump-to-unread (#861)
window.open() and target=_blank not opening in a new tab (#693)- Terminal wrap width for the overlay scrollbar (#522)
- Orphaned child processes when closing workspace tabs (#889)
- Cmd+F Escape passthrough into terminal (#918)
- Terminal link opens staying in the source workspace (#912)
- Ghost terminal surface rebind after close (#808)
- Cmd+plus zoom handling on non-US keyboard layouts (#680)
- Menubar icon invisible in light mode (#741)
- Various drag-handle crash fixes and reentrancy guards
- Background workspace git metadata refresh after external checkout
- Markdown panel text click focus (#991)
- Browser Cmd+F overlay clipping in portal mode (#916)
- Voice dictation text insertion (#857)
- Browser panel lifecycle after WebContent process termination (#892)
- Typing lag reduction by hiding invisible views from the accessibility tree (#862)
- CJK font fallback preventing decorative font rendering for CJK characters (#1017)
- Inline VS Code serve-web token exposure via argv (#1033)
- Browser pane portal anchor sizing (#1094)
- Pinned workspace notification reordering (#1116)
- cmux --version memory blowup (#1121)
- Notification ring dismissal on direct terminal clicks (#1126)
- Browser portal visibility when terminal tab is active (#1130)
- Browser panes reloading when switching workspaces (#1136)
- Sidebar PR badge detection (#1139)
- Browser address bar disappearing during pane zoom (#1145)
- Ghost terminal surface focus after split close (#1148)
- Browser DevTools resize loop and layout stability (#1170, #1173, #1189)
- Typing lag from sidebar re-evaluation and hitTest overhead (#1204)
- Browser pane stale content after drag splits (#1215)
- Terminal drop overlay misplacement during drag hover (#1213)
- Hidden browser slot inspector focus crash (#1211)
- Browser devtools hide fallback (#1220)
- Browser portal refresh on geometry churn (#1224)
- Browser tab switch triggering unnecessary reload (#1228)
- Devtools side dock guard for attached devtools (#1230)
Tab Colors, Command Palette, Pin Workspaces
Tab Colors. Right-click any workspace in the sidebar to assign it a color. There are 17 presets to choose from, or pick a custom color. Colors show on the tab itself and on the workspace indicator rail.
Command Palette. Hit Cmd+Shift+P to open a searchable command palette. Every action in cmux is here: creating workspaces, toggling the sidebar, checking for updates, switching windows. Keyboard shortcuts are shown inline so you can learn them as you go.
Open With. You can now open your current directory in VS Code, Cursor, Zed, Xcode, Finder, or any other editor directly from the command palette. Type "open" and pick your editor.
Pin Workspaces. Pin a workspace to keep it at the top of the sidebar. Pinned workspaces stay put when other workspaces reorder from notifications or activity.
Workspace Metadata. The sidebar now shows richer context for each workspace: PR links that open in the browser, listening ports, git branches, and working directories across all panes.
Added- Command palette (Cmd+Shift+P) with update actions and all-window switcher results (#358, #361)
- Split actions and shortcut hints in terminal context menus
- Cross-window tab and workspace move UI with improved destination focus behavior
- Sidebar pull request metadata rows and workspace PR open actions
- Workspace color schemes and left-rail workspace indicator settings (#324, #329, #332)
- URL open-wrapper routing into the embedded browser (#332)
- Cmd+Q quit warning with suppression toggle (#295)
cmux --version output now includes commit metadata
Changed- Added light mode and unified theme refresh across app surfaces (#258) — thanks @ijpatricio for the report!
- Browser link middle-click handling now uses native WebKit behavior (#416)
- Settings-window actions now route through a single command-palette/settings flow
- Sentry upgraded with tracing, breadcrumbs, and dSYM upload support (#366)
- Session restore scope clarification: cmux restores layout, working directory, scrollback, and browser history, but does not resume live terminal process state yet
Fixed- Startup split hang when pressing Cmd+D then Ctrl+D early after launch (#364)
- Browser focus handoff and click-to-focus regressions in mixed terminal/browser workspaces (#381, #355)
- Caps Lock handling in browser omnibar keyboard paths (#382)
- Embedded browser deeplink URL scheme handling (#392)
- Sidebar resize cap regression (#393)
- Terminal zoom inheritance for new splits, surfaces, and workspaces (#384)
- Terminal find overlay layering across split and portal-hosted layouts
- Titlebar drag and double-click zoom handling on browser-side panes
- Stale browser favicon and window-title updates after navigation
Tab Context Menu, DevTools, Notification Rings, CJK Input
Tab Context Menu. Right-click any tab in a pane to rename it, close tabs to the left or right, move it to another pane, or create a new terminal or browser tab next to it. You can also zoom a pane to full size and mark tabs as unread.
Browser DevTools. The embedded browser now has full WebKit DevTools. Open them with the standard shortcut and they persist across tab switches. Inspect elements, debug JavaScript, and monitor network requests without leaving cmux.
Notification Rings. When a background process sends a notification (like a long build finishing), the terminal pane shows an animated ring so you can spot it at a glance without switching workspaces.
CJK Input. Full IME support for Korean, Chinese, and Japanese. Preedit text renders inline with proper anchoring and sizing, so composing characters works the way you'd expect.
Claude Code. Claude Code integration is now enabled by default. Each workspace gets its own routing context, and agents can read terminal screen contents via the API.
Added- Tab context menu with rename, close, unread, and workspace actions (#225)
- Cmd+Shift+T reopens closed browser panels (#253)
- Vertical sidebar branch layout setting showing git branch and directory per pane
- JavaScript alert/confirm/prompt dialogs in browser panel (#237)
- File drag-and-drop and file input in browser panel (#214)
- tmux-compatible command set with matrix tests (#221)
- Pane resize divider control via CLI (#223)
- Production read-screen capture APIs (#219)
- Notification rings on terminal panes (#132)
- Claude Code integration enabled by default (#247)
- HTTP host allowlist for embedded browser with save and proceed flow (#206, #203)
- Setting to disable workspace auto-reorder on notification (#215)
- Browser panel mouse back/forward buttons and middle-click close (#139)
- Browser DevTools shortcut wiring and persistence (#117)
- CJK IME input support for Korean, Chinese, and Japanese (#125)
--help flag on CLI subcommands (#128)--command flag for new-workspace CLI command (#121)rename-tab socket command (#260)- Remap-aware bonsplit tooltips and browser split shortcuts (#200)
Fixed- IME preedit anchor sizing (#266)
- Cmd+Shift+T focus against deferred stale callbacks (#267)
- Unknown Bonsplit tab context actions causing crash (#264)
- Socket CLI commands stealing macOS app focus (#260)
- CLI unix socket lag from main-thread blocking (#259)
- Main-thread notification cascade causing hangs (#232)
- Favicon out-of-sync during back/forward navigation (#233)
- Stale sidebar git branch after closing a split
- Browser download UX and crash path (#235)
- Browser reopen focus across workspace switches (#257)
- Mark Tab as Unread no-op on focused tab (#249)
- Split dividers disappearing in tiny panes (#250)
- Flaky browser download activity accounting (#246)
- Drag overlay routing and terminal overlay regressions (#218)
- Initial bonsplit split animation flicker
- Window top inset on new window creation (#224)
- Cmd+Enter being routed as browser reload (#213)
- Child-exit close for last-terminal workspaces (#254)
- Sidebar resizer hitbox and cursor across portals (#255)
- Workspace-scoped tab action resolution
- IDN host allowlist normalization
setup.sh cache rebuild and stale lock timeout (#217)- Inconsistent Tab/Workspace terminology in settings and menus (#187)
Changed- CLI workspace commands now run off the main thread for better responsiveness (#270)
- Remove border below titlebar (#242)
- Slimmer browser omnibar with button hover/press states (#271)
- Browser under-page background refreshes on theme updates (#272)
- Command shortcut hints scoped to active window (#226)
- Nightly and release assets are now immutable (no accidental overwrite) (#268, #269)
Fixed- Fix panel resize hitbox being too narrow and stale portal frame after panel resize
Fixed- Fix split blackout race condition and focus handoff when creating or closing splits
Added- Terminal panes now show an animated drop overlay when dragging tabs
Fixed- Fix blue hover not showing when dragging tabs onto terminal panes
- Fix stale drag overlay blocking clicks after tab drag ends
No user-facing changes.
Changed- Move port scanning from shell to app-side with batching for faster startup
Fixed- Fix visual stretch when closing split panes
- Fix omnibar Cmd+L focus races
Fixed- Fix browser omnibar Cmd+L causing 100% CPU from infinite focus loop
Changed- CLI commands are now workspace-relative: commands use
CMUX_WORKSPACE_ID environment variable so background agents target their own workspace instead of the user's focused workspace - Remove all index-based CLI APIs in favor of short ID refs (
surface:1, pane:2, workspace:3) - CLI
send and send-key support --workspace and --surface flags for explicit targeting - CLI escape sequences (
\n, \r, \t) in send payloads are now handled correctly --id-format flag is respected in text output for all list commands
Fixed- Fix background agents sending input to the wrong workspace
- Fix
close-surface rejecting cross-workspace surface refs - Fix malformed surface/pane/workspace/window handles passing through without error
- Fix
--window flag being overridden by CMUX_WORKSPACE_ID environment variable
Changed- Faster workspace switching with reduced rendering churn
Fixed- Fix Finder file drop not reaching portal-hosted terminals
- Fix unfocused pane dimming not showing for portal-hosted terminals
- Fix terminal hit-testing and visual glitches during workspace teardown
Fixed- Fix menubar and right-click lag on M1 Macs in release builds
- Fix browser panel opening new tabs on link click
Fixed- Fix crashes and fatal error when dropping files from Finder
- Fix zsh git branch display not refreshing after changing directories
- Fix menubar and right-click lag on M1 Macs
Fixed- Fix crash (stack overflow) when clicking after a Finder file drag
- Fix titlebar folder icon briefly enlarging on workspace switch
Fixed- Fix right-click context menu lag in notarized builds by adding missing hardened runtime entitlements
- Fix claude shim conflicting with
--resume, --continue, and --session-id flags
Fixed- Fix sidebar tab drag-and-drop reordering not working
Fixed- Fix broken mouse click forwarding in terminal views
Changed- Rebuild with Xcode 26.2 and macOS 26.2 SDK
Fixed- Crash caused by infinite recursion when clicking in terminal (FileDropOverlayView mouse event forwarding)
Fixed- Right-click and menubar lag in production builds (rebuilt with macOS 26.2 SDK)
Added- Double-clicking the sidebar title-bar area now zooms/maximizes the window
Fixed- Browser omnibar
Cmd+L now reliably refreshes/selects-all and supports immediate typing without stale inline text - Omnibar inline completion no longer replaces typed prefixes with mismatched suggestion text
Added- "+" button on the tab bar for quickly creating new terminal or browser tabs
Fixed- App hang when omnibar safety timeout failed to fire (blocked main thread)
- Tab drag/drop not working when multiple workspaces exist
- Clicking in browser WebView not focusing the browser tab
Fixed- App hang when clicking browser omnibar (NSTextView tracking loop spinning forever)
- White flash when creating new browser panels
- Tab drag/drop broken when dragging over WebView panes
- Stale drag timeout cancelling new drags of the same tab
- 88% idle CPU from infinite makeFirstResponder loop
- Terminal keys (arrows, Ctrl+N/P) swallowed after opening browser
- Cmd+N swallowed by browser omnibar navigation
- Split focus stolen by re-entrant becomeFirstResponder during reparenting
Fixed- Browser not loading localhost URLs correctly
Fixed- Menubar and general UI lag in production builds
- Sidebar tabs getting extra left padding when update pill is visible
- Memory leak when middle-clicking to close tabs
Sidebar Metadata
Sidebar Metadata. The sidebar now displays git branch, listening ports, log entries, progress bars, and status pills for each workspace.
Added- Sidebar metadata: git branch, listening ports, log entries, progress bars, and status pills
Fixed- localhost and 127.0.0.1 URLs not resolving correctly in the browser panel
Changedbrowser open now targets the caller's workspace by default via CMUX_WORKSPACE_ID
Added- Arrow key navigation in browser omnibar suggestions
- Browser zoom shortcuts (Cmd+/-, Cmd+0 to reset)
- "Install Update and Relaunch" menu item when an update is available
Changed- Open browser shortcut remapped from Cmd+Shift+B to Cmd+Shift+L
- Flash focused panel shortcut remapped from Cmd+Shift+L to Cmd+Shift+H
- Update pill now shows only in the sidebar footer
Fixed- Omnibar inline completion showing partial domain (e.g. "news." instead of "news.ycombinator.com")
Fixed- Update pill not appearing when sidebar is visible in Release builds
Added- Cmd+click on links in the browser opens them in a new tab
- Right-click context menu shows "Open Link in New Tab" instead of "Open in New Window"
- Third-party licenses bundled in app with Licenses button in About window
- Update availability pill now visible in Release builds
Changed- Cmd+[/] now triggers browser back/forward when a browser panel is focused (no-op on terminal)
- Reload configuration shortcut changed to Cmd+Shift+,
- Improved browser omnibar suggestions and focus behavior
Fixed- Sparkle updates from
0.27.0 could fail to detect newer releases because release build numbers were behind the latest published appcast build number - Release GitHub Action failed on repeat runs when
SUPublicEDKey / SUFeedURL already existed in Info.plist
Fixed- Release build failure caused by debug-only helper symbols referenced in non-debug code paths
Added- Optional nightly update channel in Settings (
Receive Nightly Builds) - Automated nightly build and publish workflow for
main when new commits are available
Changed- Settings and About windows now use the updated transparent titlebar styling and aligned controls
- Repository license changed to GNU AGPLv3
Fixed- Terminal panes freezing after repeated split churn
- Finder service directory resolution now normalizes paths consistently
Fixed- Muted traffic lights and toolbar items on macOS 14 (Sonoma) caused by
clipsToBounds default change - Toolbar buttons (sidebar, notifications, new tab) disappearing after toggling sidebar with Cmd+B
- Update check pill not appearing in titlebar on macOS 14 (Sonoma)
Fixed- Muted traffic lights and toolbar items in focused window caused by background blur in themeFrame
- Sidebar showing two different textures near the titlebar on older macOS versions
Fixed- Blank terminal on macOS 26 (Tahoe) — two additional code paths were still clearing the window background, bypassing the initial fix
- Blank terminal on macOS 15 caused by background blur view covering terminal content
Changed- Update bundle identifier to
com.cmuxterm.app for consistency
Changed- Rename app to cmux — new app name, socket paths, Homebrew tap, and CLI binary name (bundle ID remains
com.cmuxterm.app for Sparkle update continuity) - Sidebar now shows tab status as text instead of colored dots, with instant git HEAD change detection
Fixed- CLI
set-status command not properly quoting values or routing --tab flag
Fixed- Xcode and system environment variables (e.g. DYLD, LANGUAGE) leaking into terminal sessions
Fixed- Zsh autosuggestions not working with shared history across terminal panes
Fixed- Auto-update not working (Sparkle EdDSA signing was silently failing due to SUPublicEDKey missing from Info.plist)
Fixed- Auto-update not working (Sparkle public key was missing from release builds)
Fixed- Traffic lights (close/minimize/zoom) not showing on macOS 13-15
- Titlebar content overlapping traffic lights and toolbar buttons when sidebar is hidden
Added- Sidebar blur effect with withinWindow blending for a polished look
--panel flag for new-split command to control split pane placement
Fixed- Typing lag caused by redundant render loop
Added- Setup script for initializing submodules and building dependencies
- Contributing guide for new contributors
Fixed- Terminal focus when scrolling with mouse/trackpad
Changed- Reload scripts are more robust with better error handling
Added- Customizable keyboard shortcuts via Settings
Fixed- Find panel focus and search alignment with Ghostty behavior
Changed- Sentry environment now distinguishes between production and dev builds
Fixed- Handle display scale changes when moving between monitors
Changed- Fix SwiftPM cache handling for release builds
Added- Notifications documentation for AI agent integrations
Added- Sentry SDK for crash reporting
- Documentation site with Fumadocs
- Homebrew installation support (
brew install --cask cmux) - Auto-update Homebrew cask on release
Fixed- High CPU usage from notification system
- Release workflow SwiftPM cache issues
Changed- New tabs now insert after current tab and inherit working directory
Changed- Normalized window controls appearance
- Added confirmation panel when closing windows with active processes
Fixed- Socket key input handling
- OSC 777 notification sequence support
Changed- Customized About window
- Restricted titlebar accessories for cleaner appearance
Fixed- Environment variable and terminfo packaging issues
- XDG defaults handling
Fixed- Terminfo packaging for proper terminal compatibility
Added- Sparkle updater cache handling
- Ghostty fork documentation
Added- cmux CLI with socket control modes
- NSPopover-based notifications
Fixed- Notarization and codesigning for embedded CLI
- Release workflow reliability
Changed- Refined titlebar controls and variants
- Clear notifications on window close
Added- Debug scrollback tab with smooth scroll wheel
- Mock update feed UI tests
- Dev build branding and reload scripts
Fixed- Notification focus handling and indicators
- Tab focus for key input
- Update UI error details and pill visibility
Changed- Renamed app to cmux
- Improved CI UI test stability
Added- Sparkle auto-update flow
- Titlebar update UI indicator
Initial releases with core terminal functionality:
- GPU-accelerated terminal rendering via Ghostty
- Tab management with native macOS UI
- Split pane support
- Keyboard shortcuts
- Socket API for automation