muxy-app/muxy
53.1
Adequate · 1 October 2026
105.9k
lines of production code
Swift
primary language
2
measurements over time
What this system is
Muxy is a macOS-native desktop development environment that integrates a persistent Ghostty terminal, an in-app browser, and project management tools into a flexible, multi-layout interface. It supports local and remote SSH workspaces, enabling users to manage Git operations and worktrees through a unified view. The system features a robust extension infrastructure with a dedicated runtime, allowing third-party tools to interact with the host via a secure socket API for file, Git, and browser automation.
Features
Add Chrome cookie import capability
Users can now import cookies from Google Chrome profiles into the application. This change introduces a new BrowserImport service layer that reads Chrome's local cookie database, decrypts the values using the system keychain, and injects them into the app's web view cookie store.
Muxy/Services/BrowserImport · high confidence
Add app transparency and vibrancy controls
The application now supports configurable transparency and vibrancy settings for the terminal window. This is achieved by introducing new configuration files that set the window padding color to extend and configure the background opacity to 0.00 with background blur disabled, allowing the app to blend with the desktop background.
Muxy/Resources/ghostty-overrides · high confidence
Add built-in sidebar tips
The application now includes a set of built-in sidebar tips to help users discover features. This change introduces a new \tips.json\ resource file containing guidance on terminal settings, keyboard shortcuts, the Composer, browser profiles, commands, and extensions, while removing the placeholder \.gitkeep\ file that previously occupied the Resources directory.
Muxy/Resources · high confidence
Add vanilla JS starter kit for Muxy extensions
A new starter kit for building Muxy extensions using plain JavaScript and Tailwind CSS has been added to the resources. This kit provides a minimal, self-contained project structure built with Vite, featuring a sample 'Hello' panel that demonstrates core extension capabilities such as command subscriptions, theme-aware styling via Muxy CSS tokens, and panel rendering. It includes helper utilities for DOM manipulation and icon rendering, along with a build script to package the extension for installation.
Muxy/Resources/starter-kits · high confidence
Added Xcode scheme for the Muxy app
A new Xcode scheme file (Muxy.xcscheme) has been added to the project, configuring build, test, launch, profile, analyze, and archive actions for the Muxy target and its associated test suite. This enables developers to run, debug, and test the mobile application directly within Xcode.
.swiftpm · high confidence
GhosttyKit module scaffolding for Swift integration
Added the foundational module map and placeholder C file for GhosttyKit, enabling the library to be imported as a Swift module. This setup exposes the prebuilt libghostty.a binary via the ghostty.h header, allowing Swift applications to link against and use the terminal engine.
GhosttyKit · high confidence
Initial project scaffolding and configuration
The repository has been initialized with essential configuration files, including \.env.example\ for local Sentry integration, \.swiftformat\ and \.swiftlint.yml\ for code style enforcement, and \.tool-versions\ to pin development tools. Documentation files such as \README.md\, \CONTRIBUTING.md\, \LICENSE\, \PRIVACY.md\, and \SECURITY.md\ have been added to define project usage, contribution guidelines, and legal policies. Additionally, \skills-lock.json\ has been introduced to manage external agent skills, and \.gitignore\ has been updated to exclude build artifacts and local configuration files.
(repo-wide) · high confidence
Introduce Agents Focused layout with agent launchers and split-pane workspace
Users can now switch to an 'Agents Focused' workspace layout that displays a row of buttons for launching agent tabs and terminals directly from the project view. This layout supports nested split panes with resizable dividers, drag-and-drop tab reordering between areas, and visual drop-zone highlights to indicate where tabs will be placed. The workspace also includes a layout picker menu to apply different predefined layouts per project, and handles empty project states by showing appropriate prompts and actions based on the current layout mode.
Muxy/Views/Workspace · high confidence
Introduce MuxyAPI extension service for file, Git, and GitHub operations
This change adds the MuxyAPI service layer, providing a structured API for extensions to interact with workspace files, Git repositories, and GitHub user data. The new \MuxyAPIDispatcher\ routes extension requests to specific handlers in \MuxyAPIFiles\ (for listing, reading, writing, and managing files), \MuxyAPIGit\ (for status, diffs, logs, branches, and pull requests), and \MuxyAPIGh\ (for fetching the current GitHub user). DTOs in \FilesDTO\, \GitDTO\, and \GhDTO\ serialize these results for the extension interface, while \MuxyAPI\ defines the error types and data structures used throughout the service.
Muxy/Services/MuxyAPI · high confidence
Introduce MuxyExtensionHost as a standalone extension runtime
A new standalone executable, MuxyExtensionHost, has been added to run extension background scripts. It establishes a secure Unix socket connection to the main Muxy process, manages a JavaScriptCore execution context for extensions, and exposes a bridge for extensions to interact with the host via APIs for events, execution, notifications, dialogs, modals, topbar/statusbar updates, git operations, and browser automation. The host also monitors for parent process death to ensure clean termination.
MuxyExtensionHost · high confidence
Introduce MuxyRemoteServer for mobile device connectivity
The MuxyServer module now includes a new remote server implementation (MuxyRemoteServer) that enables mobile clients to connect to the desktop application. This server listens on a configurable TCP port (default 4865) using WebSocket connections, supports Bonjour service discovery for local network finding, and implements a device authentication flow for secure pairing. It exposes a comprehensive delegate protocol allowing mobile apps to perform file operations, manage workspaces and projects, control terminals, and interact with version control systems (Git) remotely.
MuxyServer · high confidence
Introduce Quick Terminal with configurable appearance and focus management
A new Quick Terminal feature is added, providing a dismissible, shortcut-activated floating terminal window. The implementation includes logic to manage window geometry (centering on the active screen), handle focus restoration when dismissing, and apply configurable appearance settings such as transparency and vibrancy. The terminal respects system accessibility preferences for reduced motion and transparency, and automatically dismisses or adjusts when focus is lost or screen parameters change.
Muxy/Services/QuickTerminal · high confidence
Introduce Quick Terminal with customizable appearance, size, and keyboard shortcuts
A new Quick Terminal feature is available, providing a floating, borderless panel that can be toggled via a configurable global keyboard shortcut. Users can customize the terminal's transparency and vibrancy levels, as well as its width and height, through an in-app settings popover. The terminal supports input monitoring for shortcut recording and includes a bridge view for controls, with behavior such as dismissing when focus is lost.
Muxy/Views/QuickTerminal · high confidence
Introduce background service for detecting AI agents in terminal panes
This change adds a new \AgentDetection\ service layer that automatically identifies when an AI agent is running in a terminal pane. It includes a \ForegroundProcessInspector\ to extract executable names from running processes (handling script interpreters like Node or Python), an \AIAgentDetector\ to match those executables against known provider definitions, and stores (\DetectedAgentStore\, \AgentPaneIdentity\) to track the detected provider ID and icon for each pane. A new \AgentProcessExitWatcher\ monitors process lifecycles to update status when agents terminate. This enables the UI to display provider icons and status indicators for AI-assisted terminal sessions.
Muxy/Services/AgentDetection · high confidence
Introduce browser automation service and profile management
Adds a new browser automation service in Muxy/Services/Browser that enables programmatic interaction with web pages, including clicking, typing, filling forms, waiting for elements, and retrieving text or HTML. It introduces persistent browser profiles with isolated data stores (using WKWebsiteDataStore), allowing users to maintain separate browsing contexts. The service also includes a history store for tracking visited URLs with suggestions, a favicon cache, and a registry for managing web view instances.
Muxy/Services/Browser · high confidence
Introduce browser model layer and extension system foundation
This change adds the foundational data models for a new browser feature and the extension system. For the browser, it introduces models for history entries, home pages, load errors, user profiles, search engines, URL resolution, tab state, and zoom controls, establishing the core structure for browser functionality. For extensions, it defines the permission system, panel and tab state management, event handling, localization catalog validation, shortcut groups, and topbar rail ordering logic, providing the necessary data structures to support extension capabilities.
Muxy/Models/Extension · high confidence
Introduce core UI model abstractions for panels, navigation, and settings
This change adds a suite of new model types in the UI layer that define the structure and behavior for key interface components. It introduces \Panel\ and \PanelChrome\ to manage panel positioning, docking modes, and header controls, alongside \TabStripLayout\ to handle tab sizing and new-tab button placement. User preferences are now modeled via \AppBackgroundStyle\, \SidebarMode\, \FileOpenerSelection\, and \LocalizationSelection\, providing a structured way to persist and resolve settings like background vibrancy, sidebar styles, and extension-based openers or localizations. Additionally, \NavigationHistory\ implements a bounded, cursor-based history stack for undo/redo navigation, while \MuxyNotification\ and \MuxyTip\ define the data structures for in-app alerts and contextual tips.
Muxy/Models/UI · high confidence
Introduce desktop notification delivery and AI hook integration
The application now supports desktop notifications for AI provider events. A new notification service layer handles scheduling, authorization, and sound playback, while a hook management system stages and executes shell scripts for various AI providers (including Claude, Copilot, Cursor, Kiro, Xal, and Antigravity) to deliver notifications reliably. Clicking a notification navigates the user to the relevant project, area, and tab, and the system suppresses duplicate notifications within a short window to reduce noise.
Muxy/Services/Notifications · high confidence
Introduce mobile device pairing and remote file system services
This change adds the foundational services for mobile device pairing and remote workspace file operations. It introduces a local network server (MobileServerService) that listens for incoming connections, a pairing flow (PairingRequestCoordinator, MobilePairingService) that uses macOS alerts to approve or deny new devices, and persistent storage for approved and remote devices. Additionally, it adds a new FileSystem service layer (FileSystemOperations, FileSystemWatcher, FileTreeService, WorkspaceFileService) that handles local file system interactions such as reading, writing, moving, and watching files, which is exposed to remote clients via the new server.
Muxy/Services/Mobile · high confidence
Introduce new CLI wrapper and shell environment utilities
The Muxy Utilities module now includes a new CLI wrapper script (CLIWrapperScript) and accessor (CLIAccessor) that install a shell script to /usr/local/bin/muxy, enabling the app to manage CLI installation, detect stale wrappers, and automatically migrate legacy CLI installs on app launch. Additionally, a new LoginShellPath utility hydrates the application's PATH and COPILOT\_HOME environment variables from the user's login shell, ensuring that CLI commands and AI provider integrations resolve the correct binaries and paths.
Muxy/Utilities · high confidence
Introduce new Project Picker service architecture with folder search and path navigation
The Project Picker service has been restructured into a cohesive set of new components that support two distinct interaction modes: folder search and explicit path navigation. This change adds a folder search capability that scans directories for projects while respecting performance limits and skipping common build artifacts, alongside a path-based navigation mode that handles directory traversal, autocomplete, and path confirmation. The update also introduces a settings model allowing users to configure the default search location for project folders, and defines a command-driven interface for keyboard shortcuts and user intents within the picker.
Muxy/Services/ProjectPicker · high confidence
Introduce new UI hosting services for panel, popover, and focus management
Added new service classes in the UIHosts module to manage application state: PaneOwnershipStore handles pane ownership between local and remote clients; PanelHost manages panel placement, mode, and persistence; PanelFocusRestoration captures and restores keyboard focus when panels are opened or closed; PopoverHost controls extension popover lifecycle and resizing; and SettingsFocusCoordinator routes focus requests to specific settings sections.
Muxy/Services/UIHosts · high confidence
Introduce new project and worktree data models with remote workspace support
The application now uses a new set of data models for managing projects and worktrees, introducing \Project\, \RemoteProject\, \ProjectGroup\, and \Worktree\ structs. This change adds support for remote workspaces via SSH, allowing users to connect to remote devices and manage projects on them alongside local ones. It also introduces worktree configuration hooks (setup/teardown commands) and new sorting options for the project list, including 'Recently Active' and 'Date Added'.
Muxy/Models/Project · high confidence
Introduce persistent background terminal sessions
Users can now run terminal sessions in the background that persist independently of the client connection. This change adds a dedicated session daemon (MuxySession) that manages persistent PTY processes, allowing clients to detach and later reattach to the same session via a Unix socket. The implementation includes a session attach client for reconnection, a daemon for process lifecycle management, and support for session metadata (project, worktree, tab, title) passed via environment variables.
MuxySession · high confidence
Introduce shared protocol layer and extension API infrastructure
This change adds a comprehensive set of shared Swift types that define the communication protocol between the host application and extensions, as well as the data models for the mobile client. It introduces \MuxyProtocol.swift\ and \MuxyMessage.swift\ to handle structured request/response/event messaging with specific methods for VCS, file operations, and terminal control. It also defines the \ExtensionBridgeJS.swift\ script, which provides the JavaScript interface for extensions to interact with the host, including capabilities for modals, dialogs, storage, and execution. Additionally, it adds data transfer objects (DTOs) for projects, workspaces, worktrees, VCS status, and UI layout, establishing the foundational data structures for the new extension-driven architecture.
MuxyShared · high confidence
Introduces centralized preference models for app settings
This change adds a comprehensive set of new preference model files in the Muxy/Models/Preferences directory, establishing the data layer for user-configurable settings. These models cover a wide range of features including app transparency and blur controls, browser integration, notification delivery plans, composer layout sizing, quick terminal appearance and behavior, AI repository action prompts, and various UI visibility toggles (such as top bar actions, sidebar tips, and project search). By introducing these structured preference keys and storage logic, the application now supports persistent configuration for these new and existing features.
Muxy/Models/Preferences · high confidence
Introduces configurable command shortcuts and a new Quick Terminal shortcut backend
The keyboard service now supports a new 'Command Shortcuts' feature, allowing users to define a prefix key (defaulting to Command+G) followed by a secondary key to trigger custom actions, with configuration persisted to a JSON file. Additionally, the Quick Terminal shortcut mechanism has been refactored to support multiple backends, including a new Carbon-based global hotkey handler and a Double-Shift detector that uses system-wide event taps, replacing the previous single-backend approach. The system also includes a conflict resolver that checks for overlaps between Quick Terminal, command prefix, custom command, and extension shortcuts, and a modifier key monitor that displays visual hints for active modifiers after a short delay.
Muxy/Services/Keyboard · high confidence
Introduces extension infrastructure and notification system
This change adds the foundational Swift code for the Muxy extension system, including bundle resource loading for provider icons, DTO conversions for projects and worktrees, and SwiftUI view extensions for keyboard shortcuts and focus management. It also establishes a comprehensive notification center with new names for UI actions (such as theme toggling, terminal search, and extension modals) and structured data types for workspace file changes and extension installation requests, enabling the application to support external extensions and a more modular internal architecture.
Muxy/Extensions · high confidence
Introduction of MuxyHookBridge executable for AI hook execution
A new executable, MuxyHookBridge, has been added to handle the execution of AI notification hooks. This component acts as a runtime bridge that parses agent hook commands from standard input, enforces execution budgets, and manages the lifecycle of hook execution via the MuxyHookKit library. It ensures reliable transport by reading standardized input, running the specified command within budget constraints, and exiting with appropriate status codes (success or failure) to signal the result to the calling process.
MuxyHookBridge · high confidence
New AI agent launch and hook management infrastructure
This change introduces the core service layer for managing AI agent integrations, including a registry of providers (such as Claude Code, GitHub Copilot, Kiro, and Xal) and a robust hook installation system. It adds logic to detect, install, and verify shell hooks for these agents, featuring self-healing capabilities that automatically repair or reinstall hooks when conflicts or missing states are detected. The update also implements a status tracking system to monitor agent lifecycle phases (working, waiting, idle) with grace periods to prevent false idle states, and provides a mechanism to launch agent CLIs both locally and over SSH.
Muxy/Services/AI · high confidence
New CLI, browser automation, and AI provider hook scripts
This update introduces a comprehensive set of new capabilities in the Muxy scripts directory. The \muxy-cli\ wrapper now supports extensive terminal multiplexer commands (split, send, read-screen, tab/pane management), project and worktree targeting, and a full in-app browser automation API (open, navigate, screenshot, DOM interaction). It also adds commands for workspace/project management and settings import/export. Additionally, new hook scripts and plugins are added to integrate with various AI providers—Antigravity, Claude, Codex, Copilot, Cursor, Droid, Grok, Kiro, Pi, and Xal—enabling Muxy to receive agent events, permissions, and notifications from these tools. The \muxy-claude-wrapper.sh\ specifically sets up Claude Code to use Muxy's hook system for event reporting.
Muxy/Resources/scripts · high confidence
New JSON-based settings persistence and file storage infrastructure
The application introduces a new persistence layer in the Services/Persistence module, replacing or supplementing previous storage mechanisms. This includes a generic CodableFileStore for atomic JSON read/write operations with configurable formatting, a centralized MuxyFileStorage utility for managing Application Support paths (with specific isolation for test processes), and a comprehensive SettingsJSONStore. The SettingsJSONStore manages user preferences via a JSON file, handling automatic synchronization with system defaults, applying settings changes to live services (such as Quick Terminal shortcuts and automatic update toggles), and ensuring file permissions are set correctly for security.
Muxy/Services/Persistence · high confidence
New Tab-Focused sidebar layout with Agents mode and project management
The Tab-Focused layout now features a redesigned sidebar that supports two distinct content modes: standard tabs and an Agents-focused view. In Agents mode, users can launch new agent tabs via a provider menu, reorder agent tabs via drag-and-drop, and manage projects with features like workspace switching, project sorting, and restoration of recently removed projects. The sidebar also integrates Git workflows directly, providing popovers for branch management (create, switch, delete), working tree changes (stage, unstage, discard), and pull request actions (merge, close, update). Additionally, repository AI actions are accessible via a split button that allows selecting AI providers and editing project-specific prompts.
Muxy/Views/Layouts/TabFocused · high confidence
New backup and restore service for Muxy settings and projects
A new backup system has been added, allowing users to export their Muxy configuration (including settings, keybindings, remote devices, and recently removed projects) into a .muxy archive and import it back. The service handles archiving via the system ditto utility, sanitizes sensitive data like SSH environment variables during export, and ensures data safety by creating a pre-import backup that is automatically restored if the import process fails.
Muxy/Services/Backup · high confidence
New badge components for notifications, terminal activity, and updates
Added three new SwiftUI badge components to the UI library: NotificationBadge displays unread counts with accessibility labels; TerminalActivityIndicator visualizes terminal states (working, waiting, unread, finished) with specific icons and tooltips; UpdateBadge provides a clickable button to check for new versions, showing the version number and an arrow icon. These components use localized strings for accessibility and tooltips.
Muxy/Views/Components/Badges · high confidence
New dedicated settings pages for AI, browser, backup, commands, and interface
The Settings view now includes several new, dedicated configuration pages. Users can configure AI-powered commit and pull request generation by selecting providers and customizing prompts (AISettingsView). A new Browser section allows enabling the built-in browser, managing profiles, importing cookies from Chrome, and setting a custom home page (BrowserSettingsView, BrowserImportSheet). App data can now be exported to and imported from a single .muxy backup file, excluding sensitive credentials (BackupSettingsView). Custom terminal command shortcuts with conflict detection are managed in a new Commands section (CommandsSettingsView). The Interface page has been reorganized to centralize language, layout, appearance, theme, and UI visibility controls (InterfaceSettingsView). Additionally, extension-specific settings are now exposed via a dedicated view (ExtensionCustomSettingsView), and hook health status is displayed with detailed diagnostics (HookHealthPresenter).
Muxy/Views/Settings · high confidence
New extension popover UI component
Added the SwiftUI view and NSViewRepresentable anchor for rendering extension popovers. This introduces ExtensionPopoverView, which hosts the extension's web content via ExtensionWebView, and ExtensionPopoverAnchor, which manages the native macOS popover lifecycle (presenting, resizing, and closing) based on extension state.
Muxy/Views/Popovers · high confidence
New extension security, execution, and bridge infrastructure
This change introduces the core backend services for the extension system. It adds a custom URL scheme handler (muxy-ext) to serve extension assets with size limits and path-traversal protection, and an audit log to record extension decisions. A new bridge handler manages the communication between extension webviews and the host app, including lifecycle events. It also introduces a bounded, cancellable subprocess runner for extension commands with concurrency limits, user consent gating, and timeout handling, along with shared utilities for decoding/encoding exec and HTTP requests.
Muxy/Services/Extensions · high confidence
New extension, notification, and voice recording panel views
This change introduces the UI components for three new panel types in the application. ExtensionPanelView renders extension content with customizable chrome, including support for hiding the header and displaying custom header buttons defined by the extension. NotificationPanel provides a list view for system notifications with relative timestamps, clear-all functionality, and accessibility labels. VoiceRecordingPanel offers a dedicated interface for voice input, featuring a live level meter, transcript display, and controls for pause, cancel, and send actions.
Muxy/Views/Panels · high confidence
New extensions management UI with creation, marketplace, and consent flows
The Extensions view has been replaced with a comprehensive management interface featuring a dedicated store for browsing and installing extensions, a creation sheet that scaffolds new projects from starter kits, and a consent dialog for permission prompts. Users can now install extensions from the marketplace, create local development extensions, manage installed extensions, and view detailed logs in a dedicated output panel.
Muxy/Views/Extensions · high confidence
New icon rendering components for extensions, providers, and shortcuts
Added a suite of new SwiftUI view components in the Icons directory to handle diverse icon sources: \ExtensionIconButton\ and \ExtensionIconView\ render icons provided by extensions (supporting SF Symbols and local SVGs), \ExtensionRemoteIconView\ fetches and caches remote image URLs, \AppBundleIconView\ displays macOS application icons with caching, \ProviderIconView\ loads and optionally tints provider-specific SVG icons, and \ShortcutIconBadge\ displays keyboard shortcut keys with numeric badges.
Muxy/Views/Components/Icons · high confidence
New in-app browser with address suggestions, find-on-page, and developer tools
The Muxy/Views/Browser location now introduces a complete in-app browser UI built on SwiftUI and WebKit. Users get a new address field with real-time history/URL suggestions, a find-on-page bar, and a start page for new tabs. The browser pane displays web content with error handling and retry options, while the toolbar provides navigation controls, a profile picker, and an option to open the current page in an external browser. Additionally, the browser supports developer inspection via a custom WKWebView subclass that enables the WebKit inspector through private APIs.
Muxy/Views/Browser · high confidence
New local performance profiler and enhanced diagnostics services
This change introduces a new opt-in local performance profiler that records CPU and memory usage samples to a JSONL file, alongside a suite of new diagnostics services including memory diagnostics with periodic logging, process resource monitoring, and process tree classification. It also adds a Sentry service that respects user consent for error reporting and handles DSN configuration, replacing or augmenting previous ad-hoc diagnostic approaches with structured, file-based logging and system-level process inspection capabilities.
Muxy/Services/Diagnostics · high confidence
New low-level interaction components for click, drag, and resize handling
The Interaction component area now includes new SwiftUI wrappers for precise mouse event handling: DoubleClickView, LeftClickView, MiddleClickView, WindowDragView, and ResizeHandle. These components provide reliable detection of double-clicks, single left/middle clicks, window dragging (including double-click to maximize/minimize), and resizable panel handles with configurable hit-area bias, enabling more robust user interactions in the UI.
Muxy/Views/Components/Interaction · high confidence
New overlay components for extension modals and terminal omnibox
This change introduces several new SwiftUI overlay views in the Overlays component directory. It adds ExtensionModalOverlay and ExtensionWebviewModalOverlay to support extension-provided modals and webviews, including a key monitor to handle Escape key dismissal for webviews. It also introduces TerminalOmniboxOverlay, a unified search interface for projects, worktrees, workspaces, tabs, and commands, and PaletteOverlay, a reusable search-and-select component with pagination and filtering. Additionally, it adds OverlayPanel for consistent modal styling and OverlayEscapeKeyMonitor for standardized Escape key handling across overlays.
Muxy/Views/Components/Overlays · high confidence
New project management services and Git worktree file watching
This change introduces a suite of new services in the Project service layer to enhance project lifecycle management and Git worktree handling. A new GitWorktreesWatcher monitors filesystem events to automatically refresh worktree status, while ProjectRemovalService and ProjectOpenService manage project removal (including a recently-removed history with restoration) and opening projects via picker or Finder. ProjectGroupStore and ProjectGroupPersistence handle grouping and persistence of local and remote (SSH) projects, and ProjectEditingService allows updating project metadata like logos and icons.
Muxy/Services/Project · high confidence
New release build and update infrastructure
The scripts directory now includes a comprehensive build-release workflow that packages the Swift application into a signed macOS app bundle, embeds the Sparkle framework for automatic updates, and injects Sentry DSNs for crash reporting. This includes helper scripts to generate signed appcast XML files for stable and beta channels, derive Sparkle cryptographic keys, and clean changelog formatting. Additionally, a new checks.sh script enforces specific versions of SwiftFormat and SwiftLint defined in .tool-versions, and a setup.sh script automates the download and extraction of the GhosttyKit xcframework and its runtime resources.
scripts · high confidence
New reusable picker components with search, keyboard navigation, and footer actions
The Pickers component area now includes several new SwiftUI views to enhance selection interfaces. SearchableListPicker adds a searchable list with keyboard navigation (arrow keys, enter to select) and customizable row content. PopoverPicker wraps a searchable list with optional footer actions that can display busy states. SegmentedPicker provides a tab-like selection interface where the entire segment area is clickable. ProjectPickerPathField introduces a native macOS text field for path input with command mapping for navigation and completion. ProjectPickerShortcutHint displays keyboard shortcut hints for picker interactions.
Muxy/Views/Components/Pickers · high confidence
New shared UI components for project management, worktrees, and sidebar tips
This update introduces a suite of new shared SwiftUI views in the shared layouts area to enhance the user interface for project and worktree management. Users can now customize project icons with a new color picker and SF Symbols selector, and crop logos using a dedicated cropper sheet. The project context menu has been expanded to include actions for pinning, renaming, and managing worktrees (creating, switching, and removing), with a new 'Copy Path' option in the footer. A new worktree popover provides a searchable list of worktrees with inline rename and removal capabilities. Additionally, the sidebar now features built-in tip cards and a promotional card for the Muxy 2 Beta, along with an extension sidebar view to support third-party extension content.
Muxy/Views/Layouts/Shared · high confidence
New socket-based service for extension notifications and command handling
A new \NotificationSocketServer\ and \SocketCommandHandler\ have been introduced to manage inter-process communication via a Unix domain socket. This change adds support for extension-specific event subscriptions, allowing extensions to subscribe to and receive real-time notifications based on declared permissions and allowed events. Additionally, it exposes a set of commands over the socket for managing terminal panes (send, read-screen, close, rename), sessions (list, kill), and projects/worktrees (list, switch, create), while explicitly restricting configuration import/export commands from being executed by extensions.
Muxy/Services/Socket · high confidence
New status bar buttons for debugging, resource usage, and terminal sessions
The status bar now includes dedicated buttons for monitoring application performance and managing background tasks. A new Debug button provides a live popover showing memory, CPU, thread count, and uptime metrics. A Resource Usage button displays a detailed breakdown of CPU and memory consumption for the app and its subprocesses, with an option to hide it from the status bar. Additionally, a Terminal Sessions button lists and manages detached background terminal sessions, allowing users to attach them to active tabs, open them in new tabs, or stop them.
Muxy/Views/Components/Buttons · high confidence
New support components for modal windows, sidebar vibrancy, and extension icon rail
This change introduces a suite of new support components in the Views/Support area. It adds AppModalWindow to handle macOS sheet presentation with outside-click dismissal and keyboard shortcuts. It introduces AppSidebarBackground and AppTransparencyBackground to apply sidebar vibrancy and window transparency effects, respecting accessibility settings. It also adds ExtensionTopbarItems and ExtensionTopbarRail to display extension-provided topbar icons, including an optional vertical icon rail that supports drag-and-drop reordering. Additional helpers include ClosureMenuItem for action handlers, MaterialMask for blur opacity, ReparentingNSViewHost/Broker for dynamic NSView hosting, TruncationHelp for truncated text tooltips, and UUIDFramePreferenceKey for frame tracking.
Muxy/Views/Components/Support · high confidence
Persistent background terminal sessions and client-side theme support
Terminal panes can now be sent to the background and persist independently of the app window, with automatic reattachment on relaunch and resilient recovery logic for dropped connections. The terminal also respects client-provided color themes, applying them dynamically to the Ghostty surface, and supports app transparency controls that adjust the terminal background to match system appearance settings.
Muxy/Services/Terminal · high confidence
Support for SSH remote workspaces
Users can now connect to remote devices via SSH to work with files and run commands as if they were local. This change introduces a new \WorkspaceContext\ that distinguishes between local and SSH-based environments, enabling file operations (listing, reading, writing, uploading), command execution, and project picking over SSH. It includes configurable environment variables for remote devices, secure path containment to prevent directory traversal, and robust connection management with timeouts and multiplexing.
Muxy/Services/Remote · high confidence
Support for new AI CLI providers and hook configurations
The extension now integrates with several new AI command-line tools, adding provider implementations for Antigravity, Kiro, OpenCode, and Droid (Factory CLI). Existing providers for Claude Code, Codex, GitHub Copilot, Cursor, and Grok have been updated with specific hook installation, verification, and uninstallation logic tailored to each tool's configuration format (such as JSON hooks, TOML configs, or plugin directories). This allows the extension to detect these agents, manage their notification hooks reliably, and launch them in headless mode for repository actions.
Muxy/Services/Providers · high confidence
Support for rich input drafts with image attachments and command shortcuts
The input model layer now supports rich text drafts that include file and image attachments, enabling users to paste images via clipboard or inline file paths (with specific handling for remote SSH sessions). A new CommandShortcut model allows defining custom key combinations for commands, and the input state management includes logic to clear drafts after submission or when the input is closed, ensuring a clean slate for subsequent interactions.
Muxy/Models/Input · high confidence
Removals
Removal of legacy terminal and project model classes
The legacy model classes AppState, Project, SplitNode, TerminalPaneState, and TerminalTab have been removed from the Muxy/Models directory. This deletion eliminates the previous in-memory structures used to manage project lists, terminal tab hierarchies, and pane splitting logic, indicating a shift to a different architectural approach for handling terminal state and UI layout.
Muxy/Models · high confidence
Behavioural changes
Add Diagnostics menu and overhaul Commands structure
A new Diagnostics menu has been added to the application menu bar, providing options to export memory snapshots, toggle periodic logging, and reveal the logs folder. The MuxyCommands module has been significantly refactored: the previous tab and pane management commands (New Tab, Close Tab, Split, Close Pane) have been removed, and the app settings command group has been replaced with direct buttons for Settings, Extensions, and opening the Ghostty configuration file. Additionally, new commands for reloading configuration, refreshing worktrees, creating/removing worktrees, installing the CLI, and checking for updates have been introduced, with worktree actions gated by eligibility checks and shortcut bindings.
Muxy/Commands · high confidence
Add English localization strings for new UI features
The application now includes a comprehensive set of English localization strings (Localizable.strings) covering recent interface updates. Users will see translated text for new capabilities such as persistent background terminal sessions, Composer layout options (clear-after-send, clear-on-close), app transparency and vibrancy controls, project search settings, and various terminal and worktree management features.
Muxy/Resources/Localization · high confidence
Add bundled terminal themes and prioritize user themes
The application now ships with a large set of bundled terminal themes (including 0x96f, Catppuccin variants, and the new Claude theme pair) and ensures that any user-defined themes take precedence over these bundled defaults.
Muxy/Resources/ghostty · high confidence
Complete rewrite of the Git service layer with new parsers, caching, and GitHub CLI integration
The Git service has been rebuilt from the ground up to improve reliability, performance, and feature depth. The new architecture introduces dedicated parsers for commit logs, diffs, pull requests, and status porcelain, replacing the previous monolithic service. A robust caching system (GitMetadataCache, GitRepoStatusCache, BranchCache) with TTL-based expiration and LRU eviction reduces redundant API calls and background polling. Process execution is now handled by GitProcessRunner, which supports direct executable lookup, SSH workspaces, and safe environment handling (e.g., GIT\_OPTIONAL\_LOCKS=0) to prevent index.lock contention. Pull request management is significantly enhanced with GitPRParser for detailed PR info, checks, and merge state, alongside a new GhUserService that leverages the GitHub CLI (gh) for user identity and credential assistance. The diff viewer benefits from GitDiffParser's context row collapsing and accurate line tracking, while GitStatusAggregator provides a unified snapshot of branch, file, and PR state.
Muxy/Services/Git · high confidence
Introduce Ghostty-based terminal with persistent sessions and status bar controls
The terminal view now uses the Ghostty engine (GhosttyTerminalNSView) to render panes, enabling persistent background sessions that survive app restarts and can be reconnected via a dedicated button in the new ProjectStatusBar. The status bar also displays repository state (branch, changes, pull requests) and provides controls for AI-driven commit and pull request actions, including a confirmation sheet that allows users to append custom prompts. Terminal panes now support wake-from-sleep and unreachable-session placeholders, and the UI includes a rich search bar, a draggable scrollbar overlay, and progress indicators for background tasks.
Muxy/Views/Terminal · high confidence
Introduce new app architecture and service layer
The application has been restructured with a new service layer and dependency injection system. A new AppEnvironment centralizes service initialization, replacing the previous ProjectStore with dedicated persistence protocols for projects, worktrees, and groups. New capabilities include an IDE integration service for opening projects in external editors, a relaunch mechanism for app updates, and a built-in tips store for user guidance. The update system now supports install-on-quit updates via Sparkle, and configuration management for Ghostty has been added.
Muxy/Services · high confidence
Introduces adjustable UI scaling and a unified theme system
Users can now adjust the overall UI scale of the application through a new setting with presets for Default, Large, Extra Large, and Huge sizes. This change introduces a centralized theming architecture in the Muxy/Theme module, featuring the \UIScale\ service for managing the scale multiplier and the \UIMetrics\ enum to ensure all layout dimensions, font sizes, and spacing values scale proportionally. Additionally, a new \MuxyTheme\ system provides a consistent set of color tokens for the app chrome and editor, including specific support for diff highlighting colors and contrast-aware accent foregrounds, ensuring visual consistency across light and dark modes.
Muxy/Theme · high confidence
Muxy app initialization and core service wiring
The Muxy application entry point has been restructured to initialize and wire up a comprehensive set of core services and stores, including project, worktree, project group, remote device, and browser profile management. The app now integrates localization support, extension handling, SSH connectivity, and desktop notifications at launch, while also configuring CLI access, socket command handling, and mobile server services to support the broader extension and remote workspace ecosystem.
Muxy · high confidence
New agent hook notification system with reliable transport and structured event mapping
MuxyHookKit introduces a new agent hook infrastructure that standardizes how AI provider notifications are captured and delivered. The system parses command-line arguments to identify the provider and event type, then maps diverse provider-specific events (such as user prompts, tool usage, permissions, and errors) into a unified internal structure with defined phases like working, waiting, or finished. These mapped events are transmitted via a Unix socket with a robust retry mechanism, execution budgets to prevent hanging, and a failure logger that records errors to a local log file. This change provides a single, reliable authority for agent status and notifications, replacing previous ad-hoc or less reliable transport methods.
MuxyHookKit · high confidence
New keyboard shortcut model and quick terminal support
The application introduces a new keyboard shortcut system defined in Muxy/Models/Keyboard, featuring a comprehensive enum of ShortcutAction cases for managing tabs, panes, projects, and worktrees. This change adds support for a configurable Quick Terminal shortcut, allowing users to assign a specific key combination or double-shift to toggle the terminal. Additionally, the KeyCombo parser now correctly handles the minus key as a literal character, ensuring accurate input recognition for shortcuts involving that key.
Muxy/Models/Keyboard · high confidence
New layout system with Agents Focused mode and confirmation flows
The application introduces a new layout architecture that allows users to switch between Project Focused, Tab Focused, and Agents Focused modes, with the new Agents Focused layout providing a sidebar dedicated to the agent list and a tab-strip topbar. This change also adds confirmation steps for AI-powered repository actions (commit and create PR) and pull request merges, requiring user approval before these operations execute. Additionally, the working tree changes popover now supports multi-select staging, allowing users to stage or discard multiple files at once.
Muxy/Models/Layout · high confidence
New project-focused sidebar with workspace switching and project search
The application now uses a new project-focused sidebar layout that includes a workspace switcher for managing and switching between project groups (including remote/SSH workspaces), a dedicated search field to filter projects by name, and updated project rows that display activity indicators and support worktree management. This change replaces the previous sidebar implementation with a more structured view for navigating projects and workspaces.
Muxy/Views/Layouts/ProjectFocused · high confidence
New workspace state management and layout system
This change introduces a new core architecture for managing workspace state, replacing the previous implementation with a reducer-based system. It adds \AppState\ to track projects, worktrees, and tab hierarchies, along with dedicated reducers (\FocusReducer\, \SplitReducer\, \TabReducer\, \TopLevelTabReducer\, \ProjectLifecycleReducer\) to handle user actions like splitting panes, moving tabs, and switching projects. The system now supports persistent workspace layouts via \LayoutConfig\ (loading YAML/JSON definitions) and \LayoutWorkspaceBuilder\, and includes logic for restoring previous workspace states on launch. This refactors how the application maintains the structure of open tabs, splits, and focused areas.
Muxy/Models/Workspace · high confidence
Replace legacy terminal and sidebar views with a resizable, floating Composer panel
The application's main window layout has been restructured to remove the previous sidebar, tab bar, and split-pane terminal views (ContentView, SidebarView, TabBarView, SplitPaneView, etc.) and introduce a new Focused Composer system. This change adds a resizable, floating Composer panel (FocusedComposerView) that supports both panel and floating presentation modes, complete with custom resize edges (ComposerResizeEdge) and layout metrics. The new Composer includes a rich text input editor (RichInputTextEditor) with voice dictation support, file/image attachment handling, and draft persistence, replacing the older terminal-centric interaction model.
Muxy/Views · high confidence
Rich Input composer gains image paste, draft persistence, and configurable clearing
The Rich Input service now supports pasting images directly into the composer, handling upload and normalization for remote SSH terminals while enforcing 25 MB and 64 megapixel limits. Drafts are automatically persisted to disk and restored, with a new option to clear the input after sending or on close. The composer can now be presented as a floating window or a docked panel, with its position and mode saved per panel.
Muxy/Services/RichInput · high confidence
Support for paired light and dark themes
The theme service now allows users to configure separate light and dark themes via a paired format (e.g., \dark:"Name1",light:"Name2"\). The \ThemeService\ introduces logic to resolve the active theme based on the current system appearance, with fallbacks to a unified name if only one variant is specified. Existing single-theme configurations are automatically migrated to this paired structure, ensuring that the correct colors are applied for both light and dark modes.
Muxy/Services/Theme · high confidence
Terminal model layer restructured with new state and policy types
The terminal model layer has been reorganized into dedicated files to improve code cohesion. This change introduces \TabIndicatorPolicy\ to manage agent status aggregation and attention dot visibility, \TerminalActivity\ to unify working, waiting, unread, and finished states, and \TerminalProgress\ to handle progress indicators including indeterminate states for agents. A new \TerminalSearchState\ class manages search input with debouncing and displays match counts (including singular '1 match'). \TerminalPaneState\ now explicitly tracks offline status, session recovery failures, and handles title/working directory updates with debouncing. \TerminalTab\ has been expanded to support multiple content kinds (terminal, extension web view, browser) and includes logic for restoring tab snapshots. Additionally, \TerminalOmniboxItem\ defines the data structures for the omnibox search interface, supporting projects, recently removed projects, worktrees, workspaces, open tabs, command shortcuts, and extension commands. \TerminalControlBytes\ provides constants for terminal control sequences like bracketed paste, and \TerminalOfflineTimeout\ defines configurable timeout durations for offline sessions.
Muxy/Models/Terminal · high confidence
Fixes
4 commits (3 fixes) fixing MuxySessionProtocol
A fix in MuxySessionProtocol — 4 commits (3 fixs), 8 files.
MuxySessionProtocol · medium confidence · unverified
Test coverage
Added comprehensive test coverage for Git subsystems; Added test coverage for CLI wrapper, shell path, and file handling utilities; Added test coverage for MuxyAPI services and file system operations; Added test coverage for UI model logic; Added test coverage for app relaunch, IDE integration, and extension host services; Added test coverage for keyboard and quick terminal services; Added test support utilities for extension, localization, and session testing; Added tests for AI agent launch providers, registry, and hook infrastructure; Added tests for AI provider hook installation and lifecycle management; Added tests for Git service internals and diff preview logic; Added tests for ProjectPicker services and workflow; Added tests for ProjectPickerFooterShortcut; Added tests for Quick Terminal view composition and panel behavior; Added tests for Rich Input composer services; Added tests for Settings view components; Added tests for Tab Focused layout sidebar state and project selection; Added tests for TerminalActivityIndicator tooltips; Added tests for UI host panel, popover, and settings focus behaviors; Added tests for UI scale presets and metrics scaling; Added tests for browser view components and lifecycle behaviors; Added tests for diagnostics services; Added tests for extension consent dialog sizing and web view lifecycle; Added tests for extension model serialization, localization validation, and UI rail ordering; Added tests for extension services and bridge behaviors; Added tests for keyboard shortcut models and defaults; Added tests for layout models, repository state, and UI presentation logic; Added tests for persistent terminal session infrastructure; Added tests for preferences and input state models; Added tests for project list search, sidebar layout, and worktree expansion; Added tests for project model serialization, sorting, and migration logic; Added tests for project services and mobile device management; Added tests for remote SSH workspace and upload services; Added tests for remote protocol, server routing, and file operations; Added tests for rich input, window management, and sidebar configuration; Added tests for terminal model logic; Added tests for terminal services and configuration; Added tests for terminal view behaviors and interactions; Added tests for the NotificationSocketServer and SocketCommandHandler; Added tests for the new Agent Hook notification bridge and desktop notification service; Added tests for workspace state management and UI behaviors; Added tests for worktree creation, removal, and project context menus; Added unit tests for LeftClickView and ResizeHandle interaction components; Added unit tests for application models and configuration parsing; Added unit tests for browser, theme, and extension subsystems; Added unit tests for overlay escape key handling and palette search field behavior; Added unit tests for persistence and settings storage; Added unit tests for the BackupService; Added unit tests for the Settings Catalog search and registration logic.
Dependencies
Update Swift dependencies and add extension starter kit
The project updates its Swift package dependencies, replacing SwiftTerm with Sparkle (2.9.1) for app updates, Yams (5.4.0) for YAML parsing, and Sentry (8.58.2) for crash reporting, while removing the previous SwiftTerm dependency. Additionally, a new vanilla JavaScript starter kit is added to the resources, providing a template for building Muxy extensions using Vite and Tailwind CSS.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 57 → 53 (-4.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 65 → 65 (-0.2)
- Architecture 98 → 92 (-5.8)
- Maturity 76 → 76 (-0.1)
- Readiness 46 → 44 (-1.6)
- Security 57 → 48 (-9.7)
- Performance 78 (new)
Resolved (19)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: contradicts the code (docs/remote-server/methods.md)
- Documentation: no usage examples (README.md)
- Documentation: written for insiders (docs/extensions/storage.md)
- Documentation: written for insiders (docs/extensions/tabs.md)
- Hotspot: Muxy/Models/Extension/ExtensionLocalizationCatalog.swift (Muxy/Models/Extension/ExtensionLocalizationCatalog.swift)
- Hotspot: Muxy/Models/Keyboard/KeyCombo.swift (Muxy/Models/Keyboard/KeyCombo.swift)
- Hotspot: Muxy/Models/Workspace/Reducer/SplitReducer.swift (Muxy/Models/Workspace/Reducer/SplitReducer.swift)
- Hotspot: Muxy/MuxyApp.swift (Muxy/MuxyApp.swift)
- Hotspot: Muxy/Services/Extensions/ExtensionEventEmitter.swift (Muxy/Services/Extensions/ExtensionEventEmitter.swift)
- Hotspot: Muxy/Services/Extensions/ExtensionGrantStore.swift (Muxy/Services/Extensions/ExtensionGrantStore.swift)
- Hotspot: Muxy/Services/Git/GitRepositoryService.swift (Muxy/Services/Git/GitRepositoryService.swift)
- Hotspot: Muxy/Services/Terminal/RemoteTerminalSnapshotBuilder.swift (Muxy/Services/Terminal/RemoteTerminalSnapshotBuilder.swift)
- Hotspot: Muxy/Utilities/DotEnvLoader.swift (Muxy/Utilities/DotEnvLoader.swift)
- Hotspot: Muxy/Views/Components/Overlays/PaletteOverlay.swift (Muxy/Views/Components/Overlays/PaletteOverlay.swift)
- Hotspot: MuxySession/SessionAttachClient.swift (MuxySession/SessionAttachClient.swift)
- Hotspot: MuxySession/SessionDaemon.swift (MuxySession/SessionDaemon.swift)
- Hotspot: MuxyShared/MuxyProtocol.swift (MuxyShared/MuxyProtocol.swift)
- Low cohesion: FeedDelegate (LCOM4 6) (Muxy/Services/App/UpdateService.swift)
New (102)
- Coverage not measured — Swift suite
- Documentation: no project overview (README.md)
- Duplicated block (10 lines × 2) (Muxy/Views/Extensions/ExtensionInstallPage.swift)
- Duplicated block (10 lines × 2) (Muxy/Views/Layouts/ProjectFocused/ExpandedProjectRow.swift)
- Duplicated block (10 lines × 2) (Muxy/Views/Layouts/ProjectFocused/ProjectFocusedSidebar.swift)
- Duplicated block (10 lines × 2) (Muxy/Views/Layouts/Shared/WorktreePopover.swift)
- Duplicated block (10 lines × 2) (Muxy/Views/Layouts/TabFocused/TabFocusedChangesPopover.swift)
- Duplicated block (10 lines × 2) (Muxy/Views/Settings/CommandsSettingsView.swift)
- Duplicated block (10–11 lines × 3) (Muxy/Services/Extensions/ExtensionGrantStore.swift)
- Duplicated block (11 lines × 2) (Muxy/Views/Browser/BrowserWebView.swift)
- Duplicated block (11 lines × 2) (Muxy/Views/Components/Overlays/PaletteOverlay.swift)
- Duplicated block (11 lines × 2) (Muxy/Views/Layouts/ProjectFocused/ExpandedProjectRow.swift)
- Duplicated block (11 lines × 2) (Muxy/Views/Settings/SettingsView.swift)
- Duplicated block (11 lines × 2) (Muxy/Views/Workspace/SplitContainer.swift)
- Duplicated block (11 lines × 3) (Muxy/Views/Settings/CommandsSettingsView.swift)
- Duplicated block (12 lines × 2) (Muxy/Views/Layouts/Shared/WorktreePopover.swift)
- Duplicated block (13 lines × 2) (Muxy/Models/Terminal/TerminalOmniboxItem.swift)
- Duplicated block (13 lines × 2) (Muxy/Views/Components/Buttons/OpenProjectControl.swift)
- Duplicated block (13 lines × 2) (Muxy/Views/Layouts/ProjectFocused/ExpandedProjectRow.swift)
- Duplicated block (14 lines × 2) (Muxy/Views/Layouts/Shared/ProjectIconColorPicker.swift)
- …and 82 more
Changes since last survey
- 6 commits — 3 feature/other, 3 fixes
By area
- (root) — 2 commits
- Muxy/Services — 2 commits
- Muxy/Views — 1 commit
- scripts/build-release.sh — 1 commit
Notable commits
- fix: fix .tool-versions file
- fix: fix: accept versioned SwiftPM resource bundle layout in build-release (#1120)
- fix: fix: restore the C numeric locale after Ghostty initialization (#1121)
- change: Add Muxy 2 Beta sidebar card and tip (#1124)
- change: Bump BETA_VERSION to 1.7.0
- change: Separate Muxy 2 Beta from in-app update channels (#1123)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
muxy-app/muxy was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ab008599954afe683a48410b98b8f483adb96b40 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.