explaingit

browsh-org/browsh

Analysis updated 2026-06-21

18,791JavaScriptAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

Browsh is a terminal web browser that runs modern JavaScript-heavy websites by using headless Firefox under the hood, converting the rendered output to text so you can browse the full web over a very slow or unstable connection.

Mindmap

mindmap
  root((browsh))
    What it does
      Terminal browser
      Full JS support
      Remote rendering
    Tech Stack
      Go
      JavaScript
      Firefox
      Docker
    Use Cases
      Slow connection browsing
      Remote server browsing
      Battery saving
    Audience
      Developers
      Sysadmins
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Browse modern JavaScript-heavy websites over a slow 3G or satellite connection by SSHing into a faster remote server and running Browsh there.

USE CASE 2

Run a full web browser in a terminal-only server environment where no graphical display is available.

USE CASE 3

Reduce battery and CPU load on a weak laptop by offloading all browser rendering to a more powerful remote machine.

What is it built with?

GoJavaScriptFirefoxDocker

How does it compare?

browsh-org/browshhellozeronet/zeronetvuejs/vue-router
Stars18,79118,74818,905
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderatehardeasy
Complexity3/54/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Firefox installed on the machine running Browsh, or use the Docker image, the remote browsing use case also needs an SSH or MoSH connection.

Free to use and modify, if you distribute modifications to Browsh itself you must share those changes under LGPL-2.1, but you may link it into proprietary software.

In plain English

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.

Copy-paste prompts

Prompt 1
How do I set up Browsh on a remote Linux server using Docker so I can browse the modern web through a slow SSH connection from my laptop?
Prompt 2
I want to use Browsh with MoSH for more stable browsing on an unreliable mobile connection. Walk me through installing both and connecting.
Prompt 3
Using Browsh in the terminal, how do I navigate to a URL, follow links, scroll down a page, and go back?
Prompt 4
Help me set up Browsh on a Raspberry Pi so I can use it as a lightweight remote browser accessible over SSH.

Frequently asked questions

What is browsh?

Browsh is a terminal web browser that runs modern JavaScript-heavy websites by using headless Firefox under the hood, converting the rendered output to text so you can browse the full web over a very slow or unstable connection.

What language is browsh written in?

Mainly JavaScript. The stack also includes Go, JavaScript, Firefox.

What license does browsh use?

Free to use and modify, if you distribute modifications to Browsh itself you must share those changes under LGPL-2.1, but you may link it into proprietary software.

How hard is browsh to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is browsh for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub browsh-org on gitmyhub

Verify against the repo before relying on details.