Hasty Briefsbeta

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.