Stream tmux pane contents to a Firefox sidebar with full input support. Monitor and control Claude Code sessions or other terminal applications while browsing.
- Real-time streaming of tmux pane content (~150ms refresh)
- ANSI color support (256-color and true color)
- 500 lines of scrollback history
- Input controls: quick buttons (1-5, Y/N), navigation (arrows, Tab, Space, Enter), control keys (Ctrl-O, Ctrl-C, Ctrl-L), and text input
- Token-based authentication
- Auto-discovery of all tmux sessions/windows/panes
- Smart scroll: auto-follows output, preserves position when reviewing history
cd daemon
cargo build --release
./target/release/tmux-streamOn first run, a config file is created at ~/.config/tmux-stream/config.toml with a generated auth token. The token is displayed on startup - copy it for the extension.
Option A: Signed extension (recommended)
- Download
cc-tmux-stream-0.1.1-signed.xpifrom Releases - Open Firefox → File → Open File → select the .xpi
- Click "Add" when prompted
Option B: Development (temporary)
- Open
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on..."
- Select
extension/manifest.json
- Right-click the tmux-stream icon → Options
- Paste the token from the daemon output
- Save
- View → Sidebar → tmux Stream (or click the extension icon)
- Click "Connect"
- Select a tmux pane from the dropdown
- Use the input buttons to interact with the terminal
| Button | Action |
|---|---|
| 1-5 | Send number key (for Claude prompts) |
| Y / N | Send y/n response |
| ↑ ↓ ← → | Arrow key navigation |
| ⇥ | Tab key |
| ␣ | Space (toggle options) |
| ^O | Ctrl-O (toggle output view in Claude Code) |
| ^C | Ctrl-C (send interrupt signal) |
| ^L | Ctrl-L (clear screen) |
| ⏎ | Enter key |
| Text + Send | Send custom text with Enter |
The daemon config file (~/.config/tmux-stream/config.toml):
[server]
host = "127.0.0.1"
port = 19475
[auth]
token = "your-generated-token"
[capture]
interval_ms = 150├── daemon/ # Rust WebSocket server (tokio/axum)
│ └── src/
│ ├── main.rs # Entry point
│ ├── config.rs # Config file handling
│ ├── protocol.rs # WebSocket message types
│ ├── server.rs # WebSocket server
│ └── tmux.rs # tmux integration
│
├── extension/ # Firefox extension (Manifest V2)
│ ├── sidebar/ # Main sidebar panel
│ ├── options/ # Settings page
│ └── icons/
│
└── docs/ # Documentation & assets
- Rust 1.70+
- Firefox 109+
- tmux running in the same environment as the daemon
MIT
