Browsh is a Text-based Web Browser for Low Internet Speed
Browsh is a fully-modern text-based browser. It renders anything that a modern browser can; HTML5, CSS3, JS, video and even WebGL. Its main purpose is to be run on a remote server and accessed via SSH/Mosh or the in-browser HTML service in order to significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs.
Browsh is an open-source awesome text-based browser that enables you to browse all modern websites even with low internet speed.
It uses headless Firefox internals to render all web-pages in a text-based format.
Browsh consists of a minimal Golang CLI client and a browser webextension. Most of the work is done by the webextension. When the CLI starts, it looks for a compatible browser (currently only Firefox) and starts it in headless mode. Once the browser has started it opens a remote debugging connection and installs the extension.
How does it work?
The terminal client updates and renders in realtime so that, for instance, you can watch videos. It uses the UTF-8 half-block trick (▄) to get 2 colours from every character cell, thus simulating basic graphics.
As well as keyboard input it also understands mouse input, for those terminals that support it. So you can click links and even draw lines in sketch apps.
The browser client, somewhat confusingly, renders simple HTML or plain text that itself was parsed by Browsh running inside another browser. The point being that the HTML or text that Browsh outputs is extremely lightweight.
As of writing in 2018, the average website requires downloading around 3MB and making over 100 individual HTTP requests. Browsh will turn this into around 15kb and 2 HTTP requests - 1 for the HTML/text and the other for the favicon.
Features
- Super lightweight.
- Render videos, images and JavaScript and more.
- Render WebGL elements
- Run directly through with full SSH support
- Comes with HTML and Text modes.
Platforms
- Linux Static: x64 / 386 / ARMv6 / ARMv7 / ARM64
- Debian/Ubuntu: x64 / 386 / ARMv6 / ARMv7 / ARM64
- Redhat/Fedora: x64 / 386 / ARMv6 / ARMv7 / ARM64
- Arch AUR: ‘browsh-bin’. Eg;
yay -S browsh-bin
- FreeBSD: x64 / 386 / ARMv6 / ARMv7
- OpenBSD: x64 / 386 / ARMv6 / ARMv7
- Mac OSX:
brew tap browsh-org/homebrew-browsh
or tar.gz - Windows: .exe (requires Win 10 or newer) (experimental)
License
LGPL-2.1 license