Terminal sessions you can bookmark
14 days ago
- #terminal-multiplexer
- #web-client
- #rust
- Zellij is a terminal workspace and multiplexer with a unique ability to keep sessions alive in the background.
- The recent Zellij version includes a built-in web client, allowing users to attach to terminal sessions from a browser.
- The web client architecture involves a client/server model where the server holds the state of terminal sessions.
- The web-server serves multiple sessions to multiple clients, acting as a translation layer between browser websockets and Zellij server IPC channels.
- Zellij sessions are namespaced and accessible via unique URLs, enabling bookmarking and easy access.
- The web client uses xterm.js for terminal emulation in the browser, with custom integrations for features like mouse event tracking.
- Security measures include token-based authentication, HTTPS enforcement for external interfaces, and hashed token storage.
- The server is built with Rust using axum for the web server, rustls for HTTPS, and includes static assets in the executable.
- Daemonization of the web-server is handled with error reporting to the parent process for user feedback.
- Future plans include expanding the web interface with native UI components, blending multiple sessions, and hosted multiplayer terminal sessions.