-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Problem
When a tmux session has multiple panes (e.g. 3–4 AI agents running side by side), the current agentboard view renders the entire session layout. On desktop this is fine, but on a phone the panes become tiny and hard to read or interact with.
Proposed Solution
Detect screen width and switch behavior at a breakpoint (e.g. 768px):
- Desktop (wide): keep the current behavior — render the full session layout with all panes visible
- Mobile (narrow): instead of the cramped split view, display each pane as a full-screen tab, with a tab bar showing pane titles (e.g.
[Claude] [Codex] [Gemini] [Cmd]), each tab filling the full screen
Tab names would come from tmux pane titles (#{pane_title}), which many setups already configure meaningfully.
Why this seems feasible (based on a quick read of the code)
A few things in the existing architecture make this look relatively approachable:
- The WebSocket
terminal-attachmessage already has atmuxTargetfield that acceptssession:window.paneformat, the protocol can already address individual panes, the frontend just never populates this field useMobileLayoutand the 767px breakpoint are already used throughout, no new responsive infrastructure needed- The horizontal session tab UI on mobile already exists as a pattern to build on
The main missing pieces appear to be: (1) backend calling tmux list-panes to discover panes per window, and (2) a pane tab switcher in the mobile UI that sets tmuxTarget accordingly.
Relation to #59
Different from #59 (tiling): that proposes reimplementing split-screen natively in the browser; this is purely a presentation adaptation for small screens using the pane layout that already exists in tmux.
Happy to take a stab at a PR if this direction sounds good.