If you use Firefox (and will pardon me plugging my own project), you might be interested in a version of this I made a while ago as a browser extension:
My project is somewhat different from the userscript in that mine uses Bloom filters to check whether a link has been submitted, whereas this userscript sends every page you visit to the Algolia search API. Using Bloom filters means that there are no external requests unless you actually press the button. My project also doesn't show the comments in a sidebar.
Having a link to past discussions, whether using this userscript or my extension, is useful not only to read the comments for a page you're browsing, but also to find good sites that haven't been submitted yet!
Wouldn't it make sense to have it an extension? Just spontainously (without reading any instructions) I don't understand how to use this or what Userscripts
Tamper or Violentmonkey is.
I prefer user scripts as I have to install one extension that can load many plugins (user scripts) instead of having one extension for every tiny website tweak.
Also much easier to glance over what a user script is doing vs. unpacking some extension and then finding the actual business logic in all the wrapper code.
Feature 2 is really useful. When I land on a technical article I know chances are there will be a nice HN discussion, that may sometimes even refute the main point of the article.
Feature 1 is IMO less useful. It just suggests that people are bad at window management. We didn't like overlapping windows and finding them, so we created tabs inside windows. Then we wanted to see two things at the same time, so we created split views inside tabs (Chrome and Firefox both had this). With a good window manager neither would be necessary. Sadly the community prefers to solve this at the application level rather than the desktop level; I'm currently using Forge (https://github.com/forge-ext/forge) but sadly it's becoming unmaintained.
Not sure if I agree about using windows instead of tabs. I have hundreds of tabs open, and dozens loaded, at any moment. I'm sure that it's possible to manage all the context with separate windows via a window manager, but it would have to be a REALLY good window manager to be able to provide equivalent features of tree style tabs and separate panes and whatever else that something like Sidebery provides, and it is always easier for each application developer to implement tabs suitable for that application's requirements.
Do you really need hundreds of open tabs though? To me this suggests a workflow issue rather than a tab management problem.
I only keep tabs open that I'm actively working on right now (or am imminently about to switch back to). I regularly close tabs (and windows for that matter) that are only open because I forgot about them, or that I might use again but not until hours or days later. If I need them later I just open them again.
For me, having hundreds of things open at once just creates clutter that makes it harder to focus.
I think one of the point of the author is making might also be that a window manager could do just more, like managing windows as tabs as well.
So that any application could have tabs, if the desktop manager would allow you to group windows as such. Same with showing a split view within such a tab as well.
I think I agree with that. I could imaging that the browser containers of tabs would make a ton of sense if I could make a container of windows handled as tabs across different applications at the window manager level.
I use Sway and happily manage my terminal windows using its tabs and splits. I can mix other "graphical" apps with the terminals or move them to another screen, all with the same keybindings. I agree, though, that I wouldn't want to replace my Sidebery vertical tabs with this setup, but I ultimately don't see why equivalent functionality couldn't be implemented inside the window manager in some alternate universe.
There are sadly hardly any WMs now with tabs, so having them support tree style tabs as well doesn't look too realistic.
1. If you name your script with the extension .user.js it is easier to click on to automatically install at least with tampermonkey.
2. When I went to this link from the main page, on mobile I had to scroll to the right to see the (-) to minimize because the sidebar was too large: https://elizabethtai.com/2026/06/10/substack-writers-you-nee... It may make some sense to start minimized so I can read the article first, but I can easily modify the script to do that.
is this better than using a chrome extension? i guess people need to have tampermonkey installed and so thats a slightly higher barrier to entry? i wonder if chrome would be interested in "sherlocking" userscripts so that we can distribute non security nightmare code easier.
In addition to the advantage of explicitly specified capabilities mentioned by others, I'd say a userscript is also much more durable and low-maintenance than a Chrome extension. This is coming from someone who's written an extension for personal use before, and had to jump through a million hoops with Chrome Dev just to give the browser permission to run my own code that I wrote myself, and that's to say nothing of the whole mess with manifest v3 as well. Throughout the entire time I've been able to happily keep using userscripts written by myself or others with 0 maintenance required.
Mostly transparency. Since this runs across pages you visit (with the sites controlled by the @include/@exclude rules at the top of the script), I like that the entire source is right there and easy to inspect before installing it.
A userscript also let me iterate quickly without dealing with extension packaging and permissions, but being able to see and tweak the code was a big part of the appeal.
Tampermonkey isn't better than using a Chrome extension, but it's less friction for a developer to build and distribute a cross browser script. If they build it as an extension, they need to target multiple browsers and get it deployed to the Firefox/Chrome web store.
If you can read JS and the user script is not huge, I think it makes a huge difference.
Apart from that, there are APIs exclusive to extensions, e.g. instrumenting client-side communication among tabs with different origins, listing all tabs, basically accessing a special API that sits on a higher-level context, and, while gating certain functionality behind user approval, and forbidding other functionality completely (at least in Manifest 3.0), extensions with the corresponding permissions can do more than a script running in the page context. They can inject these as well, though, even overriding CSP sometimes, as far as I know?
The main problem with these permissions, and WebExtension 3.0 partly was an attempt to improve this, or at least claims it: most people give a second of doubt at best when installing an extension, as long as they think it comes from a trusted source.
I'd improve it by counting top level comments next to items but that would slow it down. Still need to make some slight changes like closing sidebar by re-clicking orange (beyond just right-clicking sidebar.)
Firefox has a new Split View that's useful for this, but you still have to left click and select open in split view (M) then click the link. You also used to be able on some browsers to craft a link that was href="tab1.html|tab2.html", no idea if that's still a thing or if it was limited to "home page" setting.
Vivaldi has included split view for years (called tiles). You can also right click a link and choose open in follower tab. This lets all links clicked in one tile open in another tile. I use this regularly on HN.
Have you considered modifying it to trigger on every HNews click as well as with as manually triggered? As it is now it leaks browser URLs + query string + fragments to hn.algolia.com since it queries it on every single page you visit. At the very least it might be good to sanitize the queries by restricting to origin + path?
I’d love if there were different “layers” of meta discussion on top of everything on the web. Every blog and website would have an untold number of communities having discussions that are completely optional for you to view.
Instead of browsing across sites, you’d be browsing across communities seeing the same site.
Fun story. Way back in 2008, I tried to make it exactly that. I worked on figuring a way to inject the reddit comments onto any page. Sadly at the time the JS ecosystem just wasn't mature enough to allow users to log into reddit and safely inject it onto the page.
Disqus existed, but it worked because every page was completely independent. The discussion only existed embedded on the page.
Or, open the comments and then click the title link. Then click back when you’re done reading the article, so you can read the comments. That’s my preferred mobile workflow anyways.
It seems the software productivity has exploded in the agent era. However, do we treat every point of daily experience seriously enough? Do we recognize such pains actively and try to eliminate them (often easy), or just tolerate infinitely?
Open to it. For now I’m going to keep it as a userscript and build out some of the interesting ideas people have suggested here. If it keeps growing, a proper extension would definitely make sense.
The mobile default seems important here: opening the panel collapsed, then preserving its size per site, could keep the first article read predictable while retaining quick access to the discussion.
I've updated to v1.4.5 which now allows you to drag the toggle button anywhere you want on screen, and added the collapsed-by-default behavior on mobile.
That said, in case it helps anyone else, my usual flow is to middle-click (by clicking my mouse wheel) both the link and the comments link which opens each in a new background tab (at least in Chrome). Hopefully that's lower-friction than what you were doing with the two tabs.
I made something slightly similar ~10 years ago where you could embed HN comments in your own site. It was the opposite end of consumer though, for webdevs to embed it.
Note: I took it down when it seemed it could degrade HN quality if people used it as normal comments, but yours is great since it's the opposite target/usage
Is it lame that (especially for super long discussions), I often open a gemini tab and summarize the comments? I like reading HN comment threads, but I often only have a few minutes and just want to get the gist of the reactions from the community for some topic.
The submission is cool because it opens the comments even if you just happen upon some article that also happens to have a HN discussion. That said, when I read the headline I thought the same thing, “uh, right click, open in split view?” When that feature landed in Chrome my first use case was exactly this.
I normalize the URL and use HN's Algolia search API to find an existing story with a matching URL. I don't currently handle multiple HN submissions of the same article; I just use the matching story I find.
That being said, I could see creating a historical snapshot of all the times an article has been submitted and building a blended comments section in the future.
If you use Firefox (and will pardon me plugging my own project), you might be interested in a version of this I made a while ago as a browser extension:
https://github.com/jstrieb/hackernews-button
My project is somewhat different from the userscript in that mine uses Bloom filters to check whether a link has been submitted, whereas this userscript sends every page you visit to the Algolia search API. Using Bloom filters means that there are no external requests unless you actually press the button. My project also doesn't show the comments in a sidebar.
Having a link to past discussions, whether using this userscript or my extension, is useful not only to read the comments for a page you're browsing, but also to find good sites that haven't been submitted yet!
Wouldn't it make sense to have it an extension? Just spontainously (without reading any instructions) I don't understand how to use this or what Userscripts Tamper or Violentmonkey is.
I prefer user scripts as I have to install one extension that can load many plugins (user scripts) instead of having one extension for every tiny website tweak.
Also much easier to glance over what a user script is doing vs. unpacking some extension and then finding the actual business logic in all the wrapper code.
Feature 2 is really useful. When I land on a technical article I know chances are there will be a nice HN discussion, that may sometimes even refute the main point of the article.
Feature 1 is IMO less useful. It just suggests that people are bad at window management. We didn't like overlapping windows and finding them, so we created tabs inside windows. Then we wanted to see two things at the same time, so we created split views inside tabs (Chrome and Firefox both had this). With a good window manager neither would be necessary. Sadly the community prefers to solve this at the application level rather than the desktop level; I'm currently using Forge (https://github.com/forge-ext/forge) but sadly it's becoming unmaintained.
Not sure if I agree about using windows instead of tabs. I have hundreds of tabs open, and dozens loaded, at any moment. I'm sure that it's possible to manage all the context with separate windows via a window manager, but it would have to be a REALLY good window manager to be able to provide equivalent features of tree style tabs and separate panes and whatever else that something like Sidebery provides, and it is always easier for each application developer to implement tabs suitable for that application's requirements.
Do you really need hundreds of open tabs though? To me this suggests a workflow issue rather than a tab management problem.
I only keep tabs open that I'm actively working on right now (or am imminently about to switch back to). I regularly close tabs (and windows for that matter) that are only open because I forgot about them, or that I might use again but not until hours or days later. If I need them later I just open them again.
For me, having hundreds of things open at once just creates clutter that makes it harder to focus.
I think one of the point of the author is making might also be that a window manager could do just more, like managing windows as tabs as well.
So that any application could have tabs, if the desktop manager would allow you to group windows as such. Same with showing a split view within such a tab as well.
I think I agree with that. I could imaging that the browser containers of tabs would make a ton of sense if I could make a container of windows handled as tabs across different applications at the window manager level.
I use Sway and happily manage my terminal windows using its tabs and splits. I can mix other "graphical" apps with the terminals or move them to another screen, all with the same keybindings. I agree, though, that I wouldn't want to replace my Sidebery vertical tabs with this setup, but I ultimately don't see why equivalent functionality couldn't be implemented inside the window manager in some alternate universe.
There are sadly hardly any WMs now with tabs, so having them support tree style tabs as well doesn't look too realistic.
This is slick. 2 things.
1. If you name your script with the extension .user.js it is easier to click on to automatically install at least with tampermonkey. 2. When I went to this link from the main page, on mobile I had to scroll to the right to see the (-) to minimize because the sidebar was too large: https://elizabethtai.com/2026/06/10/substack-writers-you-nee... It may make some sense to start minimized so I can read the article first, but I can easily modify the script to do that.
is this better than using a chrome extension? i guess people need to have tampermonkey installed and so thats a slightly higher barrier to entry? i wonder if chrome would be interested in "sherlocking" userscripts so that we can distribute non security nightmare code easier.
In addition to the advantage of explicitly specified capabilities mentioned by others, I'd say a userscript is also much more durable and low-maintenance than a Chrome extension. This is coming from someone who's written an extension for personal use before, and had to jump through a million hoops with Chrome Dev just to give the browser permission to run my own code that I wrote myself, and that's to say nothing of the whole mess with manifest v3 as well. Throughout the entire time I've been able to happily keep using userscripts written by myself or others with 0 maintenance required.
Mostly transparency. Since this runs across pages you visit (with the sites controlled by the @include/@exclude rules at the top of the script), I like that the entire source is right there and easy to inspect before installing it.
A userscript also let me iterate quickly without dealing with extension packaging and permissions, but being able to see and tweak the code was a big part of the appeal.
Tampermonkey isn't better than using a Chrome extension, but it's less friction for a developer to build and distribute a cross browser script. If they build it as an extension, they need to target multiple browsers and get it deployed to the Firefox/Chrome web store.
If you can read JS and the user script is not huge, I think it makes a huge difference.
Apart from that, there are APIs exclusive to extensions, e.g. instrumenting client-side communication among tabs with different origins, listing all tabs, basically accessing a special API that sits on a higher-level context, and, while gating certain functionality behind user approval, and forbidding other functionality completely (at least in Manifest 3.0), extensions with the corresponding permissions can do more than a script running in the page context. They can inject these as well, though, even overriding CSP sometimes, as far as I know?
The main problem with these permissions, and WebExtension 3.0 partly was an attempt to improve this, or at least claims it: most people give a second of doubt at best when installing an extension, as long as they think it comes from a trusted source.
I love userscripts. Aren't we all using https://github.com/violentmonkey/violentmonkey now though?
thought I realize "if it works it works", https://github.com/Tampermonkey/tampermonkey
I did something similar 2 days ago with ViolentMonkey if you only want to check high-level discussion without any new tabs at all.
https://greasyfork.s3.us-east-2.amazonaws.com/sokzpb2ztmatlh... (screenshot)
https://greasyfork.org/en/scripts/588721-hacker-news-comment...
I'd improve it by counting top level comments next to items but that would slow it down. Still need to make some slight changes like closing sidebar by re-clicking orange (beyond just right-clicking sidebar.)
It's very fast and speeds up thinking overall.
Not on Safari, but I should migrate on Firefox I’ve read (some controversy).
Haven’t seen that before.Userscripts are also less friction for the user. At least for some level of triviality.
I would say only go for extensions over userscript if you need a settings menu (or any of the APIs the sibling comment mentions).
Firefox has a new Split View that's useful for this, but you still have to left click and select open in split view (M) then click the link. You also used to be able on some browsers to craft a link that was href="tab1.html|tab2.html", no idea if that's still a thing or if it was limited to "home page" setting.
Vivaldi has included split view for years (called tiles). You can also right click a link and choose open in follower tab. This lets all links clicked in one tile open in another tile. I use this regularly on HN.
I accidentally closed Firefox’s last “you’ve just updated” screen which probably mentioned Split View. Couldn’t re-open it. It’s not this https://www.firefox.com/en-US/firefox/153.0.1/releasenotes/ , know if it’s mirrored?
It looks like it was added in 149
https://support.mozilla.org/en-US/kb/split-view-firefox
Thanks for the tip. Didn't know this was added.
I generally open the HN comment link, then click the article link, read it, then click back to read the comments.
I'll see if this split view feature works better for me though, but I think I'd prefer a horizontal split instead of vertical.
Yeah Firefox split view is useful for this.
If any of those vim extensions support link+split, and allow interaction with splits that would be even better.
Left click?
Maybe they have their mouse in their left hand and reversed main and secondary button?
alt/option-clicking on the desired tab works too
Have you considered modifying it to trigger on every HNews click as well as with as manually triggered? As it is now it leaks browser URLs + query string + fragments to hn.algolia.com since it queries it on every single page you visit. At the very least it might be good to sanitize the queries by restricting to origin + path?
Yep, looking into it.
https://github.com/twalichiewicz/HNewhere/issues/2
This is how reddit supposed to be. A universal comment box for del.icio.us
I’d love if there were different “layers” of meta discussion on top of everything on the web. Every blog and website would have an untold number of communities having discussions that are completely optional for you to view.
Instead of browsing across sites, you’d be browsing across communities seeing the same site.
Fun story. Way back in 2008, I tried to make it exactly that. I worked on figuring a way to inject the reddit comments onto any page. Sadly at the time the JS ecosystem just wasn't mature enough to allow users to log into reddit and safely inject it onto the page.
Disqus existed, but it worked because every page was completely independent. The discussion only existed embedded on the page.
I don't understand the problem space. Meaning I don't understand what this solves.
My use case, even on phone:
View HN
Right click link to open in new tab OR: tap/hold a link then open I a new window.
What problem is this solving?
Or, open the comments and then click the title link. Then click back when you’re done reading the article, so you can read the comments. That’s my preferred mobile workflow anyways.
This is great and is also something that I've always had an issue with.
What I do now is open the HN comments, and then when I'm ready to look at the link + comments, right-click on the title and Open in Split View.
I made an extension that does exactly this a while ago
https://chromewebstore.google.com/detail/hacker-news-saved-y...
I also wrote a Monkey script to save clicks when reading papers: just embed PDF webview into the Arxiv abstract page. https://github.com/OneMoreSecond/FileSave/blob/master/arxiv_...
It seems the software productivity has exploded in the agent era. However, do we treat every point of daily experience seriously enough? Do we recognize such pains actively and try to eliminate them (often easy), or just tolerate infinitely?
I made an extension that opens both tabs for you and thus far has a whopping 6 users!
https://chromewebstore.google.com/detail/hacker-news-saved-y...
I think the amount of upvotes you’re getting here suggests that it might be worth building a proper browser extension for this!
Would you be interested in making one?
Open to it. For now I’m going to keep it as a userscript and build out some of the interesting ideas people have suggested here. If it keeps growing, a proper extension would definitely make sense.
Rather than making hn extension, maybe you could contribute to https://oj-hn.com/ / https://github.com/OrangeJuiceExtension/OrangeJuice I use it and find it to be great, would love to see this in it! :)
Makes sense. You can also iterate faster without the hassle of getting your extension approved on the chrome store, etc.
The mobile default seems important here: opening the panel collapsed, then preserving its size per site, could keep the first article read predictable while retaining quick access to the discussion.
I modified the script to start collapsed. Code is in this issue if you would like to try it: https://github.com/twalichiewicz/HNewhere/issues/5
(Replying to both of you)
I've updated to v1.4.5 which now allows you to drag the toggle button anywhere you want on screen, and added the collapsed-by-default behavior on mobile.
This is cool. Don't want to minimize that.
That said, in case it helps anyone else, my usual flow is to middle-click (by clicking my mouse wheel) both the link and the comments link which opens each in a new background tab (at least in Chrome). Hopefully that's lower-friction than what you were doing with the two tabs.
I made something slightly similar ~10 years ago where you could embed HN comments in your own site. It was the opposite end of consumer though, for webdevs to embed it.
https://news.ycombinator.com/item?id=12898366
Note: I took it down when it seemed it could degrade HN quality if people used it as normal comments, but yours is great since it's the opposite target/usage
Is it lame that (especially for super long discussions), I often open a gemini tab and summarize the comments? I like reading HN comment threads, but I often only have a few minutes and just want to get the gist of the reactions from the community for some topic.
yes, a bit.
Probably better than rushing the top comment only.
I just open the HN post and then open the article. That way I can simply go back to the comments after reading the article, whenever that may be.
Nice. I’ve been using the new split tabs in Chrome. Works perfectly. I believe Firefox had this first?
The submission is cool because it opens the comments even if you just happen upon some article that also happens to have a HN discussion. That said, when I read the headline I thought the same thing, “uh, right click, open in split view?” When that feature landed in Chrome my first use case was exactly this.
Phew, thought I was the only one doing that. I thought I was missing some core site feature lol.
This is pretty cool! It had never crossed my mind that everyone else is doing the same two tab thing that I'm doing.
Haha, this is so cool and can't believe I didn't think about it. I've been opening 2 tabs per HN link on my phone since forever!
Nice idea ! How do you handle duplicates ?
[Assuming you mean duplicate HN submissions]
I normalize the URL and use HN's Algolia search API to find an existing story with a matching URL. I don't currently handle multiple HN submissions of the same article; I just use the matching story I find.
That being said, I could see creating a historical snapshot of all the times an article has been submitted and building a blended comments section in the future.
Blended comments section sounds great! Good work.
Crunched a bit and got a first pass of this working.
https://github.com/twalichiewicz/HNewhere/releases/tag/v1.4....
You can test with https://www.apple.com/iphone/
Chrome has add tab to split view.
So I have to Shift + Alt + n, the search for the HN blog / article in the other tab? If you have a lot of tabs this isn't feasable.
hehe, I opened chatgpt and the little button blocks the three dots
Yeah, I noticed that too. It's mostly because people tend to post ChatGPT outage pages to HN, so the script ends up activating there unfortunately.
I'm working on a fix, but in the meantime you can add `@exclude https://chatgpt.com/*` to the userscript header.
EDIT: Added this to the v1.4.0 release just now.
Thought I was the only one hahaha
I feel ya. I'm always middle clicking twice, story and comments.
This shouldn't be a script (no offense, great job!). It should be built into the browsers!
you might find my extension useful
https://chromewebstore.google.com/detail/hacker-news-saved-y...
For orange juice, on a "selected" story, i made left arrow open the comments and right arrow open the story. bang bang.
currently rocking 666 users... https://oj-hn.com
Very cool!
Now make a user script that blocks posts titled "I was tired of X, so I...".
Instructions were unclear, rewrote this script in Rust then in Zig
Oh, I solved this long time ago by only opening the discussion page, never read tfa, and pretend I did. /s