- Re-published the last known-good v2.6.28 application code line as 2.7.1, restoring the optimized workspace interface and complete Agent Chat panel/entry points that were overwritten in the later 2.6.29/2.6.30 line.
Changelog
- Added a clearer Agent Chat launch path in the titlebar, collapsed right-edge reveal control, and workspace footer so users can open Clavue/agent conversations without guessing that the generic right-sidebar button owns chat.
- Simplified the top-right control cluster by moving the Clavue + Codex linked-mode quick action into the creation menu and keeping the visible controls focused on sidebar, Chat, notifications, and creation.
- Updated Agent Chat panel chrome so the in-panel close action reads as collapsing Agent Chat instead of another ambiguous right-sidebar layout toggle.
- Preserved the right sidebar's existing toggle behavior for Files, Git, and Automation while making Chat use an explicit open path across titlebar, full-screen, footer, and collapsed states.
- Fixed a launch-time layout loop in file editor panels that could keep the main thread busy, leaving restored terminal panes blank and the local socket unable to answer commands.
- Deferred hidden file editor text views so background or side panels cannot block terminal startup and prompt rendering.
- Cleaned up stale debug daemon/socket state that could leave historical clients crashing on launch after a previous workspace restore.
- Reduced the severe slowdown caused by orphaned local daemon sessions accumulating hundreds of PTYs and shell processes.
- Published a fresh stable
v2.6.19release target so GitHub release assets, website download aliases, remote helper assets, and Sparkle feed advance together on one signed installer.
- Added a bottom workspace command bar that can send a goal directly to the active terminal while keeping core workspace status, remote context, progress, pane count, and workspace count visible in one compact strip.
- Added command-bar quick actions for creating terminal and browser surfaces, splitting the active terminal right or down, and checking Agent Mesh status without leaving the workspace.
- Added a sidebar Agent Mesh card with direct linked-mode, mesh, doctor, context, board, handoff, and copy-packet actions for faster multi-agent coordination.
- Upgraded the empty pane launcher into a compact action surface with localized terminal and browser actions.
- Published a fresh stable
v2.6.17release target so GitHub release assets, website download aliases, remote helper assets, and Sparkle feed advance together on one signed installer.
- Changed Clavue official launch API setup to show
https://www.clavue.cominstead of the Anthropic API endpoint, while keeping third-party mode on the Anthropic-compatible default. - Blocked accidental API-key pastes in the API URL field so
sk-...values are kept in the API Key field instead of being normalized into invalid URLs. - Let Clavue/Codex linked mode launch when both CLIs and saved API profiles are ready, with notification hooks shown as optional setup instead of a hard launch blocker.
- Simplified the Launch API editor with clearer Official/Third-Party labels, one-line API URL entry, a Use Default URL action, and a Test action that confirms launch readiness after saving.
- Published a fresh stable
v1.10.10release target so GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed installer.
- Kept the left sidebar restore control visible after collapsing the sidebar, including minimal/titlebar-hidden layouts where the old titlebar control is not visible.
- Added an always-available right sidebar restore control when the right/detail pane is collapsed, so users can reopen it without relying on controls inside the hidden pane.
- Published a fresh stable
v1.10.9release target so GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed installer.
- Simplified Supervisor LLM and Launch API credential saving so API settings persist to protected local files instead of triggering interactive macOS Keychain prompts.
- Allowed API URL and model settings to save without requiring an API key, while leaving a blank key field preserves an existing saved key.
- Made Clear Key suppress legacy Keychain fallback values so cleared API credentials stay cleared even when older Keychain entries still exist.
- Updated API settings copy and placeholders to remove Keychain wording and make the save behavior clearer.
- Restored Ghostty default config loading when a discovered user config path exists but has no loadable settings, so empty or placeholder config files no longer suppress Ghostty's normal defaults.
- Published a fresh stable
v1.10.7release target so GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed installer.
- Hardened the public update feed and latest-release manifest cache policy so Sparkle and website download checks fetch fresh release metadata instead of stale CDN/browser copies.
- Repaired the website release-link flow so homepage, changelog, latest manifest, appcast, archive URLs, and versioned DMG downloads stay aligned during installer upgrades.
- Published a fresh stable
v1.10.6release target so GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed installer.
- Added an Agent Mesh command surface in the supervisor panel that packages active handoffs, evidence, review rounds, touched-file warnings, risks, requested next actions, and stop criteria into a copyable collaboration brief.
- Added a trusted-completion guard so supervisor reviews cannot mark work complete from stale metadata alone; completion now requires terminal output, recent execution signals, ledger evidence, or concrete visual evidence.
- Published a fresh stable
v1.10.5release target so GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed installer.
- Added Clavue + Codex linked mode as the default multi-agent launch path, including bundled
clavueandimux-agent-meshhelpers for shared task context, peer discovery, notes, claims, and SDK handoff. - Added clearer linked-agent UI states so users can see when Clavue and Codex are associated with the same workspace and can install or launch the missing peer directly.
- Expanded the official website copy with richer imux positioning, Clavue agent collaboration, browser/terminal/file workflows, and agent-sdk use cases.
- Polished the left activity rail, sidebar controls, and agent configuration surfaces for a smoother VS Code-style layout with clearer button/list separation and less panel overlap.
- Updated linked mode labels from Claude + Codex to Clavue + Codex across the titlebar and localized UI.
- Published a fresh stable
v1.10.4release target so GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed installer.
- Restored debug Ghostty config fallback to the release app-support bundle id so debug builds can reuse the stable imux config when no tagged debug config exists.
- 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.3release target so GitHub release assets, the npm launcher, website download aliases, and Sparkle feed can advance together on one signed installer.
- 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.
- 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.2release target so GitHub release assets, the npm launcher, website download aliases, and Sparkle feed can advance together on one signed installer.
- 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.
- 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.0release target so the desktop app, website metadata, download aliases, and Sparkle feed can advance together once the signed installer is generated.
- Published a fresh stable
v1.9.1release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
- Published a fresh stable
v1.8.16release 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.
- 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.
- Published a fresh stable
v1.8.15release 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.
- Reduced avoidable main-thread sync churn in terminal, tab, and Ghostty action routing by consolidating the remaining sync hops behind instrumented wrappers.
- Published a fresh stable
v1.8.14release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
- Rejected duplicate logical main-window registrations without retargeting the owning
TabManagerto the duplicate window, preventing split-brain window ownership where one window loses its terminal attachment.
- Published a fresh stable
v1.8.11release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build. - Bundled the
codexlauncher plus the sharedimux-agent-common.shhelper into the shipped app resources so packaged installs keep the same agent wrapper coverage as the checked-in compatibility CLI surface.
- 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.
- Published a fresh stable
v1.8.10release 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.
- 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.
- Published a fresh stable
v1.8.9release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
- 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.
- Published a fresh stable
v1.8.8release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
- 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.
- Published a fresh stable
v1.8.7release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
- Moved supervisor API-key loading off startup and SwiftUI render paths so the app can finish launching without blocking on keychain access.
- Published a fresh stable
v1.8.6release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
- Restored remote SSH workspace path continuity so reconnecting a configured remote workspace now rehydrates
currentDirectoryfrom the persisted per-host remote path state, and remote file restore/open fallback paths continue to preserve SSH identity end-to-end.
- Published a fresh stable
v1.8.5release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one signed build.
- Rejected duplicate SwiftUI primary-window registrations without retargeting the owning
TabManagerto the duplicate window, which prevents the recurring two-client split where one window loses its attached terminal surface.
- Published a fresh stable
v1.8.4release 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.
- 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
securityshell 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.
- Published a fresh stable
v1.8.3release 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.
- 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 sshcompatibility 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.
- Published a fresh stable
v1.8.1release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed installer.
- 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.
- Published a fresh stable
v1.7.4release so the desktop app, GitHub release assets, website download aliases, and Sparkle feed can advance together on one new signed build.
- Stopped app-level shortcut routing from dropping
Cmd+Wevents 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.
- Rebuilt and republished the stable
v1.7.3installer 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.3as the current stable line and points users to the same installer path served by GitHub Releases.
- 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.
- 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
v3panel 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
iccCLI usage contract around caller-relative workspace and surface defaults, and added executable usage tests so help text stays aligned with the runtime routing model.
- 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.
- Rebuilt the desktop shell around the new
v3client 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.
- 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.
- 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
imuxicon 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/ build100so the desktop app, signed release artifacts, and website manifests can publish a new stable version cleanly.
- Preserved compatibility for existing saved channel settings and restored sidebar state by continuing to decode legacy
wechatidentifiers 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.
- 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 asimux. - Tightened the release-facing app copy around the
imuxidentity while leaving internal compatibility identifiers and legacy restore paths intact where they are still required.
- Rebranded the shipped app, website download surfaces, feedback copy, and release asset naming from the legacy
icc/atlasmix to the publicimuxbrand. - Replaced the shared app and web logo set with a new
imuxicon 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.
- Session restore now saves into the new
imuxsupport path while still reading legacyiatlasandiccsnapshot 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.
- 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.
- 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.
- Promoted the active stable line to
v1.5.0so the desktop app, GitHub release path, and website metadata can converge on a fresh release target instead of reusing the earlierv1.4.0line. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.0release line.
- 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.
- Added an install-and-relaunch recovery flow when
iccis 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.
- Replacing an older installed
icc.appnow overwrites the existing app bundle in/Applicationsor~/Applicationsinstead 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Rebranded active website docs, legal, and community surfaces to
icc, and aligned active GitHub links with the currentmiounet11/iccrepository. - Updated localized message packs for active product surfaces so install and product copy no longer present legacy
iccnaming.
- 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.
- 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.
- Release publication now mounts and verifies the DMG before upload, checking the app bundle shape and the
Applicationsdrag target so malformed installers are blocked before users download them.
- 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.
- Long supervisor prompt cards in the sidebar now stay bounded inside the panel instead of expanding the entire narrow layout.
- Quick settings import shortcuts for VS Code, Cursor, Claude Code, and Codex so users can move into
iccfaster without rebuilding their terminal preferences by hand. - A source-control sidebar workflow for fast
git pull, fastgit push, and repo-status actions that opens real terminal panes in the current workspace instead of acting like a disconnected stub. - An
AI Command Centercollaboration panel that can add Claude and Codex panes or create a shared dual-model layout directly inside the current workspace.
- Refreshed the app icon, product logo, welcome copy, and linked website surfaces so the public
iccbrand is more distinct and consistent across the desktop app and the website. - Refreshed the release-facing documentation for the
icclaunch: 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.1release. - Strengthened the public-facing product narrative so the main docs and web notes present
iccas 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
iccnaming so the shipped product presents itself asiccin the main release-facing paths.
- 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
Returnto send and keepsShift+Returnfor 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.
- 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 themescommand with bundled Ghostty themes (#1334, #1314)- Sidebar can now shrink to smaller widths (#1420)
- Menu bar visibility setting (#1330)
- 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. 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.
- 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 treecommand for full CLI hierarchy view (#592)- Install or uninstall the
iccCLI 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 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)
- 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)
- 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)
- 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)
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 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.

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.

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

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.
- 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
- 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
ICC_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 byICC_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. The sidebar now displays git branch, listening ports, log entries, progress bars, and status pills for each workspace.
- 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 ICC_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.icc.appfor consistency
- Rename app to icc — new app name, socket paths, Homebrew tap, and CLI binary name (bundle ID remains
com.icc.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 icc) - 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
- icc 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 icc
- Improved CI UI test stability
- Sparkle auto-update flow
- Titlebar update UI indicator
- GPU-accelerated terminal rendering via Ghostty
- Tab management with native macOS UI
- Split pane support
- Keyboard shortcuts
- Socket API for automation