Browsh – A modern text based browser supports graphics and videos

We have written many articles related to text based browser in the past such as Links, Links2, ELinks, Lynx, w3m and Netrik.

Why we need a text-based browser in Linux? As you all already know most of the Linux servers are running without GUI. It helps Linux administrator to browse the website from CLI.

As we know, all these text-based browsers renders only web pages and supports color but browsh is advanced, well-established, feature-rich modern text based browser which supports graphics and video.

What is Browsh

Browsh is a advanced, well-established, feature-rich, modern and pure text based browser which supports graphics and video.

It supports HTML5, CSS3, JavaScript, video, photos and WebGL content. The terminal client updates and renders in realtime that allow us to watch videos (It uses the UTF-8 half-block trick (▄) to get 2 colours from every character cell, thus simulating basic graphics) from browsh.

As per my understanding it’s not a browser since it’s not working independently to renders web pages. But It’s kind of CLI front end tool, which allows user to browse a web pages.

Suggested Read : Best Text based (Command Line) Web Browsers for Linux

How it Works?

It uses headless Firefox to render the web pages so, make sure you should have a recent version of Firefox (Min v57 or later) installed on your system.

It was written in Golang CLI client and a browser web extension and most of the work will be done by the web extension. When the CLI starts, it looks for a compatible browser (currently Firefox only) and starts it in headless mode.

Whenever you request a web page via Browsh, it load a web page into headless Firefox and custom scripts are injected into the Firefox page to convert the page for Browsh.

Once the above process is completed then converted web pages will be loaded in Browsh (There are lot of background process are running with help of webextension & websocket to convert the page).

Also, it will reduce bandwidth usage and improve browsing speeds.

How to install Browsh in Linux

Developer is offering .rpm, .dep and static binaries which allow us to install and run Browsh in Linux without any issues.

For RPM based systems such as RHEL, CentOS, Fedora and Zypper

# curl -o browsh.rpm -L
# rpm -Uvh ./browsh.rpm
# rm ./browsh.rpm
# browsh

For Deb based systems such as Debian and Ubuntu

# wget
# apt install ./browsh_1.4.12_linux_amd64.deb
# rm ./browsh_1.4.12_linux_amd64.deb
# browsh

AUR package is available for Arch Linux based distributions. So, you can use any AUR helpers to install it.

Suggested Read :
(#) Yaourt – Arch User Repository (AUR) Helper For Arch Linux
(#) Packer – Arch User Repository (AUR+Pacman) Helper For Arch Linux

$ yaourt -S browsh-bin

For other distributions.

# wget
# chmod +x browsh_1.4.12_linux_amd64
# ./browsh_1.4.12_linux_amd64

How to launch and use Browsh

Once you have installed the Browsh, just fire the browsh command alone to launch.


There is no point to use the Browsh browser without knowing the Keybindings so, let me show you the important keybindings.

  • F1 Opens the documentation
  • ARROW KEYS, PGUP, PGDN Scrolling
  • CTRL+q Exit app
  • CTRL+l Focus the URL bar
  • BACKSPACE Go back in history
  • CTRL+r Reload page
  • CTRL+t New tab
  • CTRL+w Close tab
  • CTRL+\ Cycle to next tab
  • ALT+SHIFT+p Takes a screenshot. The status bar will display the saved path

To open a new tab simple hit CTRL+t and input the url which you want to browse. Here, we are going to open 2daygeek website.

We had opened 2daygeek website.

If you would like to open any links, just click left mouse button to achieve it. page output.

We can watch video as well.

About Prakash Subramanian

Prakash Subramanian is a Linux lover and has 3.5+ years of experience in linux server administration with major Linux distribution such as (RHEL, CentOS, Ubuntu). He is currently working as a Senior L2 Linux Server administrator.

View all posts by Prakash Subramanian

Leave a Reply

Your email address will not be published. Required fields are marked *