Changelog

1.10.3
Changed
  • Expanded the source control sidebar with a repository history graph, richer file and commit context menus, commit diff previews, compare-with-HEAD actions, and direct GitHub commit links.
  • Added safer repository actions for creating tags and branches from the current HEAD or a selected commit, plus copyable file and commit summaries for faster handoff.
  • Published a fresh stable v1.10.3 release target so GitHub release assets, the npm launcher, website download aliases, and Sparkle feed can advance together on one signed installer.
Documentation
  • Refreshed the GitHub, npm, and official website descriptions to position imux as a source-control-aware AI execution workspace for terminals, files, GitHub, remote hosts, browser tasks, and supervisor-guided handoffs.
1.10.2
Fixed
  • Kept browser pointer-drag focus allowance active until mouse-up so dragged browser interactions can retain focus without reopening background autofocus.
  • Published a fresh stable v1.10.2 release target so GitHub release assets, the npm launcher, website download aliases, and Sparkle feed can advance together on one signed installer.
1.10.1
Fixed
  • Added OpenAI-compatible supervisor response handling for image-capable models such as gpt-image-2, including streamed progress text, generated image links, and backward-compatible persisted supervisor snapshots.
1.10.0
Changed
  • Refreshed the Settings experience with a cleaner canvas, stronger sidebar structure, carded search, and clearer control rows while preserving existing settings persistence and keyboard shortcut workflows.
  • Published a fresh stable v1.10.0 release target so the desktop app, website metadata, download aliases, and Sparkle feed can advance together once the signed installer is generated.
1.9.1
Changed
  • Published a fresh stable v1.9.1 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
1.8.16
Changed
  • Published a fresh stable v1.8.16 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
  • Tightened release-site verification so the live manifest, appcast, archived DMG, latest DMG alias, changelog, homepage, and public release pages must agree before a release is considered healthy.
  • Preserved historical website download archives and remote helper release directories when syncing new release assets, so older installers and remote diagnostics stay available after a fresh release.
Fixed
  • Made remote daemon status diagnostics derive their GitHub repository from the published manifest instead of relying on stale hardcoded release metadata.
  • Stopped the public nightly page from silently offering the stable installer when no nightly download URL is configured.
1.8.15
Changed
  • Published a fresh stable v1.8.15 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
  • Added a repeatable GitHub Actions quality sweep helper for release validation and made the macOS compatibility workflow manually dispatchable against a chosen ref.
Fixed
  • Reduced avoidable main-thread sync churn in terminal, tab, and Ghostty action routing by consolidating the remaining sync hops behind instrumented wrappers.
1.8.14
Changed
  • Published a fresh stable v1.8.14 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
Fixed
  • Rejected duplicate logical main-window registrations without retargeting the owning TabManager to the duplicate window, preventing split-brain window ownership where one window loses its terminal attachment.
1.8.11
Changed
  • Published a fresh stable v1.8.11 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
  • Bundled the codex launcher plus the shared imux-agent-common.sh helper into the shipped app resources so packaged installs keep the same agent wrapper coverage as the checked-in compatibility CLI surface.
Fixed
  • Stopped notification-ring-only terminal updates from forcing an unnecessary Ghostty portal rebind, which reduces avoidable live terminal churn when background attention state changes.
  • Cleared stale workspace-level remote SSH error notifications as soon as a connection recovers, so the sidebar and notification surfaces stop showing an old failure after the workspace is healthy again.
1.8.10
Changed
  • Published a fresh stable v1.8.10 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
  • Simplified the leading and trailing sidebar chrome by removing the older glass-like card treatments and keeping the rail, explorer panes, and split chrome on flatter solid surfaces with fewer borders.
  • Tightened the remote SSH sidebar metrics toward a denser VS Code-style host and file-tree presentation, while still allowing narrow windows to collapse the leading sidebar down to the activity rail when content space is constrained.
Fixed
  • Reused the normal terminal attach path for Ghostty background prewarming so off-window surface creation no longer leaves a permanently blank terminal that later attaches cannot recover.
  • Added placeholder-tab recovery for orphaned visible pane selections so split and restore churn can rebind the surviving panel instead of leaving the workspace focused on an empty mapping.
1.8.9
Changed
  • Published a fresh stable v1.8.9 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
Fixed
  • Corrected Developer ID G2 intermediate detection in the release signing path so headless local packaging can match the real certificate chain without failing on issuer-order differences.
1.8.8
Changed
  • Published a fresh stable v1.8.8 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
