What is Browsh?

Updated

Browsh is a fully interactive, real-time text-based browser that renders to a TTY (terminal). It renders anything a modern browser can — HTML5, CSS3, JavaScript, video, and even WebGL — but outputs it as text and block characters in your terminal. Its main purpose is to run on a remote server and be accessed via SSH/Mosh or the in-browser HTML service, significantly reducing bandwidth so browsing is faster and cheaper. The only dependency is a recent Firefox (version 57+), and it ships as a single static binary on all major platforms.

How it works

Browsh doesn't reimplement a browser engine. Instead, it drives a real Firefox instance in the background, takes the rendered output, and converts it into text and colored blocks that fit a terminal grid. That's why it can handle modern web content — JavaScript-heavy pages, video, and WebGL — that a traditional text browser like Lynx or w3m cannot.

The trade-off is that the rendering is a visual approximation in text, not a semantic text extraction. You get the layout, but as characters.

Core use case: low-bandwidth remote browsing

The primary reason Browsh exists is bandwidth. Because only text and block characters travel over the wire — not images, fonts, or full page assets — the data transferred is dramatically smaller than a normal browser session. This matters when:

  • You're on a slow or metered connection.
  • You're paying for bandwidth on a server or mobile plan.
  • You want to browse from a remote machine over SSH.

The intended setup is to install Browsh on your own server and connect with Mosh rather than plain SSH. The project notes that SSH is actually a very inefficient protocol for this, so Mosh gives noticeably better results.

Ways to access it

Method What it is Notes
Local binary Single static binary on major platforms Needs Firefox 57+ installed
Docker docker run -it browsh/browsh Containerized, no local install
SSH demo ssh brow.sh Demonstration only; sessions last 5 minutes and are logged; no auth needed
html.brow.sh In-browser HTML service Basic graphics and HTML anchor tags; not yet feature-parity with the terminal client
text.brow.sh Pure text service Better for tools like curl

The SSH demo and in-browser services are marked temporarily offline in the current site content, so treat them as demonstrations rather than production access. For real use, install Browsh on your own server.

Getting started

  1. Install Firefox 57 or newer — this is the only dependency.
  2. Download the Browsh binary for your platform (current version listed as v1.8.0), or pull the Docker image.
  3. Run it — either locally, or on a remote server you connect to over SSH/Mosh.
  4. For best performance, pair a server-side install with Mosh instead of plain SSH.

If you just want to try it without installing anything, the ssh brow.sh demo is the quickest path — but remember it's time-limited and logged, and it may be offline.

What to keep in mind

  • It's not a lightweight text browser. It runs a full Firefox underneath, so the resource cost is on the server side; the savings are in network bandwidth.
  • Feature parity varies by access method. The terminal client is the most complete; html.brow.sh and text.brow.sh are more limited.
  • Maintenance is by one person. The project is currently maintained and funded by a single individual, and donations are how it stays alive — worth knowing if you're considering it for anything long-term.