Remix.run Logo
Text-Based Web Browsers(cssence.com)
102 points by pabs3 6 hours ago | 42 comments
xelxebar 4 hours ago | parent | next [-]

One of my favorite pieces of software is edbrowse[0]. Perhaps surprisingly, I find it quite useful:

  - Main developer is blind, so accessibility has priority;
  - Easily scriptable; think automating captive portal clickthroughs;
  - Reading articles (e.g. Wikipedia) feels closer to reading a book;
  - It even supports JavaScript to a degree!
  - The affordances of line-oriented editing carry over nicely.
In particular, when using line-oriented interfaces, it's quite natural to build up a small collection of context-dependent snippets from documentation, source code, sample code, whatever. Putting a small collage of these on the screen is effortless and an experience I do miss with other UI paradigms.

The main developer appears to tinker on the project daily and is quite nice to chat with over on libera's #edbrowse. The project does have a small, dedicated following, but I wish more people knew about it!

[0]:https://github.com/edbrowse/edbrowse

ploum 3 hours ago | parent | next [-]

edbrowse is awesome. I fear that most people, like OP in this case, don’t really understand the difference between "TUI" (where a terminal is used to display a GUI) and "CLI", where every interaction is a written command resulting in a output.

I’ve a perfect sight myself but I really like the comfort of linearity with CLI: I ask my computer something, I receive an answer.

(that’s probably why I’m developping my own CLI browser but is more graphical and less advanced than edbrowse)

anthk 4 hours ago | parent | prev [-]

I used to use that to fetch odd Japanese translated ROMs from CD Romance. Inb4 some Copyright holder says "buy them legally"... these games won't be released in the West ever.

In Europe most people played Earthbound (and USA only releases for SNES/MD) under emulators. That's how Nintendo put it in the Super Smash Bros roster. They say the hate emulation; but these tools cemented themselves into retroemulation like no other system, and helped to bring new sagas to the West. For free. You say you lost money because of retro-piracy? You got free marketing for physical scraps technically resting in a warehouse.

Altough nowadays I'm 100% pro libre gaming; tons of indie/FOSS philosophy overlap: FreedroidRPG, Battle for Wesnoth, Nethack/Slashem, ReTux, SuperTux2...

Back to edbrowse, it's a mail, irc and SQL client too; and you can script it, a la ed/vi, so you can do magic here.

dieggsy 4 hours ago | parent | prev | next [-]

The top comment in the article mentions it, but chawan[1] is really quite neat. Many sites are still have their quirks (or may be broken), but I think it's the closest I've seen a text browser approximate a "real" browser. The support for CSS, JS, and images (depends on your terminal) is already quite impressive even if imperfect. To my knowledge it's an actual browser implementation rather than "cheating" by using an existing browser like browsh (which is still quite cool).

[1] https://chawan.net/

mariusor an hour ago | parent | next [-]

Yep, that's me. :) It's cool when blogs incorporate ActivityPub comments to them.

I liked chawan from the first time it was shown here on HN, https://news.ycombinator.com/item?id=44293260. It made me add support for CSS Grid API in my sites targeting text browsers.

balazs4 3 hours ago | parent | prev [-]

This!

`chawan` is really good. I use it very often, and it looks very promising.

If you are into „browsing the web in terminal“, you should try it.

mrweasel 2 hours ago | parent | prev | next [-]

For many, if not most, of the sites I regularly visit, text based browsers work surprisingly fine. My main complaint is actually the structure of the html. In many cases sites could improve massively, if they moved navigation to below the actual content. Having a large vertical menu taking up the entire screen as the first thing you see is slightly annoying.

demetris an hour ago | parent | next [-]

I did that that recently for a couple of personal projects and I like it. I think I will start doing it for client sites too.

https://omnicarousel.dev

The main navigation menu is just above the site footer in the HTML document.

Question for people who know that stuff:

What is the recommended way of hiding features that require JavaScript on browsers that do not support JavaScript, e.g., on w3m?

Sn0wCoder 19 minutes ago | parent | next [-]

"What is the recommended way of hiding features that require JavaScript on browsers that do not support JavaScript, e.g., on w3m?"

You can try the <noscript> tag.

miki123211 39 minutes ago | parent | prev [-]

> The main navigation menu is just above the site footer in the HTML document.

Just letting you know, that stuff is a bit confusing to screen reader users.

Though I really wish we standardized on putting content first, like mobile apps do. At least we woulnd't haave to explain to new screen reader users why getting to the f???ing article is so damn hard if you don't know the right incantations to do it quickly.

demetris 27 minutes ago | parent [-]

Thank you!

Would a Jump to navigation link next to Skip to content make this arrangement better for screen reader users?

mariusor an hour ago | parent | prev [-]

I mentioned it in another comment, but @media: grid[1] support can help distinguish the user agents that are text-mode.

[1] https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/A...

yashasolutions 24 minutes ago | parent | prev | next [-]

Interesting find mentioned in the comments - https://chawan.net/

tvali an hour ago | parent | prev | next [-]