Fixed
  • Added a startup restore window-health gate that rejects unhealthy restored window state, clears the bad persisted snapshot, recreates a clean window, and suppresses intermediate recovery saves so the app no longer re-saves a broken restore snapshot during launch recovery.
1.8.7
Changed
  • Published a fresh stable v1.8.7 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
Fixed
  • Moved supervisor API-key loading off startup and SwiftUI render paths so the app can finish launching without blocking on keychain access.
1.8.6
Changed
  • Published a fresh stable v1.8.6 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
Fixed
  • Restored remote SSH workspace path continuity so reconnecting a configured remote workspace now rehydrates currentDirectory from the persisted per-host remote path state, and remote file restore/open fallback paths continue to preserve SSH identity end-to-end.
1.8.5
Changed
  • Published a fresh stable v1.8.5 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
Fixed
  • Rejected duplicate SwiftUI primary-window registrations without retargeting the owning TabManager to the duplicate window, which prevents the recurring two-client split where one window loses its attached terminal surface.
1.8.4
Changed
  • Published a fresh stable v1.8.4 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
  • Stable update checks now run in the background on launch and on the hourly refresh cadence, so new releases can download silently and switch into an explicit install/restart reminder once ready.
  • Tightened the SSH hosts sidebar for compact widths and localized the Bonsplit tab context menu strings so narrow layouts and translated tab actions present more consistently.
Fixed
  • Remote SSH password handling now reads and writes directly against the macOS login keychain and injects the saved credential into the startup environment once, which removes repeated security shell calls from the reconnect loop and avoids the wrong-keychain popup path.
  • Managed remote host launches now auto-connect immediately, and terminals created later by splits, pane replacement, or new-surface recovery inside a remote workspace now stay on the remote SSH session instead of falling back to a local shell.
  • Claude and Codex launch panes now receive stored API keys through initial environment injection rather than shelling out to Keychain on every launch.
  • The SSH host list header and rows now collapse cleanly in narrow leading sidebars instead of overflowing and misaligning the remote host panel.
1.8.3
Changed
  • Published a fresh stable v1.8.3 release so the desktop app, GitHub release assets, and website download aliases can move forward together on one signed build.
  • Added explorer conversation actions so local and remote files can be inserted into the active conversation target from the file manager, including drag and drop into browser and terminal conversation inputs.
Fixed
  • Managed SSH workspaces now apply TCP keepalive defaults, server-alive probes, faster connect timeouts, and a retry loop in the generated startup wrapper so transient transport loss no longer collapses the workspace as aggressively.
  • icc ssh compatibility metadata now reports the long-lived reconnect command and startup path, and the remote shell bootstrap waits briefly for the authenticated relay before handing control to the login shell.
  • Remote explorer state now remembers the last visited remote directory when opening files or revisiting folders, which keeps reconnects and host re-entry aligned with the user’s last working location.
1.8.1
Changed
  • Published a fresh stable v1.8.1 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
Fixed
  • Prevented non-focus synthetic input and debug socket commands from activating the app or stealing the key window unless the caller explicitly used a focus-intent command first.
  • Reduced unnecessary terminal surface redraw pressure after socket-driven text, key, and clear-screen actions by only forcing refreshes for terminal views that are actually attached to a window.
1.7.4
Changed
  • Published a fresh stable v1.7.4 release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed build.
Fixed
  • Stopped app-level shortcut routing from dropping Cmd+W events that originated in auxiliary non-main windows, so those windows now close correctly without falling through into main terminal panel close logic.
  • Hardened the Ghostty copy/selection path to require a live runtime surface before querying selection state or dispatching copy-related binding actions, which reduces stale-surface crashes around Cmd+C.
1.7.3
Changed
  • Rebuilt and republished the stable v1.7.3 installer as one fresh signed and notarized DMG, then overwrote the existing GitHub release assets so the public release line points to one current artifact again.
  • Refreshed the website-facing changelog, release/update docs, and release metadata so the public site now describes v1.7.3 as the current stable line and points users to the same installer path served by GitHub Releases.
Fixed
  • Corrected the stable website release metadata so appcast.xml, latest.json, the website-hosted archive URL, and the direct download aliases all describe the same DMG bytes, length, hash, and Sparkle EdDSA signature.
  • Hardened the website deploy verification path to download the live archive and validate its size, SHA-256, and Sparkle signature before treating a release as healthy.
