To add a few cents, I just tested it and it seems mandatory nowadays to add --display_charset=utf-8 option if you are viewing non-english websites. Otherwise, lynx seems to be converting non-ascii chars into ascii. [1]
[1] https://stackoverflow.com/questions/51548306/lynx-utf-8-supp...
This how I used to read HN at work, nobody bats an eye at text in the terminal. I'm sure I could have gotten away with sipping my coffee in the morning with the orange website plastered all over my screen, but I felt like it was important to keep up appearances--call it productivity theater.
That's why I play dungeon crawl stone soup in the terminal. I'm defending myself against fire dragons and dodging iron shots, but it looks like I'm aggressively debugging something.
Only problem is having to type https:// in front of news.ycombinator.com because lynx assumes you’re trying to make an nntp connection to anything with a “news” subdomain.
I just tried that on mine and using `lynx news.ycombinator.com` went to the website fine. I don't see anything obvious in a quick scan of the manpage nor config that might affect that. Weird!
Lynx (in tmux) is still my default browser. I only go for Firefox if I really have to. Its darn FAST, has no remote code execution, and is typically all you need to read text on the web. Its also a good test if the web dev is full of shit :-)
I have not used Lynx interactively in ages, but when I want to save some pages of text from somewhere (typically an old web forum thread or blog) I often call lynx -dump (followed by gzip) from a script. It is an easy way to get nicely formatted text with all the HTML nonsense removed, and it also includes a list of all links from the page. Not exactly what a real archivist would do, but it works for hoarding text.
I did not know that it had that feature, and having just tried it out it does work really well.
Its output kind of reminds me of the gemini protocol and its markup format[0],
Chawan also renders CSS + images, but unlike the above two, it comes
with its own browser engine (from scratch). It also does JS with
QuickJS - if you're lucky :P (Lately I got Transmission's web UI to
load, quite happy about that.)
> It doesn't need a blocker for third-party scripting, service workers ... because the browser's technology simply doesn't recognise these page components
I'd never thought about it like that, but it's a nice side-effect. You don't have to worry about obtrusive JS, if your browser doesn't know what JS is. :D
It's worse than that[0] - Lynx statically renders the page at load time which means any "dynamic" updates just can't happen. I did have a bash at integrating the Mozilla JS engine but gave up after realising that anything more than just `document.write("flange")` handled at load time would need the entire inner engine rewriting and that was/is far beyond me[1].
[0] This is based off my memories of the Lynx source back in the Olden Times, ~1995-2000ish.
[1] But I did do the original cookie jar and colour styles (as seen in the screenshots) work (`lynx.lss` is all my fault, sorry)
IMO, a most useful thing is Lynx in DIRED mode. A great read-only directory browser - just enter a local url when you start it. For example, <lynx .> or <lynx /> .
I have to assume it's a chrome-specific comment, because I have not noticed anything different with it (or my browsing experience) on firefox (nor heard anyone else complain about differences).
TFA mentions FrogFind which I'd not previously known of.
That seems to be a wrapper on DuckDuckGo, though it's helpful to know that DDG has its own lite-mode interface which plays quite well with the terminal.
As noted in an earlier comment I invoke ddg search with a shell alias:
I use links in graphical mode (links -g) quite a bit. It's easy to turn image display on and off with the '*' key. Image sizes can be scaled with the menu and they take effect immediately. If one hovers over an image link and types "i", the image itself is displayed, and there's an option to scale the image to fit the window. Getting a new links window is easy (Alt-F n). One gripe is that hitting Ctrl-C will close the window (the 'Q' key does this already)
I use lynx as a second line of defense when some sites refuse to work with links, because lynx is sometimes able to display them (different user agent?). I also have been recently using lynx within xterm (disabling the alternate screen) for forums where posted URLs are not clickable (text only) in combination with xterm's dabbrev-expand() function to quickly copy such URLs in lynx's goto prompt. As an aside: in xterm's misc.c there's a a macro (IS_WORD_CONSTITUENT) that can be easily expanded to exclude characters that are not part of a URL, such as braces.
I do worry that more and more websites will simply show "Suspicious Activity Detected" for these browsers. As mentioned so many times on HN, text browser users are a minority and text browsers are obsolete. I did once send a message to a website owner and later saw that I could access the site, but didn't get an acknowledgement by email, so I can't be sure if it was in response to my request. There still are some websites that degrade gracefully, and, despite complaints by the server, allow text input windows and submit buttons to still work.
I always found links the most pleasant. A big factor was how often lynx asked about cookies, but now I know from the article I can set it to reject all I might revisit lynx. w3m seemed to set itself apart with the ability to show graphics which I didn't care about so never really gave it a chance.
I have my lynx set to accept all cookies (makes for far less bother) but somehow seem to have forgotten to tell lynx where to store them. Logout of the browser and "poof" they all disappear...
elinks / elinks2, both based AFAIU on links, offer graphics support. So the option's there for you without much change in muscle memory, should you want it.
- Vim-like keybindings. I've used lynx off and on for decades, but can never internalise its keybindings, and I'm constantly surprised (in a bad way) and frustrated.
- Support for table-based layout. This is less frequently encountered online these days, though some sites (HN and pg's own blog site) still use tables.
- Graphics support, should you want that.
- Extensive settings with a good management interface.
- Pretty darned good bookmarks management. My w3m bookmarks page is my default homepage for the browser, and gives ready access to a bunch of useful sites.
- Better default formatting settings, in particular concerning paragraph breaks and the like. Lynx to me is too crowded when rendering webpages.
- Most of what Lynx can do w3m does as well, in terms of basic functionality, piping input and output, etc.
I fairly regularly try out other terminal browser options (lynx, links, elinks, etc.) but w3m is my happy place.
Oh, and tabs, as TFA mentions. I find this useful, and the interface is pretty manageable, though I tend to avoid the extreme tab proliferation typical of my Firefox sessions (100s or 1,000s of tabs).
I use lynx to view HTML emails in Neomutt, but if I want to browse the web I use w3m as it doesn't whine at me about cookie storage multiple times for every site.
In the 1990's my university had a lot of dialup modem lines but only a small amount of them had PPP support. You would just get 1 terminal session.
So I would dial in and then browse the web through lynx. It worked fine and was quicker because it wouldn't waste time loading images.
I recently tried Usenet for the first time in 20 years. I installed slrn the text based newsreader I used in the 1990's. It has very useful color support. I wish Usenet was more active instead of 90% spam. Having threads go for years and being able to go to the next post by hitting "n" instead of clicking around is a lot quicker.
There was once a time, at least for some of us, where bandwidth was so limited and even localhost resources so scarce, as to make running Mosaic/Netscape difficult. Lynx saved the day many times for me. Over puny dialups, over satellite links, over connections hammered by early DDoS.
One secret superpower of terminal-mode browsers is to tie them to shell scripts or aliases to launch a quick query.
DuckDuckGo, online dictionaries or etymologies, wikipedia, weather, and news are among the quick look-ups I use. Being able to do all of that in shell / from terminal, have it in my shell history, and be able to pipe output or save to file are all wins in my book.
Firefox (with all the foundation's junk turned off) with noscript and ublock origin is a compromise that works for me. Lynx feels too impractical in today's world but it's fun to use every now and then. Just trying hn on it now it doesnt render it cleanly
I have bad memories associated with lynx due to an earlier tech job. We'd help clients install their network printers so that the applications running on the RHEL/Centos box could see them. We did not have RDP or VNC access, but we did have on-demand SSH access to their server. So we'd end up having to SSH into the box and doing something like `elinks http://localhost:631` to bring up the CUPS interface over the terminal, and fill out all of the forms in the browser, tabbing to jump between lines and whatnot. It was a massive PITA.
Not lynx's fault, of course. But memories are memories.
I have better memories of lynx from the 90s: without internet access at home over university breaks, I'd walk to the local community college library, which had available, internet connected computers that could only browse the library catalogue or open a terminal. From the terminal I could telnet to my home university's unix server and use lynx from there to browse the internet.
It seems like out of Lynx, Links, and w3m, Lynx is the only one still under active development with a recent-ish release. w3m seems to be completely dead.
Do you remember the time you could buy on amazon.com with lynx? (or links2).
And all the other dominant online services which broke noscript/basic (x)html to the benefit of the absurdely and grotesquely massive and complex (including their compiler) whatng web engines? This did shut the door definitely in the face of all citizen/state sponsored/small commercial alternatives which [could] have been super stable in time (including their SDK).
This is not "evolution" or "innovation", this is a scam and planned obsolescence at accute levels.
You could perfectly stream a video with a dash/HLS URL transfered to a media player (ads can be text on the web page and they can include some directly into the video stream).
To add a few cents, I just tested it and it seems mandatory nowadays to add --display_charset=utf-8 option if you are viewing non-english websites. Otherwise, lynx seems to be converting non-ascii chars into ascii. [1] [1] https://stackoverflow.com/questions/51548306/lynx-utf-8-supp...
This how I used to read HN at work, nobody bats an eye at text in the terminal. I'm sure I could have gotten away with sipping my coffee in the morning with the orange website plastered all over my screen, but I felt like it was important to keep up appearances--call it productivity theater.
That's why I play dungeon crawl stone soup in the terminal. I'm defending myself against fire dragons and dodging iron shots, but it looks like I'm aggressively debugging something.
I can't install anything on my work computer (for obvious reasons) but outbound ssh is not blocked. NetHack through SSH it is for me.
Only problem is having to type https:// in front of news.ycombinator.com because lynx assumes you’re trying to make an nntp connection to anything with a “news” subdomain.
Bad YC!
I just tried that on mine and using `lynx news.ycombinator.com` went to the website fine. I don't see anything obvious in a quick scan of the manpage nor config that might affect that. Weird!
Lynx (in tmux) is still my default browser. I only go for Firefox if I really have to. Its darn FAST, has no remote code execution, and is typically all you need to read text on the web. Its also a good test if the web dev is full of shit :-)
> . Its darn FAST, has no remote code execution
I mean, I’m sure it has its vulnerabilities, but nobody is actively looking for them.
I have not used Lynx interactively in ages, but when I want to save some pages of text from somewhere (typically an old web forum thread or blog) I often call lynx -dump (followed by gzip) from a script. It is an easy way to get nicely formatted text with all the HTML nonsense removed, and it also includes a list of all links from the page. Not exactly what a real archivist would do, but it works for hoarding text.
I use that with mutt to view html formatted email. here is the 30 second tutorial.
In .mailcap include the line
in .muttrc include the lineI did not know that it had that feature, and having just tried it out it does work really well. Its output kind of reminds me of the gemini protocol and its markup format[0],
[0]: https://geminiprotocol.net/
That is amazing, and just what I've been looking for to archive blogs and comments. Thanks so much!
that is very useful information -- does it work with sites that need logins?
It supports cookies, so generally yes. Anti-bot measures may block it, so you may need to get creative.
There are also options like Carbonyl[1] and Browsh[2] which do images and js in the terminal.
1: https://github.com/fathyb/carbonyl
2: https://github.com/browsh-org/browsh
Another option I'm working on: https://sr.ht/~bptato/chawan
Chawan also renders CSS + images, but unlike the above two, it comes with its own browser engine (from scratch). It also does JS with QuickJS - if you're lucky :P (Lately I got Transmission's web UI to load, quite happy about that.)
> It doesn't need a blocker for third-party scripting, service workers ... because the browser's technology simply doesn't recognise these page components
I'd never thought about it like that, but it's a nice side-effect. You don't have to worry about obtrusive JS, if your browser doesn't know what JS is. :D
> if your browser doesn't know what JS is
It's worse than that[0] - Lynx statically renders the page at load time which means any "dynamic" updates just can't happen. I did have a bash at integrating the Mozilla JS engine but gave up after realising that anything more than just `document.write("flange")` handled at load time would need the entire inner engine rewriting and that was/is far beyond me[1].
[0] This is based off my memories of the Lynx source back in the Olden Times, ~1995-2000ish.
[1] But I did do the original cookie jar and colour styles (as seen in the screenshots) work (`lynx.lss` is all my fault, sorry)
IMO, a most useful thing is Lynx in DIRED mode. A great read-only directory browser - just enter a local url when you start it. For example, <lynx .> or <lynx /> .
FYI, w3m also supports this.
In fact w3m was originally intended as a filesystem browser and file pager, with HTML functionality added to it. See: <https://w3m.sourceforge.net/>
From the article:
"You can say goodbye to uBlock Origin, which is now virtually useless with default settings anyway."
Are they referring to difficulties running uBO on chrome or ... that uBO is losing the arms race against advertising infra generally ?
I have to assume it's a chrome-specific comment, because I have not noticed anything different with it (or my browsing experience) on firefox (nor heard anyone else complain about differences).
Second that. I do see the difference at work where it's impossible to install Firefox and/or extensions; it's god awful to browse the web without it.
I even installed it on my parents laptop and they never complained that ads suddenly started appearing.
I use two of the mentioned browsers.
I have elinks as a default `tmux` pseudoterminal. I don't use it often, but it's always there.
My emacs setup uses w3m as the parser for HTML mail in VM, my email client. It works really well. <https://news.ycombinator.com/item?id=39793342>
TFA mentions FrogFind which I'd not previously known of.
That seems to be a wrapper on DuckDuckGo, though it's helpful to know that DDG has its own lite-mode interface which plays quite well with the terminal.
As noted in an earlier comment I invoke ddg search with a shell alias:
The lite page itself is <https://duckduckgo.com/lite>.Last I'd tried using Google via w3m I found it blocking me entirely, though TBF I've not even tried it in months if not years.
Related to lynx, (with images)
https://terminaltrove.com/w3m/
https://terminaltrove.com/links/
https://terminaltrove.com/reader/
https://terminaltrove.com/elinks/
We are so glad that these tools exist for the terminal, we even still use w3m and lynx from time to time.
https://terminaltrove.com/lynx/
If you do use the terminal for your browsing I recommend ddgr as it integrates with all of the above browsers, except reader.
https://terminaltrove.com/ddgr/
There's also "eww" that comes with Emacs.
IME it's usually good enough for reading docs and stuff like that.
"eww" is also my reaction to Emacs users (sent with vimium on firefox)
While the article mentions alternatives like links and w3m, I'd like to hear HN's opinion on links vs w3m vs lynx.
Linux user here.
I use links in graphical mode (links -g) quite a bit. It's easy to turn image display on and off with the '*' key. Image sizes can be scaled with the menu and they take effect immediately. If one hovers over an image link and types "i", the image itself is displayed, and there's an option to scale the image to fit the window. Getting a new links window is easy (Alt-F n). One gripe is that hitting Ctrl-C will close the window (the 'Q' key does this already)
I use lynx as a second line of defense when some sites refuse to work with links, because lynx is sometimes able to display them (different user agent?). I also have been recently using lynx within xterm (disabling the alternate screen) for forums where posted URLs are not clickable (text only) in combination with xterm's dabbrev-expand() function to quickly copy such URLs in lynx's goto prompt. As an aside: in xterm's misc.c there's a a macro (IS_WORD_CONSTITUENT) that can be easily expanded to exclude characters that are not part of a URL, such as braces.
I do worry that more and more websites will simply show "Suspicious Activity Detected" for these browsers. As mentioned so many times on HN, text browser users are a minority and text browsers are obsolete. I did once send a message to a website owner and later saw that I could access the site, but didn't get an acknowledgement by email, so I can't be sure if it was in response to my request. There still are some websites that degrade gracefully, and, despite complaints by the server, allow text input windows and submit buttons to still work.
I always found links the most pleasant. A big factor was how often lynx asked about cookies, but now I know from the article I can set it to reject all I might revisit lynx. w3m seemed to set itself apart with the ability to show graphics which I didn't care about so never really gave it a chance.
I have my lynx set to accept all cookies (makes for far less bother) but somehow seem to have forgotten to tell lynx where to store them. Logout of the browser and "poof" they all disappear...
elinks / elinks2, both based AFAIU on links, offer graphics support. So the option's there for you without much change in muscle memory, should you want it.
I use w3m, though largely w/o graphics support.
w3m here, for a number of reasons:
- Vim-like keybindings. I've used lynx off and on for decades, but can never internalise its keybindings, and I'm constantly surprised (in a bad way) and frustrated.
- Support for table-based layout. This is less frequently encountered online these days, though some sites (HN and pg's own blog site) still use tables.
- Graphics support, should you want that.
- Extensive settings with a good management interface.
- Pretty darned good bookmarks management. My w3m bookmarks page is my default homepage for the browser, and gives ready access to a bunch of useful sites.
- Better default formatting settings, in particular concerning paragraph breaks and the like. Lynx to me is too crowded when rendering webpages.
- Most of what Lynx can do w3m does as well, in terms of basic functionality, piping input and output, etc.
I fairly regularly try out other terminal browser options (lynx, links, elinks, etc.) but w3m is my happy place.
Oh, and tabs, as TFA mentions. I find this useful, and the interface is pretty manageable, though I tend to avoid the extreme tab proliferation typical of my Firefox sessions (100s or 1,000s of tabs).
I use lynx to view HTML emails in Neomutt, but if I want to browse the web I use w3m as it doesn't whine at me about cookie storage multiple times for every site.
i use w3m, last time checked it's more updated than lynx. w3m is also utf8 ready,lynx not. w3m-img can display images in terminal,lynx can't
some web pages are best read using curl
or nc <hostname> 80
Last I heard, RMS does something similar to this.
In the 1990's my university had a lot of dialup modem lines but only a small amount of them had PPP support. You would just get 1 terminal session. So I would dial in and then browse the web through lynx. It worked fine and was quicker because it wouldn't waste time loading images.
I recently tried Usenet for the first time in 20 years. I installed slrn the text based newsreader I used in the 1990's. It has very useful color support. I wish Usenet was more active instead of 90% spam. Having threads go for years and being able to go to the next post by hitting "n" instead of clicking around is a lot quicker.
https://en.wikipedia.org/wiki/Slrn
There was once a time, at least for some of us, where bandwidth was so limited and even localhost resources so scarce, as to make running Mosaic/Netscape difficult. Lynx saved the day many times for me. Over puny dialups, over satellite links, over connections hammered by early DDoS.
I use w3m with vim https://github.com/yuratomo/w3m.vim but just reinstalled lynx from this post after a couple of decades. This has helped with vim bindings: https://www.fuw.edu.pl/~jt/lynx-FAQ/kbd_130.html basically o for options then on for on for keyboard input > VI keys. C-f works for page forward :-)
One secret superpower of terminal-mode browsers is to tie them to shell scripts or aliases to launch a quick query.
DuckDuckGo, online dictionaries or etymologies, wikipedia, weather, and news are among the quick look-ups I use. Being able to do all of that in shell / from terminal, have it in my shell history, and be able to pipe output or save to file are all wins in my book.
Firefox (with all the foundation's junk turned off) with noscript and ublock origin is a compromise that works for me. Lynx feels too impractical in today's world but it's fun to use every now and then. Just trying hn on it now it doesnt render it cleanly
I have bad memories associated with lynx due to an earlier tech job. We'd help clients install their network printers so that the applications running on the RHEL/Centos box could see them. We did not have RDP or VNC access, but we did have on-demand SSH access to their server. So we'd end up having to SSH into the box and doing something like `elinks http://localhost:631` to bring up the CUPS interface over the terminal, and fill out all of the forms in the browser, tabbing to jump between lines and whatnot. It was a massive PITA.
Not lynx's fault, of course. But memories are memories.
This sounds like a good use case for ssh port forwarding, or if port forwarding was restricted, SLiRP[1]!
[1] https://slirp.sourceforge.net
I have better memories of lynx from the 90s: without internet access at home over university breaks, I'd walk to the local community college library, which had available, internet connected computers that could only browse the library catalogue or open a terminal. From the terminal I could telnet to my home university's unix server and use lynx from there to browse the internet.
I haven't tested many search engines but duckduckgo is very usable in lynx, it redirects you to a subdomain made for browsers that don't use js etc.
Self-promo: I launched https://LMNO.lol blogs recently. They are powered by markdown and render just fine on lynx. You can try my blog https://LMNO.lol/alvaro or https://xenodium.com.
It seems like out of Lynx, Links, and w3m, Lynx is the only one still under active development with a recent-ish release. w3m seems to be completely dead.
Elinks is alive, and with better support for many modern sites (no js, though).
https://github.com/rkd77/elinks
Here is my fork of w3m, which is not dead:
https://w3m-pager.org
Am I the only one who uses eww? Thats the w3m replacement.
Strong shoutout to nyxt, it's not terminal based but it is fast and I've liked it so far.
lynx is my goto browser these days.
It also supports gopher and I heard rumors it will add Gemini (protocol, the real Gemini). If so, that would be awesome.
Do you remember the time you could buy on amazon.com with lynx? (or links2).
And all the other dominant online services which broke noscript/basic (x)html to the benefit of the absurdely and grotesquely massive and complex (including their compiler) whatng web engines? This did shut the door definitely in the face of all citizen/state sponsored/small commercial alternatives which [could] have been super stable in time (including their SDK).
This is not "evolution" or "innovation", this is a scam and planned obsolescence at accute levels.
You could perfectly stream a video with a dash/HLS URL transfered to a media player (ads can be text on the web page and they can include some directly into the video stream).