Features in Detail
A native, multi-provider agent workbench in 150-350MB of memory. Here is what it does today.
Multi-Provider Agent Panes
A native pane type that runs the real Claude Code, Codex, Gemini, Copilot, Qwen, Kimi, Antigravity, and more — not reimplementations — purpose-built agent UI, not a terminal wrapper.
- +Runs the actual, pinned vendor CLI binary for each provider, parsing its real output — your own login, your own model backend
- +Structured tool calls, file diffs, and reasoning rendered as markdown, not raw text
- +Stream-JSON parser renders agent output token by token as it arrives
- +Document model splits each turn into typed blocks: diffs, terminal output, code
- +Guided login flows with in-app status — Claude logs in without leaving the pane, automating the CLI's own real login flow rather than a separate auth client; other providers complete OAuth in your system browser (or a terminal fallback for TTY-only providers), tokens stored per-agent
- +State machine tracks the connection lifecycle: idle, connecting, authorized, running
- +Sessions survive pane moves and app restarts
Swarm: Subagent Watcher
When a primary agent spawns subagents, Swarm shows the live two-level tree and what each one is working on.
- +Detects spawned subagents by watching JSONL output
- +A dedicated pane per subagent with live streaming
- +Two-level agent/subagent tree shows which subagent is on which task
- +Surfaces each agent's opening reasoning and task breakdown as it starts
- +Persistent cron scheduler for agent runs, shown as a per-agent row bucket in Swarm
- +Multi-select across agents to broadcast a prompt or bulk-stop many at once — across channels, LAN, and WAN
Bundles
Every agent owns a dedicated, portable ABF Bundle carrying its instructions and context files, plus readonly harness and model-vendor fields that make an exported bundle fully self-describing. Instructions stay provider-agnostic, with optional provider-scoped overlays that travel with the bundle (launch-time selection is still in development) — and bundles can still be deliberately shared across agents.
- +Agent picker with an inline list, create/edit forms, and emoji icons per bundle
- +Harness and model vendor are readonly fields on the bundle itself, not the agent — instructions stay provider-agnostic, with optional provider-scoped overlays (ABF v0.2) that travel with the bundle; launch-time selection is still in development
- +Backed by `db_bundles` (renamed from `db_memory_bundles`), referenced by running agent instances
- +WPS events keep the picker in sync the moment a bundle changes
- +One-click launch: pick a bundle and an account, spawn into any pane
- +Export any bundle to a single portable .abf file, and import it elsewhere with selective import and collision handling
- +Agent-scoped export also carries an agent's native memory, not just its bundle
Per-Agent Accounts
Named credential sets — GitHub PAT, AWS profile, API keys, custom env — backed by the OS keychain and linked directly to an agent. Swap them at launch; they persist across agent renames.
- +Direct agent-to-account links, one per provider per agent — no intermediate bundle layer
- +Backed by `db_accounts` joined via `db_agent_identity_links`
- +A blank account for plain launches with no overrides
- +Credentials injected into the environment as the agent process boots
- +Swap the account on a running agent and env re-injects on the next turn
Sandboxed Container Runs
Run an agent inside a container instead of directly on the host. Every agent pane carries a HOST or SANDBOX runtime tag, so you always know where a run is executing.
- +Choose the runtime per launch: on the host machine, or isolated in a container
- +HOST/SANDBOX runtime tag in the pane UI shows each agent's execution environment at a glance
- +The bound account's credentials and the agent workspace are mounted into container agents, so a sandboxed launch works like a host launch
- +Interactive stdin reaches container agents, so you can drive a sandboxed session the same way you drive a host one
Native Memory Files
Every agent's memory is a versioned, on-disk file history you can inspect, edit, and roll back — not a black box that resets between sessions.
- +Agents read and write plain memory files you can inspect and edit yourself
- +Version-controlled memory history with automatic drift detection — see what changed and when, and roll back
- +Retention and garbage collection keep that history from growing unbounded
- +Global and Personal memory tiers, including an AgentMux-controlled system tier
- +Provider-specific startup instruction filenames (AGENTS.md, GEMINI.md, QWEN.md — not always CLAUDE.md)
- +Memory lives on disk, not locked inside a session
- +Streaming parser surfaces structured tool calls and reasoning as agents work
- +Status bar shows each agent's name, activity badge, and color
Armory: Shared Primitive Catalogs
The app-wide hub for every reusable primitive an agent is built from — Accounts, Bundles, and first-class MCP Server and Skill catalogs, opened from the hamburger menu or pinned to the widget bar.
- +MCP Servers tab: a catalog of global servers any agent can bind, plus each agent's own private servers
- +Skills tab: the same global-vs-private shape for the Skill primitive
- +Per-agent Agent setup tabs bind/unbind global catalog entries or manage private ones
- +One pane view, not a floating modal — opens in the widget bar/tab layout like any other pane
- +Export any agent's config as a single portable .abf bundle, then import it into another agent with selective, collision-aware merging
Watch Every Agent Turn Live
Every tool call and decision step streams as it happens, so nothing an agent does is off-screen.
- +Every tool call streams in real time with its arguments and results
- +A diff overlay shows file changes as agents make them
- +Context compaction is detected and surfaced in real time, not discovered after the fact
- +Interrupt to redirect an agent mid-task without killing the session
- +Searchable session history pins down exactly when and why an agent went off track
Multi-Agent View
Run agents in parallel and watch all of them at once, so conflicts surface before you merge their work.
- +Side-by-side agent panes, each scrolling independently
- +Per-agent resource usage and progress in the status bar
- +Redirect or pause one agent without touching the others
- +Per-agent color, set via environment variables, for quick visual ID
Live System Metrics
A dedicated sysinfo pane charts CPU, memory, and network in real time, with uptime and agent activity in the status bar.
- +Live CPU, memory, and network I/O graphs rendered with Recharts
- +Process list with filtering and a resource breakdown
- +Configurable history buffer for scrollback on the metric graphs
- +Status bar tracks uptime, backend health, and connection count
- +Per-pane stats and agent activity at a glance
Warden: Cross-Layer Agent Monitoring
A dedicated pane for monitoring and controlling agents across Host, LAN, and Internet layers — one view for a fleet that isn't all running on the same machine.
- +Tracks agents beyond just the local host — LAN and Internet-reachable instances too
- +Available from the widget bar's More menu (the default pinned set is Agent, Swarm, Armory, and Sysinfo — pin Warden yourself if you want it there)
- +Supervisor: opt in per agent to automated nudging that keeps a stalled agent moving, with a human-set ceiling on consecutive nudges
- +Every supervisor decision is audit-logged with its outcome and reason, and a transcript-read route lets you check what actually happened
Interagent Reactive Communication
Agents message each other over a local API via Tokio channels, so one agent's output can stream straight into another and drive a reactive pipeline.
- +Wire one pane's output to another pane's input for event-driven workflows
- +WPS broker (WebSocket) handles real-time pub/sub object updates
- +Connection indicators show active data flows between panes
- +Panes auto-register on the backend and advertise their capabilities
- +Offline queue buffers messages for agents that are down and delivers on reconnect
Muxqueue: Universal Agent Work Queue
A shared work queue any agent can post work to and claim work from — a store plus claim protocol for handing tasks between agents without wiring panes together.
- +Store + claim protocol: enqueue work items once, and any agent can claim them
- +Exposed over HTTP routes and six MCP tools, so agents on any provider can work the queue
- +Inspect the backlog from the command line with the muxspect CLI
- +Early: Muxqueue is shipping in slices, with more of the protocol still rolling out
Agent App API
Agents call a typed local API to open and rename panes, navigate, render dashboards, message peers, and reshape the workspace from their own code.
- +Spawn panes programmatically: terminal, editor, webview, dashboard
- +Change pane layout, title, and status indicators from agent code
- +IPC bridge to the Rust backend over low-latency WebSocket channels
- +Injection endpoints let agents coordinate across hosts
- +Agent-facing UI automation: screenshot its own pane, click, query the UI, and capture other windows — including across instances and operating systems
- +In-process event log records agent injections for debugging (durable audit trail in development)
Drone: Visual Workflow Engine
A DAG-of-blocks workflow pane for composing agent runs visually — chain steps together instead of scripting them by hand.
- +Available from the widget bar's More menu (the default pinned set is Agent, Swarm, Armory, and Sysinfo — pin Drone yourself if you want it there)
- +Compose multi-step agent workflows as a block diagram, not a script
Shell Integration
Per-pane shell hooks for bash, zsh, fish, and PowerShell, deployed by the host so every terminal pane knows which pane it is.
- +Identifies the running pane via the AGENTMUX_BLOCKID and AGENTMUX_TABID env vars
- +Tracks the working directory through OSC 7 sequences
- +The muxlog helper resolves the right host or sidecar log file from any context
- +Per-instance auth isolation: each provider's *_HOME / *_CONFIG_DIR points at <instance>/config/auth/
Pure-Rust Core
Tokio, Axum, and SQLite in a compact sidecar binary. No garbage collector means no GC pauses and no heap growth over a long session.
- +Rust's ownership model rules out null-pointer crashes and memory leaks
- +Auto-spawned sidecar binary, version-isolated from the CEF host
- +WPS broker (WebSocket) distributes pub/sub events in real time
- +SQLite persists workspaces, blocks, tabs, bundles, and config
- +AgentMux is built by agents running inside AgentMux
Flat Memory Over Long Sessions
Chromium 148 bundled via CEF for identical rendering on every OS, on a pure-Rust backend whose memory stays flat with no GC.
- +150-350MB at idle — on par with Warp, well below Cursor or Windsurf
- +Backend memory holds steady: startup footprint is the same after 8 hours
- +Chromium 148 via CEF behaves identically on Windows, macOS, and Linux
- +26MB frontend bundle from font optimization, worker dedup, and lazy loading
- +Shiki highlighter (9.4MB) loads only when you first view code
Low-Latency IPC
Push-based WebSocket channels with zero-copy serialization, holding up under hundreds of concurrent tool calls per second.
- +Agent output renders without perceptible lag, even under heavy multi-agent load
- +Tokio's async runtime keeps threads unblocked and the UI responsive
- +EventBus bridge routes broker events to WebSocket clients in real time
- +Debounced metadata writes and throttled renders keep CPU spikes down
- +Rate-limited injection endpoints guard against request floods
Code Preview Pane
View any file with syntax highlighting right in a pane, with the language detected from its extension.
- +Open any file on disk to read it with syntax highlighting
- +Language detected automatically from the file extension
- +Wired into the Agent App API so agents can open preview panes themselves
Real PTY Terminal
A real OS PTY via xterm.js and portable-pty, with full ANSI support — not a faked terminal.
- +Full ANSI color, mouse support, and configurable scrollback
- +Per-pane font size, theme, and transparency from the context menu
- +Working directory tracked and shown via shell hooks
- +Copy/paste context menu aware of the xterm.js selection
Embedded Webview
A full web browser in a pane, with navigation controls and its own zoom.
- +0.1x-5.0x zoom, independent of terminal zoom
- +URL and navigation state persist across pane moves
- +Back, forward, and reload controls in the pane header
- +Isolated frame rendering for security
- +Camera and microphone access gated by a per-pane permission prompt, with grants stored per pane and per origin — extra CEF flags can't silently enable media permissions
- +HTTP auth auto-fill with credentials isolated per pane
- +Global bookmarks with per-site favicons and an icon Go button
Media Pane
A dedicated pane for viewing images and other media, with live directory-watch updates as an agent writes new files.
- +Watches a directory and shows the newest matching file automatically
- +Useful for watching an agent's screenshot or render output land in real time
- +Available from the widget bar's More menu (the default pinned set is Agent, Swarm, Armory, and Sysinfo — pin Media yourself if you want it there)
Multi-Window & Multi-Instance
Multiple windows, each with its own workspace, plus version-isolated instances and cross-window drag and drop.
- +Drag panes across windows — PTY sessions and agent state survive the move
- +Tear off a pane to spawn a new window at the cursor
- +Title-bar instance marker — (1), (2) — to tell instances apart
- +Settings shared across instances and synced by a file watcher
- +Per-window geometry saved (size and position)
Cross-Platform Desktop
Native builds for Windows, macOS, and Linux, code-signed and notarized where the platform requires it.
- +macOS: .dmg, Apple code-signed and notarized (Apple Silicon)
- +Windows: Inno Setup installer and a portable ZIP
- +Linux: AppImage
- +Native window controls, keyboard shortcuts, and menu bar per platform
- +Opt-in auto-update with a progress UI and release notes
LAN Discovery
Opt-in mDNS-based discovery so other devices on your network can find and connect to this AgentMux instance — off by default.
- +Status-bar toggle starts and stops the discovery daemon live, no restart needed
- +UDP broadcast fallback keeps discovery working on networks that filter mDNS
- +A QR code is shown for pairing a device once LAN discovery is enabled
- +The Warden pane lists live peers discovered on the LAN
Per-Pane Zoom & Magnify
Zoom each pane independently from 50 to 200%, or double-click to magnify a pane to full screen.
- +Zoom is stored in block metadata and persists across sessions
- +Context-menu submenu with 25% increment presets and a reset
- +A transient indicator shows the current zoom level, then fades (1.5s)
- +Scroll position is restored after a zoom change
Reactive Settings
Settings apply across every pane the moment you change them — a file watcher broadcasts the update, no restart needed.
- +Window opacity, transparency, and blur, with live preview
- +Jotai atoms update on each config change via a WebSocket event
- +Programmatic updates through RpcApi.SetConfigCommand for agent-driven config
- +Overrides cascade: block meta beats connection beats global
- +Voice input: pick a device and test your mic right in Settings, then dictate into any composer
Drag & Drop Across the Workspace
Drag files into panes, reorder panes within a tab, move panes between windows, or tear a tab off into its own window.
- +Drop a file on an agent pane to feed it context, or on a terminal to copy it to the CWD
- +Split within a tab by dragging a pane left, right, up, or down
- +Move panes across tabs and windows without interrupting their processes
- +Reorder, tear off, and move tabs between windows
- +Drag the widget bar to reorder header widgets, with the order persisted
In-Pane Tabs & Agent Forks
Tabs inside a single pane — for terminals and, for agents, a fork tab strip that switches between related sessions started from the same agent.
- +Terminal panes support in-pane tabs, not just one shell per pane
- +The fork tab strip switches between related agent forks without losing any session's state
- +One-click fork creation from the tab strip to branch off a parallel session
Open Source · Apache 2.0
Local-first with zero telemetry — no tracking, no phone-home. Your agent data stays on your machine by default; an opt-in cloud bridge exists for inter-agent messaging.
- +Full source on GitHub under Apache 2.0
- +No account required; runs fully offline
- +Agent state stays local by default (cloud bridge is opt-in)
- +Free to use commercially, no restrictions
Try AgentMux
Free and open source. ~175MB portable — no install needed.
Early alpha. Features may be incomplete or unstable. AI agents generate content that may be inaccurate — always review outputs. Report issues