All notable changes to cmux are documented here.
- 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 themescommand with bundled Ghostty themes (#1334, #1314)- Sidebar can now shrink to smaller widths (#1420)
- Menu bar visibility setting (#1330)
- 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)
- 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)
- Cmd+T (New tab) shortcut on the welcome screen (#1258)
- 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)
- SSH remote port proxying (reverted, will return in a future release)
- 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 treecommand for full CLI hierarchy view (#592)- Install or uninstall the
cmuxCLI 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-opacityacross 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)
- 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)
- 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_refreshafter 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()andtarget=_blanknot 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)
- @0xble
- @afxjzs
- @AI-per
- @atani
- @atmigtnca
- @austinywang
- @cheulyop
- @ConnorCallison
- @gonzaloserrano
- @harukitosa
- @homanp
- @JLeeChan
- @josemasri
- @lawrencecchen
- @novarii
- @orkhanrz
- @qianwan
- @rjwittams
- @sminamot
- @tmcarr
- @trydis
- @ukoasis
- @y-agatsuma
- @yasunogithub
- 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 --versionoutput now includes commit metadata
- 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
- 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 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)
--helpflag on CLI subcommands (#128)--commandflag fornew-workspaceCLI command (#121)rename-tabsocket command (#260)- Remap-aware bonsplit tooltips and browser split shortcuts (#200)
- 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.shcache rebuild and stale lock timeout (#217)- Inconsistent Tab/Workspace terminology in settings and menus (#187)
- 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)
- Fix panel resize hitbox being too narrow and stale portal frame after panel resize
- Fix split blackout race condition and focus handoff when creating or closing splits
- Terminal panes now show an animated drop overlay when dragging tabs
- 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.
- Move port scanning from shell to app-side with batching for faster startup
- Fix visual stretch when closing split panes
- Fix omnibar Cmd+L focus races
- Fix browser omnibar Cmd+L causing 100% CPU from infinite focus loop
- CLI commands are now workspace-relative: commands use
CMUX_WORKSPACE_IDenvironment 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
sendandsend-keysupport--workspaceand--surfaceflags for explicit targeting - CLI escape sequences (
\n,\r,\t) insendpayloads are now handled correctly --id-formatflag is respected in text output for all list commands
- Fix background agents sending input to the wrong workspace
- Fix
close-surfacerejecting cross-workspace surface refs - Fix malformed surface/pane/workspace/window handles passing through without error
- Fix
--windowflag being overridden byCMUX_WORKSPACE_IDenvironment variable
- Faster workspace switching with reduced rendering churn
- 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
- Fix menubar and right-click lag on M1 Macs in release builds
- Fix browser panel opening new tabs on link click
- 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
- Fix crash (stack overflow) when clicking after a Finder file drag
- Fix titlebar folder icon briefly enlarging on workspace switch
- Fix right-click context menu lag in notarized builds by adding missing hardened runtime entitlements
- Fix claude shim conflicting with
--resume,--continue, and--session-idflags
- Fix sidebar tab drag-and-drop reordering not working
- Fix broken mouse click forwarding in terminal views
- Rebuild with Xcode 26.2 and macOS 26.2 SDK
- Crash caused by infinite recursion when clicking in terminal (FileDropOverlayView mouse event forwarding)
- Right-click and menubar lag in production builds (rebuilt with macOS 26.2 SDK)
- Double-clicking the sidebar title-bar area now zooms/maximizes the window
- Browser omnibar
Cmd+Lnow reliably refreshes/selects-all and supports immediate typing without stale inline text - Omnibar inline completion no longer replaces typed prefixes with mismatched suggestion text
- "+" button on the tab bar for quickly creating new terminal or browser tabs
- 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
- 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
- Browser not loading localhost URLs correctly
- 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: git branch, listening ports, log entries, progress bars, and status pills
- localhost and 127.0.0.1 URLs not resolving correctly in the browser panel
browser opennow targets the caller's workspace by default via CMUX_WORKSPACE_ID
- 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
- 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
- Omnibar inline completion showing partial domain (e.g. "news." instead of "news.ycombinator.com")
- Update pill not appearing when sidebar is visible in Release builds
- 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
- 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
- Sparkle updates from
0.27.0could 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/SUFeedURLalready existed inInfo.plist
- Release build failure caused by debug-only helper symbols referenced in non-debug code paths
- Optional nightly update channel in Settings (
Receive Nightly Builds) - Automated nightly build and publish workflow for
mainwhen new commits are available
- Settings and About windows now use the updated transparent titlebar styling and aligned controls
- Repository license changed to GNU AGPLv3
- Terminal panes freezing after repeated split churn
- Finder service directory resolution now normalizes paths consistently
- Muted traffic lights and toolbar items on macOS 14 (Sonoma) caused by
clipsToBoundsdefault 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)
- 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
- 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
- Update bundle identifier to
com.cmuxterm.appfor consistency
- Rename app to cmux — new app name, socket paths, Homebrew tap, and CLI binary name (bundle ID remains
com.cmuxterm.appfor Sparkle update continuity) - Sidebar now shows tab status as text instead of colored dots, with instant git HEAD change detection
- CLI
set-statuscommand not properly quoting values or routing--tabflag
- Xcode and system environment variables (e.g. DYLD, LANGUAGE) leaking into terminal sessions
- Zsh autosuggestions not working with shared history across terminal panes
- Auto-update not working (Sparkle EdDSA signing was silently failing due to SUPublicEDKey missing from Info.plist)
- Auto-update not working (Sparkle public key was missing from release builds)
- Traffic lights (close/minimize/zoom) not showing on macOS 13-15
- Titlebar content overlapping traffic lights and toolbar buttons when sidebar is hidden
- Sidebar blur effect with withinWindow blending for a polished look
--panelflag fornew-splitcommand to control split pane placement
- Typing lag caused by redundant render loop
- Setup script for initializing submodules and building dependencies
- Contributing guide for new contributors
- Terminal focus when scrolling with mouse/trackpad
- Reload scripts are more robust with better error handling
- Customizable keyboard shortcuts via Settings
- Find panel focus and search alignment with Ghostty behavior
- Sentry environment now distinguishes between production and dev builds
- Handle display scale changes when moving between monitors
- Fix SwiftPM cache handling for release builds
- Notifications documentation for AI agent integrations
- App and tooling updates
- Sentry SDK for crash reporting
- Documentation site with Fumadocs
- Homebrew installation support (
brew install --cask cmux) - Auto-update Homebrew cask on release
- High CPU usage from notification system
- Release workflow SwiftPM cache issues
- New tabs now insert after current tab and inherit working directory
- Normalized window controls appearance
- Added confirmation panel when closing windows with active processes
- Socket key input handling
- OSC 777 notification sequence support
- Customized About window
- Restricted titlebar accessories for cleaner appearance
- Environment variable and terminfo packaging issues
- XDG defaults handling
- Terminfo packaging for proper terminal compatibility
- Sparkle updater cache handling
- Ghostty fork documentation
- cmux CLI with socket control modes
- NSPopover-based notifications
- Notarization and codesigning for embedded CLI
- Release workflow reliability
- Refined titlebar controls and variants
- Clear notifications on window close
- Debug scrollback tab with smooth scroll wheel
- Mock update feed UI tests
- Dev build branding and reload scripts
- Notification focus handling and indicators
- Tab focus for key input
- Update UI error details and pill visibility
- Renamed app to cmux
- Improved CI UI test stability
- 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