Terminal-Based Web Browsing with Modern Conveniences

Wait 5 sec.

Programmers hold to a wide spectrum of positions on software complexity, from the rare command-line purists to the much more common web app developers, and the two extremes rarely meet. One point of contact, though, might be [Jan Antos]’s Brow6el, which uses sixel graphics to display a fully graphical web browser within a terminal.Behind the scenes, the Chromium Embedded Framework renders webpages headless, then Brow6el uses libsixel to convert the rendered output image to sixels, a simple kind of console-based graphics representation, which it then outputs to the terminal. It regularly re-renders the page to catch page updates and display them in real time, and it can send mouse or keyboard input back to the webpage. For more advanced work, it also has a JavaScript development console, and it’s possibly to manually inject scripts into rendered webpages, or inject them automatically using URL match patterns.Some other convenient features include a bookmark system, a download manager, terminal-based popup dialog support, support for multiple simultaneous open windows, and a private mode, all of these features being controllable through the keyboard alone. The mouse input can be taken from a real mouse or from a keyboard-controlled virtual mouse, which lets the user click and scroll through websites even on fully text-based systems. [Jan] provides an impressive video demonstration (and we’re not just saying that because of the demo website), which is embedded below.Brow6el takes inspiration from a few other terminal-based web browsers, such as Carbonyl, though it improves on their graphics. Experienced readers, however, might already know that with some Wayland tricks, it’s possible to turn any application into a terminal app.https://codeberg.org/janantos/brow6el/raw/branch/main/screenshots/brow6el_demo.mp4