Brian Krabach a3f1e2efd8 feat: add sidebar markup, toggle button, and view-body wrapper to expanded view
- Add #sidebar-toggle-btn to expanded-header (after #back-btn, before #expanded-session-name)
  with aria-label='Toggle session list' and hamburger icon ☰
- Wrap #terminal-container in div.view-body
- Add #session-sidebar before #terminal-container inside .view-body, containing:
  - .sidebar-header with .sidebar-title 'Sessions' and #sidebar-collapse-btn (chevron ‹)
  - #sidebar-list div
- Keep #reconnect-overlay outside .view-body as sibling inside #view-expanded

Tests added:
- test_html_sidebar_toggle_button: verifies placement, aria-label, and order in header
- test_html_view_body_wrapper: verifies .view-body contains #session-sidebar and #terminal-container
- test_html_reconnect_overlay_outside_view_body: verifies #reconnect-overlay is outside .view-body
- test_html_session_sidebar_structure: verifies full sidebar DOM structure

Co-authored-by: Amplifier <amplifier@amplified.dev>
2026-03-27 16:35:43 -07:00

muxplex

A web-based dashboard for tmux sessions. Access and manage all your tmux sessions from any device — browser, phone, tablet.

Features

  • Live tile grid showing all running tmux sessions
  • Click any session to open a full interactive terminal
  • Bell/activity notifications across sessions
  • Multi-device support with state sync
  • Mobile-friendly, responsive, PWA-capable
  • Works over Tailscale private network

Stack

  • Backend: Python FastAPI coordinator (coordinator/)
  • Frontend: Vanilla JS + xterm.js (frontend/)
  • Terminal: ttyd (WebSocket bridge to tmux)
  • Proxy: Caddy

Running

# Install dependencies
pip install -r requirements.txt

# Start coordinator (from this directory)
python -m uvicorn coordinator.main:app --host 0.0.0.0 --port 8099

# Start Caddy proxy
caddy run --config Caddyfile

Development

# Run tests
python -m pytest

Brand assets

Design language, tokens, and brand assets in assets/branding/. To regenerate PNG/favicon assets from SVG sources:

python3 scripts/render-brand-assets.py
S
Description
Web-based tmux session dashboard and terminal multiplexer
Readme 4.4 MiB
Languages
Python 63.1%
JavaScript 30.5%
CSS 4%
HTML 1.4%
Go 1%