Zellij terminal workspace: Sessions now in the web browser
Simply save terminal sessions as bookmarks and call them up via URL – The new web client in Zellij makes this possible.
(Image: Zellij)
Zellij receives the long-promised web client. The open source software is a modern terminal workspace, comparable to a traditional multiplexer. Users can organize their terminal sessions in their preferred layout and extend them via plug-ins. The web client is part of release 0.43.0 and can be used to start, access and restore terminal sessions directly in the browser at any time.
Implementation of the web client
Technically, the web client is based on a web server embedded in Zellij, which runs locally on the user's computer. The browser then communicates bidirectionally with the server via two WebSocket connections. On the terminal channel, the client sends STDIN input to the server and receives rendering commands from the server via STDOUT. The control subchannel is responsible for changes to the window size by the client and for configuration changes, log messages, and switch session commands by the server.
The web client is based on xterm.js, which is also used by VS Code, among others. However, the developers have further adapted the terminal, including for the integration of the user's mouse. Web sessions on a system can be uniquely identified by their name and are also accessible via a specific URL. Users can therefore save these as bookmarks and call them up again. If it is no longer active, Zellij restores it.
According to the developers, special attention was paid to security: the axum-based web server enforces HTTPS and authentication to secure access to the terminal sessions and prevent misuse. Furthermore, the entire feature is opt-in: users must explicitly start the server or configure it accordingly beforehand. In addition, the project delivers a version completely without the web functions, which also contains none of the dependencies.
A detailed insight into how the new web client works can be found in a blog post by the developer. The Zellij project page also has its own documentation of the new function.
Videos by heise
Further updates in the new release
Release 0.43.0 includes further useful features: It now supports the multiple selection of panels, for example to move or stack several panels at the same time in a new tab. Performance has also been improved thanks to an asynchronous rendering engine. There are also various bug fixes, improved handling of multi-line hyperlinks and new features for session recovery. Details can be found in the release notes on GitHub.
(fo)