19 ms·
Show HN: Browsh – A modern, text-based browser
- tombh 8y agoSome of you may have seen this before under its previous incarnation of "Texttop". Then it was just a hack, but I got some great feedback, so I've spent most of the last 12 months turning it into something serious. It's morphed into more than a mere TTY gimmick. That UNIX philosophy of text being the "universal interface" has somewhat unexpectedly risen to the forefront, such that Browsh is now essentially a text browser engine, serving to both TTY clients and, somewhat ironically, other browsers - see https://html.brow.sh https://html.brow.sh Being able to render any modern site (even WebGL for example) to text seems like an appropriate return to the web's origins. The obvious benefit being to those less fortunate that have slow and/or expensive bandwidth. Also, I'd be interested in any opinions here about how to financially support this project. At the very least I'd just love to somehow make this my job.
- adamredwoods 8y agoMy guess is to try upselling features like anonymous browsing, ad-blocking, etc. Other ideas would require discovering use-case scenarios for corporate situations: can it be used as a cms-front end or a way to focus on text for localization? a11y testing? You never know.
- tombh 8y agoWhat do you think of its potential for use in regions with slow and/or expensive Internet (South America seems to be the worst off here), where I could come to some arrangement with a local NGO/GO to fund server costs and development?
- giancarlostoro 8y agoYou absolutely could, Opera browser was doing something (I think they proxied images and similar files) before it gets to someone's screen. If you can compress large images (and you'd have to know they're images cause you gotta render them right?) in such a way that they're not visually distorted it would be worth paying for. The harder thing is trust, trusting you to not change any images. On the other hand that'd make for a fun VPN service for general browsing (but again then it comes back to trust) but if you target it as a browser plugin bundled VPN service that saves on bandwidth you could hit more of an audience and use that income to fund Browsh. I figure you dont want to get too far outside of that scope though (development wise) since it's a lot more work. I also like the other ideas of using some of the Browsh capabilities to scrape the web, maybe as a paid API, sure you can write a script to do that, but if you can curl / postman an API that does it for you and returns what you need, then why wouldn't you? Trick is can an API be done just perfectly enough? How do you tell it to give you whatever part of the screen with whatever requirements? It could sound simple but get complicated quickly enough. If it's too complex maybe a compression VPN is a better target.
- tombh 8y agoYeah the Opera-style compressing VPN idea is definitely high up on my list. That's why I released Browsh along side text.brow.sh and html.brow.sh At the moment they only return static content just as CDN would, so there's no privacy concerns, but to make those services truly VPN-like then they'll need to allow logins, sessions, etc, which then very much raises privacy concerns. And there's just nothing Browsh can do to assuage that, other than good branding, because Browsh by definition has to read every character on page in plain text. I've got a good feeling about text.brow.sh, it's so simple. As you say I just need to work on the consistency of what it returns. Thanks for your thoughts!
- shubb 8y agoMaybe this would be useful to commercial shipping companies who run thier net over satellite and similar. That would work nicely as a hosted service with an app. Like a more aggressive version of opera's bandwidth reduction. The military might have similar problems. It's not really ready fir consumers yet though.
- tombh 8y agoGreat ideas, I'd not thought of them. So might be worth researching some contacts in those fields.
- themodelplumber 8y agoCharge for plugins? For example, user macros, user styles, integration of other apps, advanced bookmarks, etc. Sell merch, create your own awards for lo-fi websites and charge people to nominate their sites. Hope it works out for you!
- tombh 8y agoLoads of ideas! So well first I need to identify what people want and are willing to pay for. I like the awards for lo-fi websites, I could have a showcase section of the website.
- hexadecimal7e 8y agoI would pay for a mobile app that reduces my bandwidth usage during traveling while surfing the Webb away from WiFi.
- qplex 8y agoUse ublock and umatrix addons for Firefox, they're free and available on mobile too.
- hexadecimal7e 8y agoI am very familiar with uBlock and such. I have a local DNS at home which blocks a lot of stuff for the whole family at home without using plugin-blockers. My wife don’t know a life with ads and is often surprised when visiting friends: “what a nightmare of distraction” What I mean is an app that connects to an instance (vm, server) a brow.sh. I would like to install this in a lxc container and connect to it from my mobile via VPN and use HTTP-proxy settings or and with an specific brow.sh-app for my mobile. Could this work?
- tombh 8y agoIt's be great if html.brow.sh could become a sophisticated proxy that stripped the web down to an absolute bare minimum. Yes I think travelers are the most likely to pay for it, but I think the poorer people of less developed nations would be the largest sector of users. Currently though html.brow.sh is non-interactive, as soon as I start letting people logging in it opens up a whole bunch of privacy concerns!
- mylons 8y agodude, very cool.
- monch1962 8y agoI could see this being part of a lightweight browser UI testing framework. There's already ways to drive a headless UI (Selenium, puppeteer), but they require automation testers to interact with page elements via the "normal" DOM which can be quite painful in terms of creating automation tests - DSLs to drive DOM automation are necessarily huge. I could envision browser automation via browsh using a very small DSL e.g. browsh.url() to navigate to a URL, browsh.click() to click on an element, browsh.text_exists?() to check whether text exists, browsh.link_exists?() to check whether a clickable link exists
- tombh 8y agoI've thought of that too. The trouble is that Browsh's text renderer is more of a science than an art. It's quite hard to actually get a guarantee of the same text twice, which is a pretty important condition of testing. But yes, I'd love for Browsh to be used in such a way!
- brlewis 8y agoGuaranteeing the same text twice might not be so important. There are pixel comparison testing tools for popular browsers. Your advantage is probably speed. Would cypress end-to-end tests run way faster in Browsh than in a graphical browser? If so, you've got something of value to big companies. You might want to partner with or contract for Cypress. EDIT: Since Browsh depends on Firefox I'm curious whether it's actually faster than a graphical browser.
- annabellish 8y agoAs an anecdote, somebody at my workplace has just spent a day tearing their hair out trying to figure out how to get our selenium tests running automatically on a headless machine, because the resolution flat refused to go above 1024x768. Even then, they're slow and heavyweight. A very fast browser not tied to a graphical display with the bonus of being able to put error screenshots into all of our existing tooling could actually be quite beneficial here, whether the text is character-identical every time or not.
- mamcx 8y agoWell stay chargin for it. Put a button and give a dedicated connection for people that pay?
- tombh 8y agoFor sure that's definitely an option, for both the SSH service and the html.brow.sh service. As people get to learn about Browsh let's see if there are any takers.
- masukomi 8y ago> Also, I'd be interested in any opinions here about how to financially support this project. At the very least I'd just love to somehow make this my job. I think before you can answer that question you have to figure out if there are enough geeks like you who think this is a useful enough tool to run / use regularly. They'll likely pay you $. Alternately, find use case where even just a few users / companies would pay $$$ each for some thing that it does that you can't easily get anywhere else and helps get work done. For me it looks cool, and i'll give it a try, but i'm more likely to stay with my normal browser because with plugins like vimium i don't have to reach for my mouse very much. That's actually one of the reasons i use the command line so much. Make it work without constantly using my mouse and I'd be far more likely to use it. Once i'm using it regularly, then I'd be starting to think "I wish it would..." and then making those wishes come into practice is something i'd support. This is kind of a weird / esoteric thing that would just gradually improve so... maybe Patreon is a better route for getting support than normal software / feature / plugin sales. personally, IF I find myself using it regularly, i think i'd be more likely to support you via a Patreon type regular donation.
- tombh 8y agoThanks for your advice, it's really helpful. I agree, I think it has a large gimmick factor, for which I don't think there's a huge amount of $ (though it does help spread the word). You have a good point about finding a niche in a large company. As others have mentioned this looks like it would be to do with endeavours out in the field so to speak, where the Internet is slow and/or expensive. So eg; military or shipping operations. So at the moment I guess it's just best to hope as many different people and organisations see Browsh as possible and seeing what sticks and where. I've got Patreon, Paypal and Bitcoin setup already: https://www.brow.sh/donate/ https://www.brow.sh/donate/
- aeorgnoieang 8y agoAdd links to Patreon, PayPal, and Bitcoin right on the home page.
- 8y ago
- g-harel 8y agoweird, that link doesn't work on localhost /s
- thaumaturgy 8y agoI've been messing about with a toy search engine for a long time, and starting to tie it into my Pinboard bookmarks (6,000 and counting!), and the most irritating part of the whole thing for a while has been extracting useful text from modern websites. I'd considered using a headless browser setup but I never got 'round to it. If you structured this as a paid service where I could make some number of requests for some amount of money and get back basically what you've got now in monochrome mode, I'd probably sign up pretty quick. This is sort of relevant to some other recent HN discussions around the trouble with large-scale crawling and the trouble with so much of it being restricted to Google now, so I don't think I'm the only one.
- tombh 8y agoI've thought about this too, because https://text.brow.sh https://text.brow.sh certainly does make scraping websites easy, you just need to `curl` and `grep`. But the trouble is, as I mentioned elsewhere in the thread, Browsh's text renderer is more of an art than a science, it doesn't guarantee consistent results for every render. Whereas of course downloading HTML and using something like Beautiful Soup does give a much better guarantee of consistency.
- bambataa 8y agoI don’t think that lack of consistency should stop you though. Ok maybe it wouldn’t be suitable for testing things but there are other uses for a headless browser
- jacquesm 8y agoThe web 1995-2005 or thereabout will be the best documented period of humanity and it is saddening to see how payload has been replaced by cruft to the point that we might as well have remote PDF viewers. So much for 'the semantic web' I guess.
- tombh 8y agoThis precisely the sort of thing that Browsh can remedy!
- nemild 8y agoRe: financial support, have you seen Nadia Eghbal's Lemonade Stand for a whole set of ideas: A handy guide to financial support for open source. https://github.com/nayafia/lemonade-stand https://github.com/nayafia/lemonade-stand
- tombh 8y agoFantastic resource, thanks
- quadrangle 8y agoAs another resource for existing options: https://wiki.snowdrift.coop/market-research/other-crowdfunding https://wiki.snowdrift.coop/market-research/other-crowdfundi... Has further notes that don't just overlap with the lemonade-stand thing. Unfortunately, Snowdrift.coop is still not available to use itself at this point.
- dheera 8y agoDamn. Even Youtube works. Never thought I'd be watching movies over SSH.
- qplex 8y agoAAlib [0] has been around for ages. But yeah, it's a cool trick to watch movies in a terminal. However I think there is very little real use for image to text-as-image conversion. [0] https://en.m.wikipedia.org/wiki/AAlib https://en.m.wikipedia.org/wiki/AAlib
- helb 8y agoOr libcaca, which even handles colors. With mpv & youtube-dl, you can do just: mpv -vo caca "https://www.youtube.com/watch?v=DLzxrzFCyOs"
- hx2a 8y agoHaha, I knew I was going to be rick-rolled before running this and yet I ran it anyway. I didn't know about this utility. Awesome it does sound too. Thanks for pointing it out.
- primitivesuave 8y agoThis is not my favorite monetization strategy, but if you had enough people using your browser you could serve text-based ads in place of the now-pixelized image ads on the screen. To test this model right away, you could contact a developer-focused ad network like Carbon (https://carbonads.net/ https://carbonads.net/) Another insidious idea is to pitch this browser to companies as a way to reduce wasted time on social media and time-wasting websites - employees could be trained on how to quickly extract text information from a website that is relevant to some business goals, without getting distracted by the time-wasting opportunities that a browser provides. What I would love to see (but where far fewer promise of riches lay) is to use this as part of some great developer tool - this seems it could be a more intuitive way to test an interface than Selenium. Until then I look forward to personally supporting and using your awesome project!
- tombh 8y agoThis approach has already crossed my mind, and its not my favourite either. But if it enables me to make Browsh my job then I'd be open to it. I actually already self-advertise Browsh at the bottom of every https://html.brow.sh https://html.brow.sh page. So I'd certainly be open to placing a simple ad link there at least. Ha, the "reduce wasted time" idea is interesting one! Thanks for your support :)
- ohiovr 8y agoI got a wild idea that I want to do myself for funding a hobby of mine. I am developing a similar software compared to yunohost or cloudron. The way I want to fund my hobby is by afflilate marketing. I am developing a solution for hosting, so it might make sense for someone to use it via digital ocean. All I got to do is provide a link as a their affliate member (which I am as of now not apart of) and my user gets a discount, digital ocean gets a customer, and I get about $20 dollars I think. There are several other programs like this by various other companies. What I think you might do with this idea is offer an affiliate deal for your users for isps or organizations that want to provide super low bandwidth services. I read recently there are still millions of modem users in the USA because of the various remote locations can't afford to bring a network in and no political will to do it either. Good luck to you, I think you got a good idea. I am not able to get it to work on docker at this time but I'll be keeping an eye on it.
- bryanrasmussen 8y agoif it was pluggable into other browsers, or other browser's extensions, then charge a small fee for that kind of usage.
- tombh 8y agoI've had the idea to make a webextension that transparently proxies all top-level URL bar requests to html.brow.sh, that way you can click on links in other applications that open in your browser and instantly get the Browsh version. I think it could a fantastic resource for those in the world that have slow and/or expensive internet. First though I really need to improve html.brow.sh
- bryanrasmussen 8y agoI wonder if it would be a benefit for EU people who just want to read the site and not get a modal that tells them if they don't accept privacy invasions you can't read the page. I'm getting tired of writing down GDPR violations to report.
- tombh 8y agoBut then I wonder if Browsh would come under some violation for doing so?
- bryanrasmussen 8y agoI don't see how you would end up in a GDPR violation scenario for doing it. I suppose the more likely scenario would be Company X wanting people to agree to give up data, and make it hard to access site without giving up data, but browsh makes it easy. So then the company complains that browsh is essentially enabling theft of their resources, I don't think that will work very well though.
- bryanrasmussen 8y agoactually one problem you have here, and you're probably realizing from the responses, is a problem I had with a personal project that could be used to build lots of things that people wanted, but in itself was not a thing people want. In order to monetize you need to build one of the things people want, but in doing so you put focus into one area and stop improving the generic base of everything, as well as not producing many little toy examples of the possibilities of your technology.
- tombh 8y agodamn, yes, that's indeed perceptive
- westoncb 8y agoI've found myself running into this same thing as well. An obscure sort of problem no one warns you about ;)
- jacquesm 8y agoThis is typical for infrastructure and foundation libraries. Nobody made money on jpeg, but jpeg powered entire industries.
- C4stor 8y agoWhile your point stands, you may be interested to know that a company actually successfully sold a patent for jpeg at some point, and made about $100M doing so. So I wouldn't say nobody made money on jpeg ! But it's also interesting for the OP, maybe there's something patentable in there ?
- jacquesm 8y agoIf you're referring to Forgent: they were patent trolls and their patent was invalidated due to prior art. Unfortunately not before a bunch of companies paid up. Fraunhofer is a better example of an institute that made good money on tech patents with merit, as well as 3M and lots of other tech companies. But as a rule these things are hard to monetize and while I'm not happy that it will be hard to monetize the work that went into this particular project at the same time I think it is good that patents are most likely a closed avenue. Patents are - in my opinion - a net negative and the sooner they are abolished the better.
- asdojasdosadsa 8y agoOut of pure curiosity, how much are you profiting currently out of it?
- tombh 8y agoSince launch I've had just under £100 in donations.
- jacquesm 8y agoCheck again :)
- tombh 8y agoThe bitcoin one! Woaah, thank you so much :)
- jacquesm 8y agoNo, thank you. That must have been a very long and hard slog to get this to work as well as it does and unfortunately this is the only way that I have to show my appreciation of that. (Been there, done that.)
- tombh 8y agoHa, you're the first person to mention that. It's probably one of the hardest things I've ever done in my life, both technically and in terms of stamina. So I very much appreciate that someone else can understand that.
- tsukikage 8y agoStupid question: how do you follow links without a mouse? e.g. with Lynx you'd use the arrow keys / enter - this doesn't seem to work here, and there's nothing obvious in the keybindings document.
- deleted 8y ago[deleted]
- tombh 8y agoSadly, it's not a feature yet, but it's planned: https://github.com/browsh-org/browsh/issues/85 https://github.com/browsh-org/browsh/issues/85
- josh921 8y agoRegarding financing, perhaps you should consider collaboration with the Tor Project. Many Tor users disable Javascript, because Javascript sometimes has anonymizing vulnerabilities. But disabling Javascript cripples many websites. But I can type html.brow.sh/https://example.com https://example.com via my Tor browser and get a non crippled website, even with Javascript disabled. This is a very practical use case and I think many will want to pay you to make it work better.
- tombh 8y agoI'm not very familiar with Tor. But from what I gather I think Browsh will be of interest to Tor users more than Tor network itself?
- josh921 8y agoWhat you need to know about Tor is that the network consists of clients and relays. Clients are mostly users with browsers. Many of which disable JS, because JS can de-anonymize sometimes. This breaks some websites. Previously I could not visit CNN.com via a JS-disabled Tor browser, but now I can type https://html.brow.sh/https://edition.cnn.com/ https://html.brow.sh/https://edition.cnn.com/ and Viola! (Well, it's still a little crippled but much better than a blank). So, brow.sh benefits JS-disabling users. The Tor project receives donations and they dedicate them to enhance Tor. And, I think this is a neat enhancement. While I am not totally familiar with their money handling, I wouldn't be surprised if they are willing to funnel some of the funds to various side projects that improve the Tor experience. In summary, the use case you advertise is minimal bandwidth for clients, but you missed the privacy use case, which someone may want to fund. Edit: grammar fixes.
- tombh 8y agoOk great, well I posted over at r/tor, see what they say: https://www.reddit.com/r/TOR/comments/8y6z0m/browsh_html_service_converting_the_modern_web_to/ https://www.reddit.com/r/TOR/comments/8y6z0m/browsh_html_ser...
- vorpalhex 8y ago> I'd be interested in any opinions here about how to financially support this project. At the very least I'd just love to somehow make this my job. One of the cases where developers still use text based browsers is in attempting to check accessibility of websites. For many large enterprises, there's a legal or contractual requirement to ensure a certain level of accessibility for users with disabilities.
- vanderZwan 8y agoNice thought, but it doesn't seem to be that kind of textual browser. Unless it really relies on accessibility to work at all.
- vorpalhex 8y agoYeah it's a bit weird with it's fuzzy graphics. I'm not quite sure the best way to use this, but one of the most common forms of "blindness" is not a total lack of sight, but very poor eyesight.
- tenkabuto 8y agoIt can also work for general usability testing: after testing my personal site, I realized that with the graphical fuzzing that this offers, even I couldn't identify what my site's main navigation buttons (made in CSS, no less!) said or whether they were even links. This let me see graphic through the lens of people that cannot see graphics well, so yay!
- tombh 8y agoI'd never thought of this, thanks.
- se7entime 8y agoWill you put it in Flatpak or Snap?
- tombh 8y agoIt's not a high priority but yes I will. Goreleaser, the tool I use to build the binaries, debs, rpms and taps, already has code from Snaps.
- snarfy 8y agoRun it as a service. I send in a URL and maybe TERM type, you send back the rendering complete with escape sequences etc. You might not see the need for this, but others will. I could see it being used in some back end workflow.
- tombh 8y agoThat's essentially what https://text.brow.sh https://text.brow.sh is already doing right? Eg; `curl https://text.brow.sh/https://news.ycombinator.com/item?id=17487552 https://text.brow.sh/https://news.ycombinator.com/item?id=17... | grep snarfy`
- snarfy 8y agoIt's close, but it doesn't actually output the escape codes. It would be cool if there were different formats besides text and html. Maybe vt100.brow.sh, ansi.brow.sh, etc. That way when I curl it from a terminal it renders like the actual terminal client. Add terms that commercial use of the site requires an account setup and some pricing info. They can always host it themselves, but like many things, most people would rather pay someone else to do it.
- tombh 8y agoOh! I never thought of sending the escape codes over curl. Great idea, thank you.
- sevensor 8y agoCan it be made not to show WebGL, embedded video, and so forth? I enjoy a very serene internet using w3m set to monochrome, with mouse and images turned off. Every now and then it's necessary to use a graphical browser, and it's the sensory equivalent of being woken up by a toddler at 5:30 on Christmas morning.
- bovermyer 8y agoWhat you call "serene," I would call "austere." That's not meant as a denigration, mind you: I'm very curious as to your viewpoint here. What do you enjoy about such an experience?
- chaoticmass 8y agoI use elinks-- I like it for reading. I like how all the text is displayed the same, in a fixed width font I'm used to looking at. There's nothing to distract me or get in the way.
- some_account 8y agoBut.... You are missing all the ads! Without those, nobody buys anything and companies go bankrupt. Hopefully you make up for your behavior by consuming more than average and watching Fox News.
- flukus 8y ago> What do you enjoy about such an experience? The major benefit is that I don't enjoy an "experience", I just read the content and leave. So much of the modern web is built specifically to prevent that.
- sevensor 8y agoI find the ordinary internet terribly overstimulating. It's a constant din of people screaming for my attention. Even relatively sober sites often have distracting designs that make it hard to focus on the content. Text mode is calming, it cuts straight through the clutter. In text mode, authors have to distinguish themselves by saying something interesting, and it's a lot easier to decide whether that's the case when they have nothing but words with which to make their arguments.
- fiatjaf 8y agoAmazing. Is this relying on an external server to work?
- alpaca128 8y agoIs there a way to point it to a different Firefox installation path? It only looks at Program Files{x86} and then quits as it doesn't find the FF installation at Program Files.
- tombh 8y agoUse the `-firefox` flag. However the Windows binary has other problems. You can use the free live demos though: `ssh brow.sh` and https://html.brow.sh https://html.brow.sh
- genpfault 8y ago> Browsh consists of a minimal Golang CLI client and a browser webextension. Most of the work is done by the webextension. When the CLI starts, it looks for a compatible browser (currently only Firefox) and starts it in headless mode. Once the browser has started it opens a remote debugging connection and installs the extension. So a browser wrapper.
- beamatronic 8y agoWhy wouldn’t you just use lynx?
- tombh 8y agoLynx doesn't even support modern SSL,let alone HTML5, CSS3, JS, WebGL, WebAssembly - all of which are supported by Browsh.
- johnklos 8y agoLynx uses whatever SSL is on your system, so if your OpenSSL doesn't support modern SSL, then it's time for you to upgrade ;)
- tombh 8y agoI'm not sure that's true, for example elinks doesn't support SNI: https://bugzilla.redhat.com/show_bug.cgi?id=1527856 https://bugzilla.redhat.com/show_bug.cgi?id=1527856
- raffleslodge 8y agoNot sure if it's just me but the page is down currently.
- tombh 8y agoBy down, do you mean this? https://github.com/browsh-org/browsh/issues/58 https://github.com/browsh-org/browsh/issues/58
- stiGGG 8y agoGot rickrolled in 2018 gnarf :(
- keithnz 8y agothey are getting more complicated these day, the guy invented a whole browser frontend in order to rickroll us! :)
- Untit1ed 8y agoWhat I really love is that (when the server is working) you can ssh brow.sh And then have a graphical browser from anywhere :D.
- tombh 8y agoThanks! What are you seeing when the server isn't working?
- Untit1ed 8y agoOh it was just timing out, I assumed it was suffering from a HN hug of death but it could've just as easily been my connection :).
- WalterGR 8y agoThat failed massively for me in Terminal.app on OS X. The browser showed garbled text and horizontal half-height lines. Is there a reason why Terminal.app might not work?
- tombh 8y agoTerminal.app doesn't support true colour :( So it can't properly take advantage of the UTF-8 half block trick to get 2 pixels of colour from each cell - thus creating the banding effect you see.
- bwag 8y ago> Its main purpose is to significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs. How does it reduce bandwidth exactly? It still has to grab all the html/css/js for the site being rendered.
- mahesh_rm 8y agodoes it fetch images? if it does not, there you go..
- deleted 8y ago[deleted]
- robrtsql 8y agoI think the use-case is that the user is running their headless browser on a remote server with a good internet connection. Then they open an SSH tunnel to that server from their local machine which has low bandwidth--and the only thing that needs to be received by the local machine is the browsh rendering of the webpage.
- tombh 8y agoExactly. As well SSH/Mosh access there's a HTTP service, that currently only outputs static, noninteractive HTML and basic graphics. For example: https://html.brow.sh/https://news.ycombinator.com/item?id=17487552 https://html.brow.sh/https://news.ycombinator.com/item?id=17...
- bwag 8y agoAh, that makes sense. Cool project!
- _dark_matter_ 8y agoThis sounds like your ticket to making money then. Have a hosted option.
- RSZC 8y agoPretty sweet! Curious: why headless firefox and not headless chrome? Also: 'its main purpose is...to reduce bandwidth.' How does this reduce bandwidth? Is the assumption that you would deploy browsh on a server and ssh/mosh against that, and the bandwidth savings are to the client? (But full bandwidth usage to the server)?
- lucb1e 8y agoBecause Firefox is open source, in the same vein as this project? Just a guess.
- NikolaeVarius 8y agoChromium is also open source
- lucb1e 8y agoHe said Chrome, though. Or is there no headless Chrome but only Chromium? Can't say I've ever heard of headless Chrome, though, so I guess that's why I'm being downvoted.
- tombh 8y agoCuriously, Chrome doesn't support extensions in headless mode. And Browsh needs to run some custom CSS and JS to help with parsing, so Chrome was a no go. You can inject CSS and JS using the RPC though, but that RPC standard (https://remotedebug.org/ https://remotedebug.org/) isn't yet supported by Firefox. So at the time I felt that using the webextension standard was a more cross-browser investment. Perhaps I should revisit that decision. And yes you're right about the use of a remote server to make use of the bandwidth savings.
- brian_ 8y agoI'm not sure what the desired outcome should be but successive iterations has strange results: https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh https://html.brow.sh/https://html.brow.sh/https://html.brow.... https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://google.com https://html.brow.sh/https://html.brow.sh/https://html.brow....
- tombh 8y agoThat sort of thing is actually causing spikes in load on the cluster. I think the quickness of the requests must skip the cache. So it's a bug really, I just need to detect recursive URLs and extract the deepest link.
- g-harel 8y agowhy do you say it's strange? The image is being compressed over and over and the content of the demo page is being added each iteration. https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://html.brow.sh/https://google.com https://html.brow.sh/https://html.brow.sh/https://html.brow....
- max_likelihood 8y agoVery cool! I find the pixelated images to be quite charming. One thing I noticed, when I go to https://text.brow.sh https://text.brow.sh it reads: `Welcome to the Browsh plain text client. You can use it by appending URLs like this; https://html.brow.sh/https://www.brow.sh` https://html.brow.sh/https://www.brow.sh`. Should it be `https://text.brow.sh/https://www.brow.sh` https://text.brow.sh/https://www.brow.sh` instead?
- tombh 8y agoThanks. Yes it's like the retro 8-bit style, it has a certain charm I agree. Damn, I can't believe I missed that! I fixed it in the code and will deploy soon with some other fixes.
- vinchuco 8y agoNote your donate link https://html.brow.sh/https://www.brow.sh/donate/ https://html.brow.sh/https://www.brow.sh/donate/ 'broke' the QR code. Amazing work!
- tombh 8y agoThanks. It does break the code doesn't it, but I'm planning on implementing a magnifying glass: https://github.com/browsh-org/browsh/issues/33 https://github.com/browsh-org/browsh/issues/33
- milankragujevic 8y agoIt's a bit broken on my blog, I'd like to know why so I can fix it... https://html.brow.sh/https://milankragujevic.com/vip-drop-i-lekcije-u-odnosu-sa-korisnicima https://html.brow.sh/https://milankragujevic.com/vip-drop-i-...
- tombh 8y agoI can see that Browsh's injected JS isn't able to hide your text to take the screenshot, which in turn means that Browsh can't parse the text. There could be a number of reasons for this, but it's very much Browsh's responsibility here, not yours. I've added your site as an issue on the repo: https://github.com/browsh-org/browsh/issues/75 https://github.com/browsh-org/browsh/issues/75
- katzgrau 8y agoThe nice thing about text based browsers is that you can use them at work and everyone thinks you're cranking code but you're really just on HN
- jasonkostempski 8y agoExcept the network admin that makes the hush-hush employee website usage reports for the boss.
- e12e 8y agoNot if all they see is an ssh connection...
- johnklos 8y ago...aaand it's written in Go... So it's modern in that it won't run on anything but popular platforms, and text-based in that it shows you text using a huge, multi-gigabyte program. Looks like links / lynx aren't going to be replaced any time soon.
- tombh 8y agoLinks doesn't even support modern SSL :/ The modern age requires a multi-gigabyte program to use the Internet, that's just our reality. So the whole point of Browsh is that you can now offload this from your local machine (eg. to a remote VM) and re-experience the net as pure text, how it used to be.
- theamk 8y agoI am fairly sure that both linx and lynx work with modern SSL. In fact, just checked on Ubuntu 16.04 -- both links (2.12) and lynx (2.8.9...) work fine with https://google.com https://google.com and https://news.ycombinator.com https://news.ycombinator.com for example.
- tombh 8y agoDo they support SNI? https://bugzilla.redhat.com/show_bug.cgi?id=1527856 https://bugzilla.redhat.com/show_bug.cgi?id=1527856
- vel0city 8y ago"Sorry, the latter piece of the patch does indeed appear to call the NSS SSL_SetURL which should trigger the SNI." So, according to your own link, yes it should support SNI.
- tombh 8y agoAFAIK it's not integrated yet. But anyway, I'm still wrong as lynx does support SNI: https://lynx.invisible-island.net/lynx2.8.8/features.html#improve_ssl https://lynx.invisible-island.net/lynx2.8.8/features.html#im...
- mullikine 8y agoThis is a text automation dream coming true
- aumerle 8y agoYou might want to consider adding support for displaying proper terminal graphics, instead of using pixelated ones (which I assume are done using unicode block drawing symbols?). See https://sw.kovidgoyal.net/kitty/graphics-protocol.html https://sw.kovidgoyal.net/kitty/graphics-protocol.html
- tombh 8y agoI'm actually already pretty decided against this. Simply because I won't the basic engine to be as text-focused as possible, as then we have a universal source of the modern web in pure text format, that multiple other clients (terminals being only one) can make use of. And besides graphics are orders of magnitude more bandwidth heavy than text, which somewhat defeats the purpose of Browsh.
- aumerle 8y agoRendering images using unicode block symbols does not make them text, it just makes them pixelated. And you can always down sample images to reduce the bandwidth cost and still get a much better rendering than you achieve currently. For example you can convert the images to indexed 256 color compressed PNG and transmit that, which would reduce bandwidth by a factor of ~4x while still giving you much better rendering. But anyway, it was just a suggestion, it's your project, you should feel free to do what you think is best for it.
- deleted 8y ago[deleted]
- mlinksva 8y agoReminds me a bit of reading about (I don't recall actually using one) web accelerators, or proxies that would retrieve and strip down content requested by a low powered/bandwidth client. I think these have pretty much disappeared over the last 10 years as bandwidth increased and mobile devices became more powerful. Added: I guess https://www.opera.com/turbo https://www.opera.com/turbo still provides this feature. Is there anything comparable that can be self-hosted?
- trepanne 8y agoThis is cool. Had you not considered using a pixellated Sean Connery as the logo?
- hestefisk 8y agoThis kind of stuff helps restore my faith in humanity. It makes me feel like a hacker again. Life starts and ends with the command line.
- tombh 8y agoWow, thanks!
- nagarc 8y agoSuper
- madmax96 8y agoAwesome software, this is totally something I could see myself use regularly. Heads up: on my Mac, browsh isn't properly resetting the tty when it crashes.
- tombh 8y agoYes, sorry about that. I'm still getting used to Golang. So I need to consistently catch panics and I ensure the right ANSI escape sequence gets sent to the terminal before it finally exits.
- davewasthere 8y agoWhat's with the Virus warning with the windows binary? Comes up with BrowserModifier Win32/Unwaders.B!ml detected.
- tombh 8y agoThis is related to: https://html.brow.sh/https://chocolatkey.com/blog/mathletics-weak-client-side-security https://html.brow.sh/https://chocolatkey.com/blog/mathletics... Do you still get the warning with the latest v1.2.3? https://www.brow.sh/downloads/ https://www.brow.sh/downloads/
- pwaai 8y agohow does it know how to convert a webpage to a ascii?
- tombh 8y agoHa, that's a very long story. The gist though is that some custom CSS forces a given webpage into a strict, monospaced, mono-sized grid. Then JS queries DOM text nodes for their contents and precise positions. Then using the standard rules of text flow the exact position of every character can be fairly reliably derived.
- enriquto 8y agothat's beautiful, where can we find this cool CSS file?
- Klasiaster 8y agoThe algorithm used in chafa for img→unicode would improve the image quality: https://github.com/hpjansson/chafa/ https://github.com/hpjansson/chafa/
- daleroberts 8y agoOr this one: https://github.com/daleroberts/tv https://github.com/daleroberts/tv
- therealmarv 8y agoamazing quality!
- comesee 8y agoThere really just needs to be a terminal API for true pixel graphics. Something like sixel but modernized and cleaned up. There's no need to hack in graphics on top of Unicode block characters, which negates backwards compatibility anyway.
- judofyr 8y agoiTerm2 has a escape codes for viewing images, but I haven’t seen any other terminals picking it up: https://www.iterm2.com/documentation-images.html https://www.iterm2.com/documentation-images.html
- comesee 8y agoThis is nearly what I'm talking about but it requires the terminal emulator to understand the image format. I guess that makes sense for transfer efficiency, and if you want a pixel-level API you could just transfer BMPs.
- daleroberts 8y agoIf you have iTerm2, you might like: https://github.com/daleroberts/bv https://github.com/daleroberts/bv https://github.com/daleroberts/itermplot https://github.com/daleroberts/itermplot
- Endy 8y agoRequiring a full version of WebExtensions Firefox is a real deal-breaker in terms of memory hogging (that and only having an x64 Windows binary). Why not do what Pale Moon, SRWare Iron, Chrome-Opera, Vivaldi (i.e. Opera-Chrome 2), and others have done, and create a full browser based on the FF code instead of requiring a separate install? Still, I think for all the major benefits of text-based browsing, Lynx, Links, and eLinks are still far preferable as lightweight solutions.
- tombh 8y agoBrowsh's raison d'etre is really about saving bandwidth. I first had the problem of bandwidth whilst living in Ladakh in Northern India, where I simply could not use the modern web. I expect Browsh not to be run on the same machine as the user, instead it runs somewhere where there is good internet and the user then accesses its output via either SSH/Mosh or the HTML service. Linking to FF/Chrome's libs is certainly an option and I agree a better approach, it's just a learning curve I wasn't willing to invest in.
- textmode 8y ago"As of writing in 2018, the average website requires downloading around 3MB and making over 100 individual HTTP requests. Browsh will turn this into around 15kb and 2 HTTP requests - 1 for the HTML/text and the other for the favicon." Does "100 individual HTTP requests" mean 100 TCP connections? As far as I know, according to RFC 2616, connection keep-alive was intended to promote making numerous HTTP requests. In fact, IME, most web servers default to setting max-requests at 100. Some are higher. Following the guidance of the RFCs, for decades I have been using this HTTP feature to make 100 requests to a site in a single connection. That is 100 pages of HTML in one quick TCP connection. If I retrieve 3MB, it is 3MB of HTML from the website and zero from third parties. (Further, I have written filters to remove junk from the HTML and print only the content I want, e.g. for reading or to import into database. If I need to split into separate files, which is rare, csplit works nicely.) In order to achieve this efficiency I could not and do not use a popular browser authored by ad-supported entities. I am an avid text-based web user who has no need for ads, graphics, and other external resources, e.g. Javascript. As such, I can use clients that can support http pipelining according to the RFCs. It works very well; no complaints. Best of luck with this project.
- tombh 8y agoOh! I didn't know that, I'm sure you're right. What do you think a better wording would be?
- therealmarv 8y agono alternative to links2 which is downloading much less (airplane etc.)
- tombh 8y agoI don't understand your point
- therealmarv 8y agoDon't get me wrong. Appreciate the project and effort. Well done and amazing. But the only time I use a text based browser is when I have very very bad connection (which happened once or twice e.g. in an airplane). But would be better for comparing links2 vs. mosh+remote browsh. Nevertheless I don't want to keep running some vm (even when it's small) just for my very seldom text browser sessions ;) I will keep browsh in mind when I'm again on some remote island. Could be a no brainer to install adhoc on a remote vm then.
- tombh 8y agoFor sure, I totally agree with this. The fact is I don't even use Browsh that much as I have the luxury of fast and cheap Internet. But I have certainly experienced bad internet and felt that craving to be connected to the modern web, which is so hard when all you have is a 3kb/s connection. So that is what Browsh is for, those people of the world, and there millions, who have slow and/or expensive internet.
- z_open 8y agoIf it doesn't have a script/cookie manager (similar to umatrix) then it's worthless. I had the same issue with qutebrowser.
- tombh 8y agoYou can manually add any of Firefox's extensions: https://github.com/browsh-org/browsh/issues/45 https://github.com/browsh-org/browsh/issues/45
- dang 8y agoPlease don't be dismissive of someone's work like this, even if you do want a script/cookie manager. https://news.ycombinator.com/showhn.html https://news.ycombinator.com/showhn.html https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- hexadecimal7e 8y agoAwesome work! Great stuff! Love from an terminal nerd here. Hope you succeed with this project. Question: how will it work with CAPTCHAs?
- tombh 8y agoI'm planning to add a 'magnifying glass' feature: https://github.com/browsh-org/browsh/issues/33 https://github.com/browsh-org/browsh/issues/33
- TeMPOraL 8y agoTom, RE that Kubernetes Slack artifacts in the video (4:45), this doesn't look like Browsh bug - it's just a new weird trend that happens on Slack/Discord, of people spamming with emoji reactions, often making them spell out something obscene. Browsh handled this very well, IMO (to be honest, it looked better than on a normal browser, because the actual spam content was pixelized).
- tombh 8y agoHey thanks! :)) Ha ok, then I should have just not mentioned, but its good to know Browsh actually coped well.
- tedmiston 8y ago$ ssh brow.sh All of Browsh's servers are currently busy. Please try again soon. Connection to brow.sh closed. Seems like a cool way to do a demo for something that's a bit painful to install on macOS (would love to see $ brew install browsh). I'll have to give it another look once the HN effect has died down.
- filleokus 8y agoFor what it's worth, I got the same error, and just downloaded the linked binary [1] and after a quick chmod+x it was up and running (I had a new-ish Firefox in my Applications folder). [1]: https://github.com/browsh-org/browsh/releases/download/v1.2.3/browsh_1.2.3_darwin_amd64 https://github.com/browsh-org/browsh/releases/download/v1.2....
- gbajson 8y agoIn my case it generated SIGSEGV and the "Connection to brow.sh" was closed. The more interesting that my gnome-terminal still receives/prints some codes. When I hit enter, it tries to execute them! https://ibb.co/buhqE8 https://ibb.co/buhqE8 and (ENTER) https://ibb.co/itFz7T https://ibb.co/itFz7T Does anyone of you know the mechanism behind it? EDIT: Does anyone of you know how to use it to type into terminal "sudo su -"?
- tombh 8y agoThis should be fixed in v1.3.2
- thomasahle 8y agoI found that the docker version was the easiest to get running on Mac. It's just `docker run -it browsh/browsh`, and it downloads and runs everything automatically.
- DidISayTooMuch 8y agoBrowsh: My new way to browsh the Internet - Sean Connery
- jhanschoo 8y agoSeeing as images are so pixelated as to be near-indistiguishable, I think it would be nice for browsh to have a status line where it shows accessibility metadata (e.g. alt="" attributes) of whatever element is currently in focus. It might also be nice to have a mode where images are just replaced by filled boxes that are more visually distinguished from the surrounding content.
- tombh 8y agoThat's a great idea about the `alt` metadata, thank you. Have you got an example URL for a page that would benefit from those filled boxes you mention?
- hyperpallium 8y agoWhich of the ARM downloads work on android?
- tombh 8y agoJust researching this now. Looks like I need to use `GOARM=7` during build. I have no idea if that would put out all those that were relying on `GOARM=6`?
- astatine 8y agoI also would find an Android version really helpful. Will save a ton of data when roaming and will probably perform better in poor connectivity regions (only 2G and no 3G/4G). Would be great to know how to get this on an Android device.
- rotorblade 8y agoAs I said elsewhere in this discussion thread: I tried it this morning (lineageOS). Got the arm binary from github, `chmod +x`-ed it on my computer and scp:ed it over to my phone. Ran the binary and got a quick flash of the screen and a `exit status 1` [in termux]. Have not looked into it more than that. Since `browsh` depends on headless firefox, which is not in the termux default repository (it seems), I guess it won't work because termux does not have access to the firefox system app, if that even shits with the headless-functionality. (but here I'm just guessing, a work around may be available) Would be cool to see working though.
- tombh 8y agoI haven't made it clear enough on the homepage or the docs, but Browsh isn't designed to run on your own local device, be it a laptop or smartphone. Browsh is best run remotely and then connected to through either SSH/Mosh or the HTTP in-browser service.
- mastrsushi 8y agoCan someone explain the usecase for Text-based browsers? While they're fun to show off to my non-tech friends when running without X11 and looking like a hacker, I've never needed one.
- bmn__ 8y agoWhen X is fucked and I need to look up online documentation or download a driver. When Internet is bad: packet loss at home, or travelling. When I am fed up with bloated Web sites and don't have Opera 12 installed. When setting a big font preference renders the Web page unusable. When I need to browse something on my computer, but I am away and only have my phone with me. I can use ssh, but I cannot use vnc.
- dmux 8y agoI once worked with a software system where the preferred way of interacting with its admin features was using lynx. It's a great way to provide menu-based software configuration.
- deleted 8y ago[deleted]
- shripadk 8y agoAbsolutely love the project! Also, this is probably the first time I felt happy being Rick-rolled!
- shp0ngle 8y agoFeedback: For some reason, it maxes out my CPU usage, all 4 cores full speed, on a simple webpage with some light javascript.
- tombh 8y agoCan you identify the process that was causing it? What size was your terminal window. And if possible the `./debug.log` file from having run `browsh -debug` could be useful. Thanks.
- peter_retief 8y agoI gave it a try with debian x64 binary, got a nil pointer on a path error /home/travis/gppath etc
- tombh 8y agoDoes it look related to this? https://github.com/browsh-org/browsh/issues/73 https://github.com/browsh-org/browsh/issues/73
- peter_retief 8y agoYup
- void_starer 8y agoAlso check out: Emacs eww. Handy when you are reading through a manual with lots of code examples, and copy pasting from a web page becomes work by itself. Just in case you're put off by the thought of Emacs keychords, note that you can also use mouse to move backward and forward through history (it has icons for those), and of course you can click links. But more importantly, it's Emacs. So if you wanted, you can press a key have the code copy-pasted to a temp file, run the compiler on that, display the result in a new window and file away both the code and the result to an org file for further studying.
- rabidrat 8y agoAwesome work, fellow textpunk!
- joemi 8y agoNeat project. It seems to have trouble rendering text from some text heavy pages. For instance, see the missing characters in the posts here: https://html.brow.sh/https://old.reddit.com/ https://html.brow.sh/https://old.reddit.com/
- tombh 8y agoYes, I know :/ I'm pretty sure it's related to the issues the terminal client has here: https://github.com/browsh-org/browsh/issues/42 https://github.com/browsh-org/browsh/issues/42 At least with the terminal client successive frame updates eventually render the text - a luxury we don't have yet with html.brow.sh
- GoToRO 8y agoJust a heads up: enter https://www.brow.sh:443/ https://www.brow.sh:443/ url here http://sitereview.bluecoat.com/lookup http://sitereview.bluecoat.com/lookup
- mirimir 8y agoThat just means that someone rated it that way. The owner ought to dispute that.
- GoToRO 8y agoYes. My point is that people are blocked to access the website because that list is used by some firewalls to allow or block access.
- mirimir 8y agoBecause Symantec classifies it as a proxy? Edit: And I see that https://www.startpage.com/ https://www.startpage.com/ isn't banned, and it includes a proxy option.
- ekzy 8y agoThat sitereview.bluecoat link hijacked my “back” button (browser history) and I was stuck on the page. I hate when websites do that, please don’t post such links
- tombh 8y agoI've been watching this: https://www.virustotal.com/#/url/54ab74be93601eb2f252364829ce5a61a8840f52c0f4cfe7a09f0c32730b8c85/detection https://www.virustotal.com/#/url/54ab74be93601eb2f252364829c... Because yesterday Google Safe Browsing considered this URL: https://html.brow.sh/mail.google.com https://html.brow.sh/mail.google.com a phishing attack. Even though the html.brow.sh service is non-interactive, it doesn't even return `<form>` tags, let alone JS.
- datalus 8y agoare there any working examples of WebGL? i can't seem to get any on threejs.org to run in Chrome 67 or Firefox 62.0b6
- tombh 8y agoEmbarrassingly, I need to remove WebGL from Browsh's features, as WebGL doesn't work in Firefox's headless mode. I certainly saw it working in the early days when I wasn't using Firefox headless in order to debug the injected CSS Browsh uses to render pages. Sigh, so I best remove 'WebGL' from the homepage :(
- tombh 8y agoActually it does work if you run Browsh with `browsh -with-gui`
- ryan-allen 8y agoReally cool! I couldn't figure out if I could enter values in inputs (e.g. go to google, perform a search). Might be out of scope or I might have missed something? It's super cool. I really like it!
- tombh 8y agoYou can! It can just be hard sometimes to find where to click the mouse :/ I need to find a better way to provide visual cues for input boxes. Thanks :)
- waivek 8y agolinks is the best text based browser because it has mouse support.
- pininja 8y agoBrowsh also has mouse support judging by the showcase video.
- drinchev 8y agoFor someone stuck in the ssh demo, as myself. Ctrl+Q will exit the browser and end the ssh connection.
- Grue3 8y agoSadly it doesn't seem like it can render even basic HTML forms, which other text browsers can do. Otherwise it'd be very useful. [1] https://html.brow.sh/https://ichi.moe/ https://html.brow.sh/https://ichi.moe/
- tombh 8y agoThe html.brow.sh service is quite far behind the terminal client in terms of features. Besides there's big hurdles over privacy if html.brow.sh starts letting users log into sites.
- beefield 8y agoJust wonder what kind of experience one should expect with 2400 bps? (Iridium go unlimited global satellite connection that costs around 135 USD per month. I think Go has some limitations so I do not know how much one would need to hack things around to get ssh terminal working properly)?
- tombh 8y agoThis is really the perfect use case for Browsh. I first had the idea for it when I was in the deserts of Ladakh where you'd get around 3kb/s speeds. So what you need to do is install Browsh on a remote server along with Mosh. Then from your own personal computer you can use the Mosh client to get Browsh working, albeit, quite slowly, in your terminal. So you don't need to touch Go at all. Let me know if you want any help, I'd love to get you setup as, like I say, this is precisely what I made Browsh for.
- beefield 8y agoI do not have currently the hardware (nor immediate need for it) it is just something I have been wondering how much it would cost to get properly global intrnet connection. I think Iridium Go does not allow connections from other than selected apps, you can't make a generic internet connection from a laptop through go. But this is just based on what I have read, I have no first hand experience.
- enriquto 8y agoI love text-based browsers, and this is the one whose display looks best (but i would like to disable images/animations). This being a work in progress, the most important feature needed immediately is a boost in performance. I have a very powerful workstation, and just following a link and rendering the next page takes almost a second. (In lynx, w3m and in elinks it is instantaneous.)
- tombh 8y agoBrowsh is really aimed at people with slow and/or expensive Internet that would benefit with having the main browser engine running remotely. You then access the output of Browsh via either SSH/Mosh or HTML serivice. But nevertheless you might like Browsh's monochrome toggle: `ALT+m`
- enriquto 8y agoI like colors, my problem is mostly the sluggishness. I follow a link and I have to wait a while, without any feedback, until the new page is ready. There is no reason for these delays (from the point of view of the user). If I am interested in text-only browsing, the other browsers offer a much more user-friendly experience.
- tombh 8y agoI'd be interested to know if Browsh really is more sluggish than other text-based browsers, in my experience it's certainly on par. Also Browsh does provide feedback in the bottom left, just like most browser do, when a link is clicked. But Browsh isn't designed to give faster browsing for people that already have good internet, it's designed to offer complete access to the modern web for users on slow and/or expensive internet.
- gfalcao 8y agoamazing, great job!!!
- fubase 8y agoHyper on macOS struggles quite a bit with this. It ran fine in Terminal.
- aminmemon 8y agoSeems great, but although it is unable to load HTML properly on few of the websites I tried. It overlaps the text content on each other. Although, is there any way we at draftss.com could contribute to the project?
- tombh 8y agoYeah, there's a lot of improvements to be made to the rendering engine. Sure what sort of contribution were you thinking?
- pseingatl 8y agoThe MacOS "binary" version: --isn't a disk image --isn't an app --isn't source code So what is it?
- InfamousSub 8y agoAn executable
- BeniBoy 8y agoDo chmod+x browsh_1.2.3_darwin_amd64 and then run it ./browsh_1.2.3_darwin_amd64
- Tehnix 8y agoAn executable? Haven’t had a chance to check it myself yet, but that’d probably mean you have to chmod +x it, and the run it in a terminal.
- jacquesm 8y agoMind blown how accurate this is, I've sent you some BTC as token of appreciation even though I do not have any application for what you've built right now. A lot of work has gone into this and it shows. edit: it's so good that I got confused about which window I was looking at and tried to click links with the mouse :)
- tombh 8y agoThank you very much indeed.
- tramtrist 8y agorunning the docker over ssh got me "Failed to connect to Firefox's Marionette within 30 seconds"
- tombh 8y agoIf you leave an issue on the Github repo with some debug logs and some info about the server I can look into it.
- cJ0th 8y agothat's pretty awesome. Anyone here knows how I could install this in termux on my android?
- rotorblade 8y agoI tried it this morning (lineageOS). Got the arm binary from github, `chmod +x`-ed it on my computer and scp:ed it over to my phone. Ran the binary and got a quick flash of the screen and a `exit status 1`. Have not looked into it more than that. Since `browsh` depends on headless firefox, which is not in the termux default repository (it seems), I guess it won't work because termux does not have access to the firefox system app, if that even shits with the headless-functionality. (but here I'm just guessing, a work around may be available) Would be cool to see working though.
- cJ0th 8y agothanks for the details. they saved me some troubles. too bad it (apparently) doesn't work. At least they do have good 'ol lynx in their repository :)
- tombh 8y agoI haven't really made it clear enough in the docs yet, but Browsh is meant to be run on a remote server and then accessed over SSH/Mosh or the HTML service. So there's not much advantage to overcoming the hurdles to getting running on Android. You should just SSH or better yet Mosh to access a remote version of Browsh.
- gbajson 8y agoThe idea is super cool, but unfortunately it SIGSEGVts a lot.
- tombh 8y agoThis should be fixed in version 1.3.2
- batat 8y agoWell, it works as expected https://html.brow.sh/http://motherfuckingwebsite.com/ https://html.brow.sh/http://motherfuckingwebsite.com/
- arendtio 8y agoFor those who are interested in how it actually works: https://www.brow.sh/docs/introduction/#design https://www.brow.sh/docs/introduction/#design
- exikyut 8y ago$ ssh brow.sh (It starts, prints "Waiting for Firefox to connect") Then... panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6de976] goroutine 11 [running]: browsh/interfacer/src/browsh.handleMouseEvent(0xc4203d3b00) /home/travis/gopath/src/browsh/interfacer/src/browsh/tty.go:151 +0x36 browsh/interfacer/src/browsh.readStdin() /home/travis/gopath/src/browsh/interfacer/src/browsh/tty.go:46 +0xd3 created by browsh/interfacer/src/browsh.TTYStart /home/travis/gopath/src/browsh/interfacer/src/browsh/browsh.go:185 +0xf2 Connection to brow.sh closed.
- tombh 8y agoThis should be fix, let me know if you try again and it works.
- crtasm 8y agoGetting an invalid certificate error on https://html.brow.sh/ https://html.brow.sh/ Sounds great, will bookmark for later.
- tombh 8y agoDoes that look related to this? https://github.com/browsh-org/browsh/issues/58 https://github.com/browsh-org/browsh/issues/58
- crtasm 8y agoNot at all. Here's the error in firefox, check your intermediate certificates: html.brow.sh uses an invalid security certificate. The certificate is not trusted because the issuer certificate is unknown. The server might not be sending the appropriate intermediate certificates. An additional root certificate may need to be imported. Error code: SEC_ERROR_UNKNOWN_ISSUER
- tombh 8y agoOh! I'm using Let's Encrypt. Any idea how I can reproduce this error for myself? Thanks for letting me know.
- rudolph9 8y agoI can’t fully articulate why but I love this!
- degenerate 8y agoThere's something absolutely British about this 1 min segment of the showcase demo: https://youtu.be/zqAoBD62gvo?t=235 https://youtu.be/zqAoBD62gvo?t=235
- tombh 8y agoHa :D
- kauegimenes 8y agoWhat happens if do this: https://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/http://text.brow.sh/ https://text.brow.sh/http://text.brow.sh/http://text.brow.sh...
- deleted 8y ago[deleted]
- scbrg 8y agoSuggestion: Make the Debian depend on firefox | firefox-esr. Currently, it's not possible to install on Debian stable due to that distribution not shipping a package named firefox, only one called firefox-esr. [edit]: Ah, I notice now that the firefox in stable is too old anyway. Oh, well, never mind then :-)
- tombh 8y agoAh yeah, thanks for pointing that out. I've added `firefox-esr` anyway, for the day that it gets upgraded past 57.
- michaelmior 8y agoGot a segfault the first time I ran it, but after it ran swimmingly. It would be awesome to have more keyboard shortcuts for terminal use.
- tombh 8y agoFollow this issue to follow Vim-keys integration: https://github.com/browsh-org/browsh/issues/31 https://github.com/browsh-org/browsh/issues/31
- jaytaylor 8y agoReally cool to see how far this has come since it was Texttop. It reminds me of the txt-web app I created based on my html2text golang pkg. It takes a different (simpler and less sophisticated) approach- bottom up, no fancy rendering: https://txt.gigawatt.io/jaytaylor.com https://txt.gigawatt.io/jaytaylor.com (Site source code: https://jaytaylor.com/txt-web https://jaytaylor.com/txt-web) Powered by the go html2text pkg: https://jaytaylor.com/html2text https://jaytaylor.com/html2text
- tombh 8y agoNice! Very much in the same spirit :)
- ninjakeyboard 8y agoWhere do I file a bug? Pornhub doesn't render properly.
- hobbes78 8y agoJapanese videos still render correctly, at least the relevant parts...
- ausjke 8y agoso this needs firefox installed? what about other text-mode browsers such as lynx, elink2 etc? or even the light-weight GUI browsers such as midori etc?
- pixelbath 8y agoYou might want to either increase the quality of your JPEG encoding or switch to a different format (GIF might work well at the sizes you're rendering). The compression artifacts from JPEG are very visible on solid-coloured areas: https://i.imgur.com/CcS7gL6.png https://i.imgur.com/CcS7gL6.png
- tombh 8y agoYeah, I agree, I need to play with that. The trouble is, those last few percentages of improved quality often double the Kb weight of a page!
- path411 8y agoSeems like it only looks for the 32bit FF binaries on windows so I can't run it sadly. Even tried copying over the 64 bit to the location, but I guess as expected got a reference pointer error.
- tombh 8y agoFollow this issue: https://github.com/browsh-org/browsh/issues/32 https://github.com/browsh-org/browsh/issues/32
- ohiovr 8y agoI have been wanting a way to launch a web browser with url from a remote server without a major security problem for a while. This could be even better!
- zimpenfish 8y agoAmazing work. Well done. (I looked at repurposing Firefox’s renderer for Lynx back in the late 90s - primarily for the JS support - but marrying a mountain of complex C++ implementing a dynamic page to crufty old C with bake-at-parse pages was far beyond my abilities or motivation.)