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


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.

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
wget https://github.com/browsh-org/browsh/releases/download/v1.8.0/browsh_1.8.0_linux_amd64.debsudo apt install ./browsh_1.8.0_linux_amd64.debrm ./browsh_1.8.0_linux_amd64.debbrowsh
Arch
paru -S browsh-bin
Redhat/Fedora
curl -o browsh.rpm -L https://github.com/browsh-org/browsh/releases/download/v1.8.0/browsh_1.8.0_linux_amd64.rpmrpm -Uvh ./browsh.rpmrm ./browsh.rpmbrowsh
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:
brew tap browsh-org/homebrew-browshbrew install browshbrowsh
Once the installation is complete, the program is ready to use directly from the terminal.
Docker Container
docker run -it browsh/browsh
Basic Launch
After installation, simply type:
browsh
The program will automatically launch Firefox in headless mode and open the browser’s terminal interface.
Keyboard Shortcuts
F1
– documentationArrow Keys
/ PgUp
/ PgDn
– scrollCTRL
+ Q
– quit the applicationCTRL
+ L
– focus on the URL barBACKSPACE
– go back in historyCTRL
+ R
– reload the pageCTRL
+ T
– open a new tabCTRL
+ W
– close the active tabCTRL
+ \
– 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