Hacker News new | past | comments | ask | show | jobs | submit login
Browsh: The modern text-based web browser (brow.sh)
202 points by theycallhermax 8 months ago | hide | past | favorite | 34 comments



I wrote an HTML renderer [0] as part of euporie [1], which I'm planning on eventually spinning into a new terminal browser (but it needs a bit more work first).

There's no JS support, but a good chunk of CSS is implemented, and images are displayed using terminal graphics if your terminal supports it.

You can try it out by passing a URL to `euporie-notebook`.

[1] https://github.com/joouha/euporie/blob/dev/euporie/core/ft/h...

[0] https://github.com/joouha/euporie


And a full browser runnning in the terminal: https://github.com/chase/awrit


Though I realize it's currently offline, can I just say how refreshing it is to see the mention of a live ssh demo with no authentication needed? I wish more tools had such a friction free way to try them.


See also: https://sr.ht/~bptato/chawan/ - a web browser for your terminal


He lists a number of other text-only browsers but omits the best one, IMHO. Strange coincidence.


sr.ht is such a pain to browse, why would someone pick this over GitHub.


Please refrain from writing comments like these. From the HN guidelines

  Please don't complain about tangential annoyances—e.g. article or website formats, name collisions, or back-button breakage. They're too common to be interesting. 
https://news.ycombinator.com/newsguidelines.html


Looks fine in the text-only browser I use. Easy to browse. Here are some sample URLs

https://git.sr.ht/~bptato/chawan/tree/master/item/.gitignore

https://git.sr.ht/~bptato/chawan/tree/master/item/.gitmodule...

https://git.sr.ht/~bptato/chawan/tree/master/item/Makefile

https://git.sr.ht/~bptato/chawan/tree/master/item/README.md

To view raw substitute blob for tree

https://git.sr.ht/~bptato/chawan/blob/master/README.md

Actually Github has become recently more difficult to browse with the text-only browser I use. They keep messing with the HTML and breaking this simple structure.

I just download the .zip files and browse offline.


Because GitHub takes a fucking eternity to load every time you click something.


Javascript. Misuse of it.


What did you have trouble with? Genuinely curious.


and it doesnt show the project language(s), the first thing i do when checking a repo on github is to check the languages used, and usually this help me decided whether or not i want to follow this project or not

ocaml, f#, clojure, zig, raku, array language --> insta follow

rust, smalltalk , lisp/scheme --> 50-50

python --> boooo , not gonna follow


`.nim` if we go by the last commit.


the nimrod programming language


I'm a bit surprised by the use of firefox, but it's great to see web tools not based on chrome


Neat! Very handy for looking up issues remotely. It has a dependency on firefox, but on systems that have Nix, that shouldn't be too much of a problem.


it seems to have firefox as a dependency


Yes, the page is rendered remotely in Firefox and turned into text transmitted over SSH.


Cute and sexy but I can’t help but wonder whether it misses the point


Are you projecting? The point is to be able to use the modern web in all of its spectacular complexity, from within a text-based terminal. Which goal it actually achieves!


It's neat yes. But prevents it being used on a headless server without graphics installed. That's primarily where I'd use a text browser... need to download a package/archive but also need to search for it first.

If I have firefox installed, I'd just use it!


This can, however, be run entirely inside of Docker - something I’ve done numerous times on a remote sever. This even allows for the web interface to be used, though that kind of defeats the purpose.


Could you share why it misses the point according to you?

On the website the following use-case is mentioned: > run firefox remotely in order to "significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs."

Another use-case would be running firefox on a remote server with just enough power while using ssh on a smaller, weaker, device (raspbery pi like, an old smartphone with termux, very old hardware, ...).

It's hard to build a browser engine, especially if you intend to support a seemless modern web experience (and thus with javascript, unlike all the text-browsers out there). Some even argue it's not possible to build a modern web browser engine anymore [1].

I think it's the point for browsh to rely on another piece of software that will focus on just that (headless firefox).

Browsh is described as a "text-based browser", but under the hood, a more technical accurate way to summarize it would be "a software to stream a remote firefox in your terminal". The concept (and why it saves bandwitch) is detailed on the docs section "What is browsh?" [2].

[1] https://drewdevault.com/2020/03/18/Reckless-limitless-scope.... [2] https://www.brow.sh/docs/introduction/


edbrowse supports enough js to comment on some pages and download files. Felinks used to work, too.



Can people share some use-case for this kind of tools?


From the README:

    If you only have a 3kbps internet connection tethered from a phone, then it's good to SSH into a server and browse the web through, say, elinks. That way the server downloads the web pages and uses the limited bandwidth of an SSH connection to display the result. However, traditional text-based browsers lack JS and all other modern HTML5 support. Browsh is different in that it's backed by a real browser, namely headless Firefox, to create a purely text-based version of web pages and web apps. These can be easily rendered in a terminal or indeed, ironically, in another browser. Do note that currently the browser client doesn't have feature parity with the terminal client.


brow the web from a dumb terminal?


Battery life


Not so much; running Chrome headlessly can yield almost the same power usage as a graphical spawn one.


You're not supposed to run it on the same device. You're supposed to run it from a server and SSH into it to save power on the client device.


You would run browsh on a power unconstrained server that you SSH to from your power-constrained device.


Been following this project for a bit, super cool


I love this stupid thing




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: