Commit 5c79a81
Add web client for session management and console interaction
Implements a full-featured web interface for mux with:
- TypeScript type generation from Rust structs via TypeShare
- HTTP/WebSocket API for session management and real-time updates
- Type-safe TypeScript client library (@mux/client)
- React 19 frontend with session list, console, and chat interface
- Terminal emulation with xterm.js for browser-based console access
- Embedded static file serving in Rust binary via include_dir
Architecture:
- Dual protocol: Unix socket (existing CLI/TUI) + HTTP server (web)
- REST API endpoints for CRUD operations on sessions
- WebSocket /ws/events for real-time session updates
- WebSocket /ws/console/:id for PTY streaming with base64 encoding
- Vite + Tailwind CSS v4 + Radix UI for modern frontend
Usage:
- Start daemon with: cargo run -- daemon --http-port 3030
- Access web UI at: http://localhost:3030
- Zero breaking changes to existing CLI/TUI functionality
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent 5b1394b commit 5c79a81
48 files changed
Lines changed: 3848 additions & 18 deletions
File tree
- packages/multiplexer
- src
- api
- core
- tui
- web
- client
- src
- frontend
- src
- components
- contexts
- hooks
- lib
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
58 | 61 | | |
59 | 62 | | |
60 | 63 | | |
| |||
77 | 80 | | |
78 | 81 | | |
79 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
80 | 91 | | |
81 | 92 | | |
82 | 93 | | |
83 | | - | |
84 | 94 | | |
85 | 95 | | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
| 96 | + | |
92 | 97 | | |
93 | 98 | | |
94 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
0 commit comments