They could be used in bloody fast AI crawling and browse, for example dynamic webbased finetuning which involves non-static content: I think GET requests are safe in this matter.

PeterStuer 3 hours ago | parent | prev | next [-]

How does Cloudflare handle text-based browsers? Do they immediately flag them as bots?

noduerme 3 hours ago | parent | prev | next [-]

Sadly and disgustingly, I fired up lynx last night and found out that Google will not allow you to search with it anymore. I guess this change happened a few months ago and there was an HN thread about it[0], but I hadn't noticed until now.

Going to altavista still works great (even though it just redirects you to yahoo ;)

[0] https://news.ycombinator.com/item?id=45201692

michaelanckaert 2 hours ago | parent [-]

I often use DuckDuckGo in HTML mode (https://html.duckduckgo.com/html/) when I'm using EWW in Emacs.

prmoustache 3 hours ago | parent | prev | next [-]

Most of the features mentionned in this blog post seem really anti-user to me:

Popover seems to be a way to do popup that you can't really block. Also having content you want to hide?

swiftcoder a minute ago | parent | next [-]

> Most of the features mentionned in this blog post seem really anti-user to me: Popover seems to be a way to do popup that you can't really block

I don't see how - popovers are arguably worse for ads (because easier for the ad blocker to find them, versus random divs flowed into the page), and modal dialogs are a pretty common thing in rich web apps.

bjourne an hour ago | parent | prev [-]

Cookie pop-ups are mandatory so you need something.

rickcarlino 5 hours ago | parent | prev | next [-]

> Text-based browsers and modern HTML, no success story in sight. Given the progress we see in web technologies, the gap will only widen, so much so that w3m and its friends might fall into oblivion.

This is a fun article and the conclusion is very real.

People shit on Gemini:// because “The web can support text documents”. They say this as if they are actually proposing a real solution. It’s true that the web _can_ support lightweight content (IE5 on Windows 3.1- I was there man), but the problem is that it _won’t_ because it consistently chooses not to. If you’ve ever tried to actually perform this experiment of running the web in text mode you will quickly realize how futile it truly is. Every step you take on a well meaning site like lite.cnn.com is just one click away from transferring you to a bloated SPA app that renders a blank screen on a text-based browser. You can disable JavaScript, or disable images or whatever hoops you want to jump through (increasingly hidden with every FireFox release that goes by) but that’s not going to actually work long term. The web is too extensible and feature hungry to support text based content. It’s better to just use the web for the usual cool shit like WASM and WebRTC or whatever and admit that no one can help themselves and no amount of awareness is going to make the cookie consent banners go away.

Let’s take Gemini more seriously because it already has adoption and it works and it’s not perfect but it sure as fuck isn’t substack.

ploum 3 hours ago | parent | next [-]

I’m such a Gemini fan that I’m developing a browser which try to extract content from webpages to turn them into Gemini pages ;-)

And it works Offline too by caching every request: https://offpunk.net

anthk an hour ago | parent [-]

Add a limit on catching (requests per second); if not, tons of Gopher servers will kick me out fast by syncing most phlogs in batch mode :)

Also, there's no way to reuse w3mimgdisplay in the same way w3m works for the web?

Finally, I can't find a way to display images with 256 colours by default even if the TERM variable it's set to xterm-256color .

And, no, I can't use sixels by default under OpenBSD's xterm. Sixel and maybe tektroniks support are disabled at build time.

EDIT: a good start for w3mimgdisplay:

https://web.archive.org/web/20210920101125/http://blog.z3bra...

qznc an hour ago | parent | prev | next [-]

I really like reading text with variable-width fonts. Gemini requires fixed-width fonts due to its terminal-based approach. Thus, I have no desire to use it ever.

SuperNinKenDo 39 minutes ago | parent [-]

I've only dabbled in Gemini so I don't know their names off the top of my head, but I tried out a number of GUI Gemini browsers in the past, and they're quite nice. Easy on the eyes, simple design, all the variable width fonts you could ask for if that's your bag.

rglullis 3 hours ago | parent | prev | next [-]

What's the difference between "let's encourage people to create gemini documents" and "let's encourage people to publish text/markdown documents on the www"?

wibbily an hour ago | parent | next [-]

The dream of course would be both: if you’re already writing textual content you might as well publish it on both protocols, so anyone can get to it with any tool they like. Gemtext can be trivially converted up to Markdown, the opposite is lossy but very doable.

ploum 3 hours ago | parent | prev [-]

That’s subtle but the Gemtext format is really really constrained, which forces people to do one thing: write text. Nothing else.

So, when you are on Gemini://, you know that you will only encounter linear text. You will read stuff, written by other people. It is really relaxing. I’m a huge fan of Gemini.

I would advice to start your Gemini journey by reading links on Antenna and Cosmos (which are link aggregators)

https://offpunk.net/gemini.html

rglullis an hour ago | parent [-]

> I’m a huge fan of Gemini.

I'm not. I get the whole "the medium is the message" and why it feels appealing to some, but I don't subscribe to the idea that the only way to have proper digital hygiene is by restraining myself to this ascetic channel. I'd rather encourage more people to put content on the web in whatever form they think is best, and I'll let it up to my user agent to filter out the noise.

