←back to thread

387 points shiomiru | 7 comments | | HN request time: 1.237s | source | bottom

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

1. baq ◴[] No.44296117[source]
You can get close tho: https://www.brow.sh/
replies(1): >>44296489 #
2. invaliduser ◴[] No.44296406{3}[source]
But how can it be a problem? Working on a project just for fun is totally valid. Is this not «Hacker News»?

For the record, this is the definition of being a hacker by Stallman: «Being a programmer doesn't mean being a hacker: it means appreciating playful cleverness. Now, you can program without being playfully clever and you can be playfully clever in other fields without programming.»

replies(1): >>44296991 #
3. akkartik ◴[] No.44296445{3}[source]
This is a Show HN! By hackers for hackers! Not everything has to be serious and ambitous and schleppy.

I can totally relate with your frustration. Here, come criticize my half-stack instead: https://akkartik.name/freewheeling-apps You're absolutely right in general.

replies(1): >>44296504 #
4. dodslaser ◴[] No.44296489[source]
Even closer https://github.com/chase/awrit

If you use a compatible terminal emulator.

5. b0a04gl ◴[] No.44296504{4}[source]
yeah fair, i get that not everything has to be polished or production grade. and your work has that clarity purposefully scoped, honest about tradeoffs. that's rare.. i'm all for hobby tools and experiments, just want us to be upfront when things aren't ready, just trying to keep the bar from quietly sliding
replies(1): >>44299029 #
6. shiomiru ◴[] No.44297047[source]
> terminal browsers are hobby projects because

...those pesky GUI users want pixel-precision :P

Surely it's a hobby project. You have to have very specific tastes to browse in the terminal in 2025.

> using external binaries for protocols feels like sidestepping the real engineering

You could easily move all protocols to the main binary. The reason for the current arrangement is that this way, you can e.g. replace the HTTP handler with curl-impersonate, or add custom protocols like magnet (etc.) See the bonus directory in the sources for inspiration.

> tied to niche image formats like sixel/kitty which barely anyone supports.

Sixel & Kitty are the only image formats anybody supports. The alternatives are ASCII art (fun, but too pixelated) & hacking images onto the terminal thru the display server (is that still a terminal-based app?) But I'm happy to discuss further, I find the issue fascinating :)

> mac

The macOS issue is largely a function of the only person working on this not having a mac. If you do, you can help solving it by debugging it yourself & posting the results: https://todo.sr.ht/~bptato/chawan/63

7. pvg ◴[] No.44299029{5}[source]
just want us to be upfront when things aren't ready

Things that aren't ready are on topic, hobby tools, scratch-an-itch or learning projects are all on topic in for Show HN. Generic harumphing isn't. It is boring and lowers the quality of the threads.