A terminal-based web browser in Nim.[1] Has acceptable (YMMV) CSS rendering, some JS support, and inline images (sixel/kitty). It can also use various protocols other than http(s) such as (s)ftp, gopher, gemini, ...
Chawan started out as a w3m clone, and the UI still resembles it. However, the architecture has turned out quite different, with pages loaded in separate processes, and protocol/file type handling separated out into external binaries. An interesting result is that you can even register decoders for custom inline image formats, although practical use cases of this are rather minimal.
There is a gallery showcasing some websites being rendered here: https://chawan.net/gallery/index.html
[1]: https://nim-lang.org
Absolutely incredible. And it even supports gopher.
Finally a good tool to view HN in terminal. Thank you! Where can I find the keyboard shortcuts? I can move with vim key binding, but can go back.
I recommend perusing the code. Since it’s in Nim it’s pretty approachable (and performant). There’s still lots of gnarly bits like implementing HTML DOM and web specs, but it doesn’t take you days to grasp the basic setup.
My jaw dropped when HN loaded first try from Termux! Nice work!
Gotta love Nim
Awesome and in Nim!
I rabbit-holed a little and apparently Chrome and Safari no longer even fully pass Acid2 and Acid3?
as a tiny web fan, it's lovely to see projects like these, *claps*
This is super cool! Bravo. Awesome to see it written in Nim too.
When I do `cha example.com` I can't figure out how to use any of the commands (hjkl, etc). The only keys I've found that have any effect are typing numbers which show up in the bottom left. Haven't figured out how to do anything with those. Am I missing something obvious about how to use this or could this be a bug?
I built from source on MacOS Sequoia 15.5 Apple Silicon using Nim 2.24. Pages load correctly, I just can't get the commands to work. Thanks!