termbrowser
Home › About

About termbrowser

termbrowser exists because a terminal is a good place to read the web, but it is usually a bad place to drive one. The project adds the small set of controls people expect from a browser without pretending that a terminal should render a modern web application.

Why it exists

Text browsers are remarkably capable. lynx, w3m and elinks can open most of the web that matters for reading, and they do it in a few megabytes. Their interfaces, however, grew up in a different era: navigation is a set of commands, bookmarks live in a menu, and the address of the page is not always where a newcomer looks for it.

termbrowser was written to close that specific gap. It keeps lynx as the rendering engine and puts a normal browser’s outer shell around it: an address bar on the top line, a toolbar of common actions, session history, persistent bookmarks and a numbered link list. The result is small enough to audit and familiar enough to hand to someone who has never used a text browser.

How it is built

  • Language: Python 3.6+, one file of about 20 KB.
  • Interface: the standard curses module, with colour pairs and optional mouse events.
  • Rendering: lynx is called as an external process with lynx -dump; its text output is displayed in the page area.
  • Storage: bookmarks are a plain JSON array in ~/.termbrowser_bookmarks.json; the start page is generated into the user cache directory.
  • Dependencies: Python and lynx. No third-party Python packages, no build step, no service.

This design is deliberate. A rendering engine is a decades-long project; a good interface around an existing one is something a single author can maintain and a single reader can understand.

Author and maintenance

termbrowser is written and maintained by Eelke Greven. Bug reports, patches and questions are welcome by email at computerproblematiek@gmail.com. The current release is version 0.1, published on 2026-10-20.

License

termbrowser is released under the MIT license. You may use, copy, modify and redistribute it, including commercially, provided the copyright notice and permission notice are kept. lynx is a separate program under the GNU GPL version 2; it is not included in the termbrowser download and is installed by your package manager.

Privacy

This website has no accounts, no comment forms and no cookies for tracking. Aggregate traffic statistics are collected with self-hosted Umami at analytics.dunno.my; the script records page views and referrers without profiling individuals across sites. Server logs exist for security and are retained for a limited period.

Advertising on this site is house advertising for related projects in the same network (coom.im and DUNNO). There is no third-party ad network, no behavioural targeting and no data sale.

The termbrowser program itself contains no telemetry and makes no network requests other than the pages you ask it to open.

Editorial note

This page and the rest of the site are written in English for an international audience. The documentation is checked against the released source. If you find an error, email the address above and it will be corrected; the date below records the last review.

Last reviewed: 2026-10-20.