harendra007 4 hours ago | parent | prev | next [-]

Quick question on gemini://, I have no idea what gemini:// is but I typed gemini:// on my mac and it prompted to open my iterm shell. Is this a normal behavior, I am using chrome browser.

filmor 4 hours ago | parent | next [-]

https://en.wikipedia.org/wiki/Gemini_(protocol)

It is a simpler web and requires a separate browser or a plugin. It's difficult to find resources on it nowadays because of Google Gemini...

ks2048 4 hours ago | parent | prev [-]

There's a tool called lsregister on macOS to show claimed schemes for different apps. Mine shows for iTerm2,

    claimed schemes:            ftp:, gemini:, gopher:, http:, https:, iterm2:, mailto:, news:, nntp:, ssh:, telnet:, titan:, wais:, whois:, x-man-page:
ploum 3 hours ago | parent [-]

Probably because you could install Terminal Gemini clients like Amfora or Offpunk.

thunderbong 4 hours ago | parent | prev | next [-]

Totally valid points.

By the way, only on re-reading your comment, I realised you're taking about the Gemini protocol and not the AI engine!

esseph 4 hours ago | parent | prev [-]

Hmmm

I have no idea how this would work just brainstorming.

Could you.. use some browser backend to render the page to a PDF, then an LLM to scrape the content and display it as text?

I know it wouldn't be exactly efficient, but...

worksonmine 4 hours ago | parent [-]

A more pragmatic approach would be to run the content through something like readability[0] but leaves navigation untouched. The AI could hallucinate and add content that isn't in the original, something accessibility tools don't.

[0]: https://github.com/mozilla/readability

ploum 3 hours ago | parent [-]

This is exactly what Offpunk is doing: displaying the html page after it passed throught Readability.

https://offpunk.net

The whole page is still available with "view full" (or "v full")

In the current trunk, if configured, it uses ftr-site-config rules to extract content for specific websites ( https://github.com/fivefilters/ftr-site-config )

I do 90% of my browsing using Offpunk (reading blogs and articles) and, suprizingly, it often works better than a graphical browser (no ads, no popup, no paywall). Of course, it doesn’t work when you really needs JS.

anthk an hour ago | parent [-]

Dillo uses something similar with rdrview, you can use rdrview://$URL (altough I hacked the dpi plugin to use the rd:// 'protocol' for shortness).

It lacks the filter thingy but now has the dilloc tool where it can print the current URL, open a new page... and with sed you can trivially reopen a page with an alternative from https://farside.link

You know, medium.com -> scribe.rip and the like.

But Dillo is not a terminal browser, altough it's a really barebones one and thanks to DPI and dilloc it can be really powerful (gopher, gemini, ipfs, man, -info in the future) and so on available as simple plugins, either in sh, C or even Go) and inspiring for both offpunk and w3m (where it has similar capabilities as Dillo to print/mangle URL's and the like).

What I'd love is to integrate Apertium (or any translating service) with Dillo as a plugin so by just running trans://example.com you could get any page translated inline without running tons of Google propietary JS to achieve the same task.

I love the https://linux.org.ru forum and often they post interesting setups but I don't speak Russian.

charcircuit an hour ago | parent | prev | next [-]

>w3m and its friends might fall into oblivion.

w3m's marketshare has always been nonexistent. It already has been in oblivion. Having a GUI is key to making a good web browser that will be used by people.

rhdunn 36 minutes ago | parent [-]

Text-based browsers are useful in cases where you don't have access to a graphical display, for example:

1. your graphics driver isn't loading/working;

2. you can't log into the GUI due to a bug in the login screen;

3. you are working on a server that is headless, i.e. doesn't have a GUI installed, or are SSHing into a server/other machine.

I've experienced (2) a while ago and more recently there was another issue recently with upgrading breaking a system [1]. I also encountered the latter but was unable to keep the terminal open due to that bug (it kept switching back to the login screen), so I had to boot into a system via a USB stick, chroot into the system, then install the uninstalled desktop package.

[1] https://www.gamingonlinux.com/2025/04/ubuntu-25-04-upgrades-...

charcircuit 17 minutes ago | parent [-]

>your graphics driver isn't loading/working

This is a bigger problem that should be fixed ASAP. OS vendors should never critically break graphics on a OS like this.

>you can't log into the GUI due to a bug in the login screen;

Again, the QA department or automated tests of your OS vendor should not let this get released. If such a bug happened there should be a fix rolled out immediately.

>you are working on a server that is headless

Why do you need to run the browser on the server? I can't think of a case where you would want to use a text browser there instead of a regular browser on your actual machine.

>so I had to boot into a system via a USB stick, chroot into the system, then install the uninstalled desktop package.

It's disappointing that you had to manually fix it compared to it just downloading a fix automatically like what would happen on Windows, Mac, iOS, Android, etc.

RockieYang 2 hours ago | parent | prev [-]

Niche idea. It could filter out a lot of noise