Architecture
The tmux integration follows a query-decide-execute-update pattern:
Source:
src/features/tmux-subagent/manager.ts:42
Core Components
TmuxSessionManager
Source:src/features/tmux-subagent/manager.ts:54
Main class managing session-to-pane mapping and lifecycle.
DecisionEngine
Source:src/features/tmux-subagent/decision-engine.ts
Pure function evaluating window state to produce spawn/close actions.
ActionExecutor
Source:src/features/tmux-subagent/action-executor.ts
Executes spawn/close/replace actions with verification.
GridPlanning
Source:src/features/tmux-subagent/grid-planning.ts
Calculates pane layout given window dimensions.
MIN_PANE_WIDTH: 52 charactersMIN_PANE_HEIGHT: 11 lines- Main pane preserved (never split below minimum)
- Agent panes split from remaining space
Layout Options
Vertical Layout (Default)
Horizontal Layout
Grid Layout
Session Lifecycle
Session Created
Source:src/features/tmux-subagent/session-created-handler.ts
Session Deleted
Source:src/features/tmux-subagent/session-deleted-handler.ts
Pane Management
Spawn Action
When: New background session, pane capacity availableReplace Action
When: New background session, no pane capacity (at limit)
Source:
src/features/tmux-subagent/oldest-agent-pane.ts
Defer Action
When: Temporary capacity constraint (window too small)
Constants:
Polling
Source:src/features/tmux-subagent/polling-manager.ts
Monitors pane health and auto-cleans dead sessions.
Configuration
Enable Tmux Integration
Disable Tmux Integration
$TMUX unset)
Interactive Sessions
Source:src/hooks/interactive-bash-session/
Hook integrates tmux with interactive tools (e.g., vim, htop).
Source Files
Location:src/features/tmux-subagent/ (27 files, ~3.6k LOC)
Core Files (9)
Core Files (9)
manager.ts- TmuxSessionManager main classdecision-engine.ts- Spawn/close decision logicaction-executor.ts- Execute pane actionsgrid-planning.ts- Layout capacity calculationspawn-action-decider.ts- Decide spawn vs replace vs deferspawn-target-finder.ts- Find best pane to splitoldest-agent-pane.ts- LRU victim selectionpolling-manager.ts- Health pollingtypes.ts- Type definitions
State Management (5)
State Management (5)
pane-state-querier.ts- Query tmux pane statesession-status-parser.ts- Parse session statussession-ready-waiter.ts- Wait for session readysession-message-count.ts- Track message countpane-split-availability.ts- Check split capacity
Event Handlers (3)
Event Handlers (3)
session-created-handler.ts- Handle session.createdsession-deleted-handler.ts- Handle session.deletedsession-created-event.ts- Event type definitions
Constants & Config (3)
Constants & Config (3)
tmux-grid-constants.ts- MIN_PANE_WIDTH, MIN_PANE_HEIGHTpolling-constants.ts- Polling intervalslayout-config.test.ts- Layout config tests
Cleanup & Utilities (7)
Cleanup & Utilities (7)
cleanup.ts- Session cleanup logicevent-handlers.ts- Event routingindex.ts- Barrel exportsaction-executor-core.ts- Core action execution- Various test files
Related
Background Agent
Background task system that uses tmux panes
Hooks
interactive-bash-session hook for tmux integration