Browsh Browser – minimalism, performance, and ASCII magic, all in the terminal.

Updated on October 20, 2025 • 8 min read
Dominik Szaradowski
Dominik Szaradowski
Software Developer
Screenshot of Browsh browser’s homepage, showcasing the logo, a brief feature description, and two sample views of the text-based browser interface rendering modern websites.

In a world where web browsers can devour gigabytes of RAM and bury us under dozens of tabs, there’s a tool that offers a completely different approach to surfing the web — Browsh.
It’s a modern browser that runs… in the terminal.

At first glance, it may seem like a joke or an experiment for retro-computing enthusiasts, but Browsh has very practical uses. It allows you to browse contemporary websites — with full support for HTML5, CSS, and JavaScript — without the need for a graphical interface. This makes it usable on servers without a GUI, over SSH connections, and even in situations where the internet connection is particularly weak.

This tool creates a sort of bridge between classic terminal browsers (like Lynx or w3m) and modern Firefox. For system administrators, developers, or users who value minimalism and efficiency, Browsh can be more than just a curiosity — it can become a real way to access the web from anywhere.

How does Browsh work?

Browsh is not a traditional terminal browser that interprets HTML on its own. Instead, it uses the Firefox engine running in headless mode — that is, without a graphical interface. Firefox handles the full rendering of the page — loading content, interpreting JavaScript, applying CSS styles, and managing dynamic elements.

Once Firefox renders the page, Browsh converts its appearance into an ANSI or Unicode character stream that can be displayed in the terminal. In practice, this means that everything you see in the console — text, images, colors, and even animations — is an intelligently encoded representation of the real webpage. Although it looks like graphics made from text “pixels,” it’s actually a true browser render.

Remote operation, server mode, and full compatibility

Browsh can be run locally or as a remote server. In server mode, it acts as an intermediary — rendering pages on the server and then sending the output to the user’s terminal via SSH or WebSocket. This makes it possible to browse the web from anywhere, even with very limited hardware or a slow internet connection.

Unlike older text-based browsers like Lynx or w3m, Browsh can correctly display pages using HTML5, CSS3, JavaScript, and WebSockets. It also supports multimedia, including video, albeit in a simplified form. This allows you to open even complex web applications while retaining their core functionality.

Use cases

Browsh is especially useful for administrators and developers working on remote servers without a graphical interface. In such environments, running a standard browser is impossible, whereas Browsh allows browsing websites directly in the terminal. This makes it easy to quickly check application behavior, test logins, or analyze frontend errors — all within a single SSH session, without additional tools.

Frontend debugging and testing

Since a full-fledged Firefox runs in headless mode in the background, Browsh supports HTML5, CSS3, JavaScript, and WebSockets. This makes it suitable not only for browsing but also for testing. Developers can run applications in a production environment and see how they render directly on the server — without the need to send screenshots or log in from a local machine.

Minimalism and focus

One of Browsh’s greatest advantages is its data efficiency. Unlike traditional browsers that render images and graphical resources on the client side, Browsh only transmits the encoded character stream that the terminal can interpret. As a result, even on very slow connections, you can open modern websites, check documentation, or access an admin panel without issues.

For many users, Browsh is not just a practical tool but also a way to use the web more focused. The absence of ads, pop-ups, and notifications allows you to concentrate solely on content. It’s an experience reminiscent of the early internet — simpler, calmer, and far less distracting.

Screenshot of Dominik Szaradowski’s portfolio contact page, featuring a laptop illustration in pixel art style on a dark background, along with a brief description of programming experience.
My homepage in Browsh

Installing and Running Browsh

Before installing Browsh, it’s important to know that the application does not run on its own — it requires Firefox version 57 or newer. Firefox is responsible for rendering pages in the background. On most systems, Firefox is available in the repositories, so you just need to install it before running Browsh.

Installation on Linux

On most Linux distributions, Browsh can be found in the official repositories. Simply run one of the following commands:

Debian/Ubuntu

Terminal window
wget https://github.com/browsh-org/browsh/releases/download/v1.8.0/browsh_1.8.0_linux_amd64.deb
sudo apt install ./browsh_1.8.0_linux_amd64.deb
rm ./browsh_1.8.0_linux_amd64.deb
browsh

Arch

Terminal window
paru -S browsh-bin

Redhat/Fedora

Terminal window
curl -o browsh.rpm -L https://github.com/browsh-org/browsh/releases/download/v1.8.0/browsh_1.8.0_linux_amd64.rpm
rpm -Uvh ./browsh.rpm
rm ./browsh.rpm
browsh

If it’s not available in the repositories, you can download the precompiled binary from the official project website:
👉 https://www.brow.sh/downloads

Installation on macOS

On macOS, the easiest way is to use Homebrew:

Terminal window
brew tap browsh-org/homebrew-browsh
brew install browsh
browsh

Once the installation is complete, the program is ready to use directly from the terminal.

Docker Container

Terminal window
docker run -it browsh/browsh

Basic Launch

After installation, simply type:

Terminal window
browsh

The program will automatically launch Firefox in headless mode and open the browser’s terminal interface.

Keyboard Shortcuts

F1 – documentation
Arrow Keys / PgUp / PgDn – scroll
CTRL + Q – quit the application
CTRL + L – focus on the URL bar
BACKSPACE – go back in history
CTRL + R – reload the page
CTRL + T – open a new tab
CTRL + W – close the active tab
CTRL + \ – switch to the next tab

Remote Work via SSH and Server Mode

One of Browsh’s greatest advantages is the ability to run it on a remote server and browse the internet via SSH. Simply log in to the server, start Browsh, and the entire session is transmitted as a text stream to your terminal. This allows you to use the browser even from very lightweight SSH clients — for example, from a phone or an old laptop.

Browsh can also function as a network service, sharing rendered pages with other clients. It is started with the command:
Block Field
Once running, you can connect to the browser via the network address or the built-in web interface. By default, it operates on port 4333, so you should be able to navigate to localhost:4333 and start browsing.

Summary

Browsh is one of those tools that prove the terminal can do much more than it seems. It combines the simplicity of working in the console with the full capabilities of modern browsers. In this way, it acts as a bridge between the text-based and graphical worlds — an ideal solution for administrators, developers, and anyone who values minimalism and wants access to the web under any conditions.

Although its installation requires Firefox and it is not intended for everyday web browsing, Browsh has enormous potential for server, testing, and educational use. It demonstrates a creative way to leverage the terminal to run even complex websites — fully functional but without unnecessary frills.

In an era when every application aims to be more graphical and complex, Browsh is a reminder that the power of simplicity still matters. Sometimes, all you need for work is a black window, a few lines of code, and an idea ahead of its time.

I recommend checking the official project website:
👉 https://www.brow.sh