Skip to content

Add --tmux flag for tmux-based display backend#66

Open
hyldmo wants to merge 1 commit into
mainfrom
hyldmo/tmux-backend
Open

Add --tmux flag for tmux-based display backend#66
hyldmo wants to merge 1 commit into
mainfrom
hyldmo/tmux-backend

Conversation

@hyldmo
Copy link
Copy Markdown
Owner

@hyldmo hyldmo commented Mar 3, 2026

Summary

  • Adds --tmux flag that runs processes inside tmux windows instead of the built-in TUI
  • Introduces Runner interface and RunnerFactory to decouple ProcessManager from ProcessRunner, enabling alternative backends
  • TmuxRunner manages processes in tmux windows using pipe-pane for output monitoring and exit sentinel files for lifecycle tracking
  • TmuxDisplay creates a tmux session with status-icon window names (e.g. ● api, ✖ web) and attaches to it

Trade-offs vs built-in TUI

  • Lost: mouse drag-to-copy, ctrl+click links, custom search with highlighting, readonly-by-default panes
  • Gained: detach/reattach sessions, familiar tmux keybindings, built-in copy-mode, no native Zig dependencies

Test plan

  • bun run typecheck passes
  • bun run lint passes
  • bun test — all 506 tests pass
  • Manual test: numux --tmux with a multi-process config

🤖 Generated with Claude Code

Adds an alternative display mode where processes run directly in tmux
windows instead of the built-in TUI. tmux handles terminal emulation,
scrollback, and display while numux remains the orchestrator.

- Add Runner interface and RunnerFactory to decouple ProcessManager
  from ProcessRunner
- Add TmuxRunner that manages processes inside tmux windows using
  pipe-pane for output monitoring and exit sentinel files
- Add TmuxDisplay that creates a tmux session with status-icon
  window names and attaches to it
- Generalize setupShutdownHandlers to accept ShutdownTarget interface

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant