Browse modern websites over a 3kbps tethered connection by running Browsh on a remote server and viewing text output via SSH.
Reduce battery drain and CPU load on a low-powered device by offloading rendering to a remote machine.
Access the full web from a terminal-only environment without losing JavaScript functionality.
Maintain stable browsing sessions over unreliable networks using MoSH protocol instead of SSH.
Requires Docker, Firefox binary, and Go build; multiple moving parts (browser backend + streaming frontend) need coordination.
Browsh is a text-based web browser that runs modern, JavaScript-heavy websites inside a terminal. Most text browsers like elinks cannot handle modern websites because they lack JavaScript support. Browsh solves this by running a real instance of headless Firefox behind the scenes, letting Firefox do all the heavy rendering work, and then converting the result into text characters that display in your terminal. The main reason to use it is very slow internet connections. If you have a 3kbps tethered connection, you can SSH into a server with a fast connection, run Browsh there, and the server does the heavy web downloading while your SSH session only transfers the lightweight text representation of the page. It also supports MoSH (a protocol that handles dropped connections and reconnections better than SSH) to make browsing even more stable on unreliable networks. A secondary use case is offloading browser CPU and battery drain from a low-powered device by running the browser on a remote server. You would use Browsh if you need to browse the full modern web over a very slow or unstable connection, or via a terminal-only environment. It is built with Go for the terminal interface and a JavaScript Firefox extension, runs on Linux and macOS, can be launched via Docker, and is licensed under GNU Lesser General Public License v2.1.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.