Terminal-based browsers are something of a niche interest—even among seasoned Linux users, and most mainstream distros will come with either Firefox or Falkon pre-installed. But there are good reasons why you might want to experience the internet via a browser in your terminal.

Here are some of the best terminal-based web browsers out there.

Why Use a Terminal-Based Web Browser?

The idea of a web browser for your Linux terminal seems like nonsense. After all, the first web browsers were GUI based, and the modern internet is designed around graphics and JavaScript—elements that terminal-based browsers find difficult or even impossible to deal with. But it's this very incompatibility with the modern web which makes them so attractive to some users.

For instance, at the time of writing, The New York Times homepage weighs in at a staggering 24.8MB. That's a lot: it would take 35 old skool floppy discs to store a single copy of the NYT homepage. You can fit fewer than a single month's worth of the NYT homepage on a CD.

If you like reading the news every day, and visit using a regular browser, this can quickly add up, and bandwidth isn't cheap. If you use a terminal-based browser, you load the HTML, but not the images, the videos, or the adverts, saving hundreds of MB over the course of a day.

JavaScript doesn't execute in a terminal browser either, meaning that soft paywalls, such as the one on NYT, don't trigger. You can read as many articles as you want without interruptions.

Images, autoplaying videos, and sound effects are also distracting. By using a text-based browser in your terminal, you can just read.

As the graphical browser world has multiple alternatives such as Firefox, Falkon, Chrome, and surf, so does the universe of terminal browsers. These are some of the best:

1. Lynx

Lynx is the oldest web browser that is still maintained, and it was first released for Unix-like systems in 1992—less than a year after the web was made available to the general public.

The package is available in the default repositories of most distros, and there are also versions available for DOS, Windows, macOS, Amiga, and more.

It's easy to use Lynx, just open a terminal and type:

        lynx
    

To enter a web address, hit g then input the address, and press Enter.

Alternatively, to launch a web page directly from the command line you can add the name of the site directly to the command before launch.

For instance, if you enter:

        lynx bbc
    

...Lynx will open and attempt to connect to bbc, before intelligently trying bbc.com.

Navigation is keyboard driven: Up and Down arrow keys to move to a link. Then Right to follow a link and Left to go back.

lynx terminal browser showing a MUO article

Lynx allows the use of cookies, and when a site attempts to use them, Lynx gives you the choice of yes, no, always, and never. It will also specify if the cookies are direct or third-party. Because of the privacy implications of cookies, Lynx supports cookie cache purging, as well as whitelisting and blacklisting.

Although Lynx is simple to install and use, it has hundreds of configuration options, relating to everything from the way it handles cookies, to specifying a text file from which to run commands in sequence. You can get command-line help for Lynx with:

        man lynx
    

2. w3m

w3m in xterm showing an image of Elon Musk on BBC

w3m (pronounced W-three-M) is a text-based browser, similar to Lynx but with a few major differences. While some terminal browsers strip back the web to its bare bones, w3m allows a few graphical niceties into your terminal. It can render tables in your terminal, and even frames (by converting them into tables first).

w3m can even display images—although the most common terminals such as the GNOME terminal can't display them. If you want images on the webpage in w3m, you'll need a terminal like xterm.

Like Lynx, w3m is available in most default repositories. To install it on Ubuntu and other Debian-based distributions, enter:

        sudo apt install w3m w3m-img
    

As w3m is technically a pager, it can read documents from standard input, and will also quit if invoked without arguments. Entering:

        w3m
    

...will result in the app immediately closing, while:

        w3m makeuseof.com
    

...will take you to the homepage of this very site! You won't see images, though. w3m doesn't work well with lazy loading.

Navigation is, again, keyboard-driven, and to select a link, hit Enter. The app also boasts a context menu which you can activate by clicking the right mouse button.

elinks showing a BBC story

ELinks is a well-established, feature-rich text mode web browser, with support for both HTTP and FTP. It's easy to use, straight out of the box, and is, to our eyes, nicer to look at than either w3m or Lynx.

ELinks is available in the standard repositories, and also has binaries available from the project download page, along with instructions for how to compile from the source.

Start up ELinks, and you'll instantly see a prompt to enter the URL you want to visit. And when you get there, you'll be surprised that it makes a good go of rendering CSS and JavaScript. How successful this will be, depends on what site you're trying to view.

Hitting F10 on your keyboard will give you a menu bar where you can toggle images, save URLs, check your history, and more. Each entry in the menu system is accompanied by the appropriate keyboard shortcut, so while you may need to open a menu a few times at first, you'll quickly get the hang of navigating competently using the key bindings.

There's a Terminal-Based Browser for Everyone!

Browsing the web in your terminal is a completely different experience from using a GUI browser, and whichever package you choose will take some getting used to. For a pure, and distraction-free experience which will work in any terminal, Lynx is the one to choose, while if you really think that you need JavaScript and CSS, ELinks is probably what you're looking for.

Remember that to see the full benefits of either ELinks or w3m, your default system terminal won't cut it —use xterm instead.

Exploring the Web Like It's 1993

Terminal-based web browsers let you browse the web on exceptionally low bandwidth and low-spec machines, as well as blocking distractions and giving you greater control over privacy.

Another technology that was around at the time Lynx came onto the scene is the Gopher network, later superseded by the Gemini protocol. This is enjoying a resurgence in popularity among niche tech enthusiasts.