1.7.1
Changed
  • Expanded the source control sidebar into a fuller GitHub workflow surface with repository connect and update actions, base-branch selection, compare links, authored pull request forms, and draft release creation directly from the current workspace.
  • Continued the v3 panel polish across titlebar controls, sidebar chrome, iconography, and light-mode tinting so the desktop shell presents a more consistent dark-first visual system without leaving light mode behind.
  • Tightened the bundled icc CLI usage contract around caller-relative workspace and surface defaults, and added executable usage tests so help text stays aligned with the runtime routing model.
Fixed
  • Stabilized portal-hosted terminal and browser layout synchronization so split, sidebar, and window-geometry changes no longer misplace live surfaces as easily during rapid workspace churn.
  • Preserved the last-window session snapshot earlier in the close path, which reduces cases where closing the final main window drops a fuller restore state.
  • Improved remote workspace connection coverage and tab-manager regression coverage around the newer routing and workspace state transitions.
1.7.0
Changed
  • Rebuilt the desktop shell around the new v3 client panel with a denser dark-first chrome system across the left rail, sidebars, top controls, notifications, and settings surfaces, while also rebalancing light mode to use cleaner neutral tones.
  • Migrated core UI affordances onto a shared semantic icon layer backed by curated Lucide assets so navigation, source control, notifications, browser tools, and settings now use more familiar and consistent iconography.
  • Added saved launch API profiles for Claude Code and Codex with Keychain-backed secrets, official endpoints, optional model overrides, and third-party compatible API URL support directly in Settings.
  • Expanded the source control workspace sidebar with GitHub-aware repository creation and quick links for repository, branch, and Actions flows from the current workspace context.
Fixed
  • Background workspace terminal title changes now continue to update workspace labels and sidebar state even while another workspace is focused, which makes multi-workspace monitoring more reliable.
  • Tightened CLI routing for destructive or workspace-sensitive actions so they require caller-relative or explicit workspace, tab, or surface context instead of silently falling back to the currently focused workspace.
  • Refined sidebar and settings layout behavior to keep chrome, badges, and metadata presentation more stable and visually consistent across light and dark appearances.
1.6.0
Changed
  • Generalized the existing WeChat binding model into a broader Channels surface so future account integrations like QQ, Feishu, and Telegram can plug into the same conversation-to-workspace routing model without forking the core sidebar flow.
  • Reworked the shipped imux icon and wordmark set into a cleaner monogram-based system with matching light, dark, debug, and nightly variants generated from a single tracked asset source, and switched the release-facing logo set onto a white-backed mark.
  • Bumped the release line to 1.6.0 / build 100 so the desktop app, signed release artifacts, and website manifests can publish a new stable version cleanly.
Fixed
  • Preserved compatibility for existing saved channel settings and restored sidebar state by continuing to decode legacy wechat identifiers and stored field names while presenting the new Channels naming in the UI.
  • Kept the release-facing desktop and web branding assets aligned by regenerating the app icon, website logo, and wordmark outputs from the same source generator.
  • Reduced sidebar text density again on narrow left and right sidebars, and improved conversation route titles so compact layouts keep meaningful names visible.
  • Stopped the Bonsplit debug event logger from aborting the app when debug log file writes fail on a full disk by falling back to in-memory buffering.
  • Routed terminal notification store mutations back onto the main thread before touching published SwiftUI state, reducing background-thread publish violations in the updated sidebar flows.
1.5.5
Changed
  • Replaced the last shipped iatlas/legacy app-name strings in the menu bar, notification prompts, welcome/about copy, and other localized desktop UI surfaces so the public app now consistently presents itself as imux.
  • Tightened the release-facing app copy around the imux identity while leaving internal compatibility identifiers and legacy restore paths intact where they are still required.
1.5.4
Changed
  • Rebranded the shipped app, website download surfaces, feedback copy, and release asset naming from the legacy icc/atlas mix to the public imux brand.
  • Replaced the shared app and web logo set with a new imux icon system generated from tracked source assets so GitHub, the website, and the desktop app use the same visual identity.
  • Locked the website production build onto next build --webpack, which avoids the Turbopack stall we were seeing on this release host and makes deployment reproducible again.
Fixed
  • Session restore now saves into the new imux support path while still reading legacy iatlas and icc snapshot locations, so existing multi-workspace restores survive the brand migration instead of reopening empty.
  • Release packaging now restages website download assets as part of the signed upload flow, which keeps GitHub release artifacts, latest.json, and the website deploy path aligned on the same versioned DMG.
