Skip to content

Mux-o-Tron

The Mux-o-Tron is an area reserved in the UI for agent status, monitoring, and response. This application actually does double mux duty: it multiplexes terminal PTYs (via tmux) as well as coding agents (via hooks/plugins interfaces).

Initially inspired by Apple’s Dynamic Island, the idea is to reserve a portion of the screen that is visible and up-to-date no matter which session, window, or pane a user happens to be focused on.

Mux-o-Tron in its collapsed shape with the honeybee mascot and counter

In its idle shape the Mux-o-Tron is a compact box centered in the tab bar. The counters show the number of agents with unanswered permission requests as well as a total count of running agents. These values are driven by the Agent Integrations hooks; Honeymux does not provide visibility into agents running outside its own tmux workspace.

The two-sided counter is managed as follows:

CounterIncrementedDecremented
UnansweredA permission-request hook arrives (for example PermissionRequest from Claude Code).A response keycode (e.g. Enter, Esc, Ctrl-C) is detected towards that agent’s PTY — either through direct typing, the Mux-o-Tron’s approve / deny actions, or the agent’s own UI. Or the agent disconnects.
TotalAn agent connects to Honeymux through its Unix domain socket.The agent disconnects.

When both counters are zero and no agent has ever connected, the right side reads no agents instead of 000/000.

The leftward subarea of the Mux-o-Tron is allocated for communication of state as follows:

StateSymbol(s)ColorWhen it applies
Idleʕ·ᴥ·ʔGreyNo unanswered agent requests pending.
Need inputʕ·ᴥ·ʔPer agentAt least one unanswered agent request is pending.
Sleepingʕ-ᴥ-ʔzzzDim greyNo agents, and the counter has read zero for 5+ minutes.
Warning pendingEmojiOne or more warning-level notifications are pending; count shown in superscript.
Info pendingEmojiOne or more information-level notifications are pending; count shown in superscript.
Idle_______Dim greyFlat line indicates no agents working
Working..·˙.__GreenSine wave indicates at least one agent working

When both warnings and info items are pending at the same time, the icon alternates every five seconds and the superscript sums both categories. Clicking the badge opens the notifications review frame; if you bind a notifications key it does the same.

When a permission request arrives from a pane other than the one you are focused on, the Mux-o-Tron expands horizontally to cover as much of the Tab Bar as needed to show the request’s details.

No latch key configured:

Mux-o-Tron expanded across the Tab Bar for a waiting Claude Code permission request while you're working in another pane

Latch key configured:

Mux-o-Tron auto-expanded for a waiting permission request, with a dashed border and a single 'right alt: latch' hint on the bottom border instead of approve/deny/goto/dismiss

In these states, the Mux-o-Tron shows:

ItemConditionLocationDetail
Border--Changes color to match the requesting agent (e.g. orange == Claude Code)
BorderLatch key mapped-Renders as solid or dashed lines based on current latch state
Conversation label-Upper leftAssist in identifying the requesting agent
Permission request details-Center lineNature of the request
ApproveLatch key unmappedButton stripAffirm request
DenyLatch key unmappedButton stripReject request
GotoLatch key unmappedButton stripSwitch focus to agent pane
DismissLatch key unmappedButton stripIgnore permission request
LatchLatch key mappedButton stripInline response

In latchless mode, agent actions can be activated via mouse click, as well as key bindings.

If multiple agents have pending requests at once, the oldest one in shown (FIFO). Responding or dismissing the current request advances to the next one in timestamp order.

When the latch key is bound, pressing it while a permission request is pending promotes the Mux-o-Tron into a full-viewport surface: the agent’s live PTY renders inside the frame, the border switches to solid, and the bottom button strip stays on the permission-response set (approve / deny / goto / dismiss).

Mux-o-Tron latched from a pending permission request: full-viewport view with the agent's permission dialog rendered inside the frame and approve/deny/goto/dismiss buttons along the bottom

Keystrokes land in the agent’s PTY, so you can read the full context of the request — or type a free-form reply — without leaving the Mux-o-Tron to reach the approve/deny buttons. Tap the latch binding again to collapse back to the main terminal view.

Every keyboard surface on the Mux-o-Tron is also clickable:

  • Clicking the body of the idle box opens the Agents dialog.
  • Clicking the body when it contains an active permission request switches focus to the pane where the requesting agent is running.
  • Clicking the notification badge (when the or icon is showing) opens Notifications.
  • Clicking a response button (approve / deny / goto / dismiss, or latch / goto / prev / next) activates that action without requiring a configured keyboard shortcut.
  • Scrolling over a vertically expanded Mux-o-Tron scrolls the captured pane content or wrapped tool-input text inside the frame. Scrolling over a latched interactive pane forwards the scroll sequence to the agent’s PTY, so the agent’s own UI (pager, viewport) responds.

All mouse interactions are via single left click — other gestures have no effect.

Screen captures powered by Honeyshots

Copyright © 2026 Aaron Campbell · Apache 2.0