termbrowser
Home › Features

Features and advantages over lynx, w3m, elinks and Browsh

termbrowser is not trying to be a new rendering engine. It is the interface a terminal browser should have had: an address bar that stays visible, buttons you can press, history, bookmarks and a link list — around lynx’s proven text renderer.

The interface a terminal browser usually makes you build yourself

Terminal browsers are powerful, but most of them expose their power as commands and menus. You learn that g goes to a URL, that bookmarks live behind a certain key, and that the list of links is somewhere else again. That is fine for experts and tiring for everyone else.

termbrowser makes the common actions visible. The address bar occupies the top line at all times, the toolbar lists Back, Forward, Reload, Home, Links, Bookmarks and Quit, and the status line tells you which area has focus. Nothing essential is hidden behind a command you have to remember.

Address bar

The current URL is always on screen. Press Tab to focus it, type a new address and press Enter. A missing scheme is filled in as https://, so example.org works. Esc leaves the bar without navigating and Ctrl-U clears it.

Clickable toolbar

Every common action is one press away. Use Tab to reach the toolbar, the arrow keys to choose a button and Enter to activate it. Where the terminal reports mouse events, you can click the buttons and the address bar directly.

History, bookmarks and links

Back and Forward behave like a normal browser’s session history. Bookmarks are stored as plain JSON in ~/.termbrowser_bookmarks.json and survive restarts. The link list gives every link on the page a number, so opening the fourth reference is a two-key operation instead of a scroll-and-hunt exercise.

Advertisement

How termbrowser compares

The table compares the interface and the footprint, not the quality of the rendering engines. lynx, w3m and elinks are mature programs with their own strengths; termbrowser uses lynx for rendering and adds a familiar layer on top.

Featuretermbrowserlynxw3melinksBrowsh
Always-visible address barYesNoNoNoYes
Clickable toolbarYesNoNoMenu-drivenLimited
Persistent bookmarks with a UIYesYesYesYesYes
Numbered link listYesYesYesYesNo
Mouse supportWhere availableOptionalYesYesYes
Renders CSS, JavaScript and imagesNoNoNoNoYes
Install footprint~20 KB + lynxSmallSmallSmallFirefox required
Configuration neededNoneOptional rc fileOptional rc fileMenus and rc fileInstall + config
Readable source, one languagePython, one fileCCCGo + Firefox

Advantages in daily use

Against lynx: the same pages, better controls

termbrowser calls lynx -dump, so it inherits lynx’s parsing and its compatibility with text-first sites. What it adds is the part lynx leaves to you: a persistent address bar, a visible toolbar and a link picker that does not require memorising navigation commands. If you like how lynx renders but not how it makes you drive, this is the gap termbrowser fills.

Against w3m and elinks: zero configuration

w3m and elinks are full applications with their own configuration systems, menus and key maps. That is the right choice if you want to tune every detail. termbrowser deliberately has no configuration file: install it, run it, and the six actions you need are on screen. Bookmarks are a JSON file you can read in any editor.

Against Browsh and Carbonyl: tiny instead of heavy

Browsh and Carbonyl take a different route: they run a real browser engine and paint the result into a terminal. That is impressive, and it is the right tool when a page truly needs JavaScript. It also means downloading and running Firefox or Chromium-class software. termbrowser is a 20 KB Python script on top of lynx — the opposite trade. On a small VPS, an old laptop or a metered connection, the small option is often the only pleasant one.

Against all of them: you can read the whole program

termbrowser is one Python file under the MIT license. You can read it in a sitting, check what it does with your URL, change the toolbar, or vendor it into your own tools. There is no build system, no bundled runtime and no update service. That kind of auditability is rare in browser software.

Where termbrowser is the wrong tool

Be clear about the limits: termbrowser does not execute JavaScript, does not apply CSS and does not show images. A modern single-page application, a video site or a map will not work. If you need those, use a graphical browser or a terminal browser that embeds a real engine. termbrowser is for text-first reading, documentation, wikis, news, status pages and the long tail of the web that still works without a script.