1.5.2
Fixed
  • Session restore now preserves richer multi-workspace imux snapshots when the last main window closes, so reopening the app no longer tends to collapse a previously open pane set into a thin single-workspace state.
  • Recent thin lifecycle saves no longer override a fuller recent stable snapshot during restore, which makes previously opened conversation and workspace panes far more likely to come back intact after close and reopen.
  • Notification-driven workspace reorder and focus jumps now trigger explicit render recovery, reducing the intermittent black front panel that could appear after task-completion events.
1.5.1
Fixed
  • Remote SSH child-exit on the last terminal now preserves the workspace instead of cascading into workspace and window close, so reconnecting can continue from the same remote context.
  • Enabled the existing transient terminal portal recovery path by default, reducing black-screen failures during split, sidebar, and workspace churn.
1.5.0
Changed
  • Promoted the active stable line to v1.5.0 so the desktop app, GitHub release path, and website metadata can converge on a fresh release target instead of reusing the earlier v1.4.0 line.
  • Tightened the leading workspace chrome again so the activity rail, workspace header, and sidebar rows sit much closer to a dense VS Code-style layout instead of the rounder card-like presentation from earlier builds.
  • Replaced the oversized terminal welcome banner with a compact version and shortcut strip so a fresh workspace opens into usable terminal space immediately.
Fixed
  • Website production builds no longer require feedback-delivery secrets at build time, so the public site can compile even when feedback sending is intentionally disabled.
  • Added an explicit production website deployment workflow for the imux site so the web release path has a dedicated publish job instead of relying on indirect release-only updates.
  • Restored right-sidebar resizing when the inspector is showing files so users can widen and narrow that panel directly instead of getting stuck at one width.
  • Scoped Return forwarding away from active macOS input-method composition in the affected terminal path so pressing Return during IME composition no longer submits the partially composed text unexpectedly.
1.4.0
Changed
  • Refreshed the workspace chrome with denser VS Code-style sidebars, simpler pane titles, tighter file and remote lists, and dedicated left and right sidebar toggles in the titlebar.
  • Local file rows now expose cleaner drag payloads so file paths can be dropped directly into terminal inputs and other compatible targets from the sidebar.
  • Remote SSH workspaces now remember the last visited path for each host and keep the remote workspace configuration available after an SSH session ends, so reconnecting restores context instead of discarding the workspace.
Fixed
  • Reduced the default terminal font fallback to 12pt when the user has not set a font size explicitly, bringing the terminal back in line with the tighter layout.
  • Scoped text-input recovery refreshes to short post-transition windows, which reduces unnecessary refresh work on macOS while still recovering blank terminal frames after visibility and window changes.
  • Prevented duplicate primary windows from remaining open when macOS re-materializes the same logical workspace scene.
1.3.1
Fixed
  • Restored the terminal and browser content inset in within-window sidebar mode so a fresh install no longer draws the live workspace underneath the sidebar on first launch.
  • Narrow-window workspace layouts now keep the content portal aligned with the visible sidebar edge instead of pinning the terminal to column zero behind the left rail.
1.3.0
Changed
  • Added release-asset resync support so an existing signed release can republish the website download surface without rebuilding new binaries.
  • Updated the active GitHub release and homepage metadata so the website links, manifests, and automation all publish the same v1.3.0 release line.
Fixed
  • Browser slash commands in embedded web chat inputs now keep their leading slash on submit even when WebKit routes text entry through its native field editor path.
  • Dev-tagged builds no longer show the install-repair recovery prompt when they are launched from an isolated development path.
1.2.0
Added
  • Added an install-and-relaunch recovery flow when icc is launched from a DMG, App Translocation, or another unsupported path, so the running copy can move itself into an Applications folder without making the user restart the process manually.
Fixed
  • Replacing an older installed icc.app now overwrites the existing app bundle in /Applications or ~/Applications instead of treating that installed copy as a blocking directory.
  • Updater compatibility errors now offer a direct recovery action that repairs the installed copy and relaunches the app from the supported location.
1.1.0
Changed
  • Removed inherited public-brand shadows across the app, website, legal pages, support links, and localized release-facing copy so the active imux product line now presents one consistent identity.
  • Repointed active docs, issue tracking, feedback handling, and release-facing GitHub links to the current imux repository and website surfaces.
  • Refreshed the community and changelog web surfaces so the current stable installer, support entry points, and website messaging all describe the same release line.
Fixed
  • About/help/update surfaces no longer send users through stale repository paths when opening docs, issue tracking, commit links, or release notes.
  • Website feedback delivery now uses imux-branded sender metadata and a configurable recipient path instead of exposing the previous company recipient in active runtime code.
1.0.10
Added
  • Added a titlebar quick action for Claude + Codex linked mode so the multi-model workspace layout is reachable directly from the main window controls instead of being hidden inside the source-control panel.
Changed
  • The AI Command Center collaboration launcher now works from the current workspace directory even when the workspace is not a Git repository.
  • Updated website release copy so the public changelog and download surfaces describe the new stable line consistently.
Fixed
  • Main window, titlebar accessory, and settings-hosted SwiftUI controls now accept the first inactive-window click instead of dropping it on activation.
  • The titlebar shortcut-hint layout now reserves space for the new linked-mode control instead of colliding with the create menu hint positions.
1.0.9
Changed
  • Rebranded active website docs, legal, and community surfaces to icc, and aligned active GitHub links with the current miounet11/icc repository.
  • Updated localized message packs for active product surfaces so install and product copy no longer present legacy icc naming.
Fixed
  • Sidebar interaction flow now supports a persistent left navigation pane while right-side tool panes are open, and workspace switches reset file and remote explorer editor context correctly.
1.0.8
Changed
  • Hardened the macOS installer packaging path by routing local and GitHub releases through one shared DMG creation helper.
  • Updated the website stable-line copy and release notes so the homepage and changelog describe the same current installer version.
Fixed
  • Release publication now mounts and verifies the DMG before upload, checking the app bundle shape and the Applications drag target so malformed installers are blocked before users download them.
1.0.6
Changed
  • Refreshed the stable imux installer and website download surfaces so the public homepage, manifest, and GitHub release can all point to the same versioned macOS package.
  • Regenerated the imux-branded app icons and website logo assets from a single source so desktop and web branding stay aligned.
Fixed
  • Long supervisor prompt cards in the sidebar now stay bounded inside the panel instead of expanding the entire narrow layout.
1.0.4
Added
  • Quick settings import shortcuts for VS Code, Cursor, Claude Code, and Codex so users can move into icc faster without rebuilding their terminal preferences by hand.
  • A source-control sidebar workflow for fast git pull, fast git push, and repo-status actions that opens real terminal panes in the current workspace instead of acting like a disconnected stub.
  • An AI Command Center collaboration panel that can add Claude and Codex panes or create a shared dual-model layout directly inside the current workspace.
Changed
  • Refreshed the app icon, product logo, welcome copy, and linked website surfaces so the public icc brand is more distinct and consistent across the desktop app and the website.
  • Refreshed the release-facing documentation for the icc launch: README files, install guidance, contributing notes, remote SSH docs, browser automation notes, notification docs, and legacy Homebrew/web documentation were updated to describe the current product and repository.
  • Added an imux brand guide and upgraded the translated README files from temporary placeholders into localized landing pages for the public v0.0.1 release.
  • Strengthened the public-facing product narrative so the main docs and web notes present icc as a premium, terminal-first AI command center instead of a plain rename.
  • Updated default terminal presentation to sit closer to a familiar VS Code baseline with a 14pt default font, adjusted terminal palette values, and cleaner sidebar/detail chrome.
  • Reworked user-facing labels that still surfaced legacy icc naming so the shipped product presents itself as icc in the main release-facing paths.
Fixed
  • The right sidebar collapse control now renders a visible icon again.
  • The sidebar now exposes a footer settings entry so users can reach automation and app preferences more directly.
  • English submit behavior in the native feedback/conversation composer now uses Return to send and keeps Shift+Return for newline insertion, while preserving IME composition behavior.
  • Updater compatibility handling for older installs now detects disk-image, app-translocation, and non-Applications launch paths before Sparkle fails, and shows a direct recovery message with the current app path.
0.62.2
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)
  • icc 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)
0.62.1
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)
0.62.0
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 imux.

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. imux 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)
  • icc tree command for full CLI hierarchy view (#592)
  • Install or uninstall the icc 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 icc 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)
  • icc 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 [email protected] (#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)
  • icc --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)
0.61.0
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.

Tab Colors

Command Palette. Hit Cmd+Shift+P to open a searchable command palette. Every action in imux 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.

Command Palette

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.

Open With

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.

Pin Workspaces

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.

Workspace Metadata
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)
  • icc --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: icc 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
0.60.0
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.

Tab Context Menu

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 imux.

Browser DevTools

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.

CJK Input

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)
0.59.0
Fixed
  • Fix panel resize hitbox being too narrow and stale portal frame after panel resize
0.58.0
Fixed
  • Fix split blackout race condition and focus handoff when creating or closing splits
0.57.0
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
0.56.0
No user-facing changes.
0.55.0
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
0.54.0
Fixed
  • Fix browser omnibar Cmd+L causing 100% CPU from infinite focus loop
0.53.0
Changed
  • CLI commands are now workspace-relative: commands use ICC_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 ICC_WORKSPACE_ID environment variable
0.52.0
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
0.51.0
Fixed
  • Fix menubar and right-click lag on M1 Macs in release builds
  • Fix browser panel opening new tabs on link click
0.50.0
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
0.49.0
Fixed
  • Fix crash (stack overflow) when clicking after a Finder file drag
  • Fix titlebar folder icon briefly enlarging on workspace switch
0.48.0
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
0.47.0
Fixed
  • Fix sidebar tab drag-and-drop reordering not working
0.46.0
Fixed
  • Fix broken mouse click forwarding in terminal views
0.45.0
Changed
  • Rebuild with Xcode 26.2 and macOS 26.2 SDK
0.44.0
Fixed
  • Crash caused by infinite recursion when clicking in terminal (FileDropOverlayView mouse event forwarding)
0.38.1
Fixed
  • Right-click and menubar lag in production builds (rebuilt with macOS 26.2 SDK)
0.38.0
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
0.37.0
Added
  • "+" button on the tab bar for quickly creating new terminal or browser tabs
0.36.0
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
0.35.0
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
0.34.0
Fixed
  • Browser not loading localhost URLs correctly
0.33.0
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
0.32.0
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
Changed
  • browser open now targets the caller's workspace by default via ICC_WORKSPACE_ID
0.31.0
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")
0.30.0
Fixed
  • Update pill not appearing when sidebar is visible in Release builds
0.29.0
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
0.28.2
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
0.28.1
Fixed
  • Release build failure caused by debug-only helper symbols referenced in non-debug code paths
0.28.0
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
0.27.0
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)
0.26.0
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
0.25.0
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
0.24.0
Changed
  • Update bundle identifier to com.icc.app for consistency
0.23.0
Changed
  • Rename app to icc — new app name, socket paths, Homebrew tap, and CLI binary name (bundle ID remains com.icc.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
0.22.0
Fixed
  • Xcode and system environment variables (e.g. DYLD, LANGUAGE) leaking into terminal sessions
0.21.0
Fixed
  • Zsh autosuggestions not working with shared history across terminal panes
0.17.3
Fixed
  • Auto-update not working (Sparkle EdDSA signing was silently failing due to SUPublicEDKey missing from Info.plist)
0.17.1
Fixed
  • Auto-update not working (Sparkle public key was missing from release builds)
0.17.0
Fixed
  • Traffic lights (close/minimize/zoom) not showing on macOS 13-15
  • Titlebar content overlapping traffic lights and toolbar buttons when sidebar is hidden
0.16.0
Added
  • Sidebar blur effect with withinWindow blending for a polished look
  • --panel flag for new-split command to control split pane placement
0.15.0
Fixed
  • Typing lag caused by redundant render loop
0.14.0
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
0.13.0
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
0.12.0
Fixed
  • Handle display scale changes when moving between monitors
Changed
  • Fix SwiftPM cache handling for release builds
0.11.0
Added
  • Notifications documentation for AI agent integrations
Changed
  • App and tooling updates
0.10.0
Added
  • Sentry SDK for crash reporting
  • Documentation site with Fumadocs
  • Homebrew installation support (brew install --cask icc)
  • 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
0.9.0
Changed
  • Normalized window controls appearance
  • Added confirmation panel when closing windows with active processes
0.8.0
Fixed
  • Socket key input handling
  • OSC 777 notification sequence support
Changed
  • Customized About window
  • Restricted titlebar accessories for cleaner appearance
0.7.0
Fixed
  • Environment variable and terminfo packaging issues
  • XDG defaults handling
0.6.0
Fixed
  • Terminfo packaging for proper terminal compatibility
0.5.0
Added
  • Sparkle updater cache handling
  • Ghostty fork documentation
0.4.0
Added
  • icc 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
0.3.0
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 icc
  • Improved CI UI test stability
0.1.0
Added
  • Sparkle auto-update flow
  • Titlebar update UI indicator
0.0.x
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