{"id":13447632,"url":"https://github.com/plibither8/refined-hacker-news","last_synced_at":"2025-04-12T23:29:19.081Z","repository":{"id":38361683,"uuid":"174383593","full_name":"plibither8/refined-hacker-news","owner":"plibither8","description":"✨ Hacker News, but refined — Interface tweaks and features to make the HN experience better","archived":false,"fork":false,"pushed_at":"2023-10-04T18:28:57.000Z","size":1711,"stargazers_count":819,"open_issues_count":43,"forks_count":35,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-04T02:08:27.909Z","etag":null,"topics":["browser-extension","chrome-extension","firefox-addon","hacker-news","hacktoberfest","hn","ycombinator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plibither8.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"plibither8","patreon":"plibither8","custom":["https://paypal.me/plibither8","https://www.buymeacoffee.com/plibither8"]}},"created_at":"2019-03-07T16:42:44.000Z","updated_at":"2025-03-15T05:57:58.000Z","dependencies_parsed_at":"2024-01-07T11:05:12.862Z","dependency_job_id":null,"html_url":"https://github.com/plibither8/refined-hacker-news","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plibither8%2Frefined-hacker-news","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plibither8%2Frefined-hacker-news/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plibither8%2Frefined-hacker-news/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plibither8%2Frefined-hacker-news/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plibither8","download_url":"https://codeload.github.com/plibither8/refined-hacker-news/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248646802,"owners_count":21139075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-extension","chrome-extension","firefox-addon","hacker-news","hacktoberfest","hn","ycombinator"],"created_at":"2024-07-31T05:01:22.958Z","updated_at":"2025-04-12T23:29:19.057Z","avatar_url":"https://github.com/plibither8.png","language":"JavaScript","funding_links":["https://github.com/sponsors/plibither8","https://patreon.com/plibither8","https://paypal.me/plibither8","https://www.buymeacoffee.com/plibither8","https://www.patreon.com/plibither8"],"categories":["JavaScript","chrome-extension"],"sub_categories":[],"readme":"# \u003cimg src=\"src/icon.png\" width=\"45\" align=\"left\"\u003e Refined Hacker News\n\n[link-cws]: https://chrome.google.com/webstore/detail/gcibdgjaladjjloeocimnijdgopejkfk \"Version published on Chrome Web Store\"\n[link-amo]: https://addons.mozilla.org/en-US/firefox/addon/refined-hacker-news/ \"Version published on Mozilla Add-ons\"\n\n[![Licence](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)](LICENSE)\n[![Chrome Web Store](https://img.shields.io/chrome-web-store/users/gcibdgjaladjjloeocimnijdgopejkfk.svg?label=chrome%20users\u0026style=flat-square)][link-cws]\n[![Mozilla Add-on](https://img.shields.io/amo/users/refined-hacker-news.svg?label=firefox%20users\u0026style=flat-square)][link-amo]\n![Made with love in India](https://madewithlove.now.sh/in?heart=true\u0026colorB=%23ff701f\u0026template=flat-square)\n\n\u003e ✨ Browser extension that adds useful features and tweaks a few stuff on [Hacker News](https://news.ycombinator.com) to make the experience better... without changing the look and feel.\n\nThe minimalist design of Hacker News is best at offering news the way we like it. Yet there are a few small interface tweaks and additional features that can drastically improve our experience while browsing through items and comments which this extension implements.\n\nHopefully, in due course, a few of these tweaks can be implemented by Hacker News themselves. You can help too by emailing [hn@ycombinator.com](mailto:hn@ycombinator.com)!\n\n_Inspired by [Sindre Sorhus](https://github.com/sindresorhus)'s extension [Refined GitHub](https://github.com/sindresorhus/refined-github)._\n\n## Contents\n\n- [Contents](#contents)\n- [Install](#install)\n- [Highlights](#highlights) - [Added features](#added-features) - [UI tweaks](#ui-tweaks) - [More actions](#more-actions) - [More info at a glance](#more-info-at-a-glance) - [Miscellaneous](#miscellaneous) - [Keyboard bindings](#keyboard-bindings) - [On items and comments](#on-items-and-comments) - [On input fields](#on-input-fields) - [Site-wide navigation](#site-wide-navigation) - [Abandoned features](#abandoned-features)\n- [Customization and Options](#customization-and-options)\n- [Contribute](#contribute)\n- [Donate](#donate)\n- [Extension Permissions](#extension-permissions)\n- [License](#license)\n\n## Install\n\n- [**Chrome** extension][link-cws] [\u003cimg valign=\"middle\" src=\"https://img.shields.io/chrome-web-store/v/gcibdgjaladjjloeocimnijdgopejkfk.svg?label=%20\"\u003e][link-cws]\n- [**Firefox** add-on][link-amo] [\u003cimg valign=\"middle\" src=\"https://img.shields.io/amo/v/refined-hacker-news.svg?label=%20\"\u003e][link-amo]\n- **Opera** extension: Use [this Opera extension](https://addons.opera.com/en/extensions/details/download-chrome-extension-9/) to install the Chrome version.\n\n## Highlights\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003cth width=\"50%\"\u003e\n\t\t\tReply to comments without leaving page\n\t\t\u003c/th\u003e\n\t\t\u003cth width=\"50%\"\u003e\n\t\t\tNavigate through items and comments using your keyboard\n\t\t\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\u003c!-- Prevent zebra stripes --\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\n\t\t\t\u003ccenter\u003e\u003cimg src=\"assets/demos/reply-same-page.gif\"\u003e\u003c/center\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd\u003e\n\t\t\t\u003ccenter\u003e\u003cimg src=\"assets/demos/keyboard-nav.gif\"\u003e\u003c/center\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003cth width=\"50%\"\u003e\n\t\t\tEasily \u003ci\u003efavorite\u003c/i\u003e items and comments\n\t\t\u003c/th\u003e\n\t\t\u003cth width=\"50%\"\u003e\n\t\t\tHide and sort stories, and auto-refresh the page from the options bar\n\t\t\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\u003c!-- Prevent zebra stripes --\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\n\t\t\t\u003ccenter\u003e\u003cimg src=\"assets/demos/favorite.gif\"\u003e\u003c/center\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd\u003e\n\t\t\t\u003ccenter\u003e\u003cimg src=\"assets/demos/options-bar.gif\"\u003e\u003c/center\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003cth width=\"50%\"\u003e\n\t\t\tShow user or item information when hovering over the links\n\t\t\u003c/th\u003e\n\t\t\u003cth width=\"50%\"\u003e\n\t\t\tHighlight new, unread comments on subsequent visits\n\t\t\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\u003c!-- Prevent zebra stripes --\u003e\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\n\t\t\t\u003ccenter\u003e\u003cimg src=\"assets/demos/user-item-hover.gif\"\u003e\u003c/center\u003e\n\t\t\u003c/td\u003e\n\t\t\u003ctd\u003e\n\t\t\t\u003ccenter\u003e\u003cimg src=\"assets/demos/highlight-unread-comments.png\"\u003e\u003c/center\u003e\n\t\t\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n### Added features\n\n- [**`reply-without-leaving-page`**](src/features/reply-without-leaving-page.js) Reply to a comment, edit and delete your comment just below the parent comment, without leaving the page.\n- [**`auto-refresh`**](src/features/auto-refresh.js) _Options bar:_ Auto-refresh stories on the page periodically, after a fixed interval, without reloading the page.\n- [**`hide-read-stories`**](src/features/hide-read-stories.js) _Options bar:_ Hide/show stories already opened by you.\n- [**`sort-stories`**](src/features/sort-stories.js) _Options bar:_ Sort stories basis of their score, age, or by their default rank.\n- [**`fetch-submission-title-from-url`**](src/features/fetch-submission-title-from-url.js) When submitting an item, get the title of the page of the URL entered.\n- [**`list-hn-polls-separately`**](src/features/list-hn-polls-separately.js) Show _HN Polls_ on a separate page (like _Show HN_, _Ask HN_, etc). Linked on topbar: [https://news.ycombinator.com/#polls](https://news.ycombinator.com/#polls).\n- [**`prefill-submit-title`**](src/features/prefill-submit-title.js) Prefill submission title field with \"Show HN: \" or \"Ask HN: \" when 'Submit' link is accessed/clicked from _Show HN_ or _Ask HN_ pages.\n- [**`past-choose-date`**](src/features/past-choose-date.js) Choose a custom date in `/front` to go back to that date.\n\n### UI tweaks\n\n- [**`change-dead-comments-color`**](src/features/change-dead-comments-color.js) If \"showdead\" is enabled in user settings, color of dead comments changes to light-red (`#d89899`) instead of the barely visible light-grey (`#dddddd`).\n- [**`comments-ui-tweaks`**](src/features/comments-ui-tweaks.js) Tweaks include:\n  - Add border to indentation to make to show indent separation between comments.\n  - Custom indent-width (default is 40px), which can be set using the extension popup.\n  - Highlight item's original poster, displayed as `[op]` next to username.\n  - Make `\u003cpre\u003e\u003c/pre\u003e` tags more visible.\n- [**`highlight-unread-comments`**](src/features/highlight-unread-comments.js) Highlight new and unread comments after your second and subsequent visits to the comments page of an item. Data resets after three days.\n- [**`backticks-to-monospace`**](src/features/backticks-to-monospace.js) Convert backticks-wrapped (\\`like this\\`) inline text to monospace (`like this`).\n- [**`linkify-user-about`**](src/features/linkify-user-about.js) Linkify all links and emails IDs that are on the \"about\" of the user's profile.\n\n### More actions\n\n- [**`key-bindings-on-items`**](src/features/key-bindings-on-items.js) Enable key bindings on items and comments to improve navigation and item/comment-related actions. [Go to mappings](#on-items-and-comments).\n- [**`key-bindings-on-input-fields`**](src/features/key-bindings-on-input-fields.js) Enable key bindings/shortcuts on input fields. [Go to mappings](#on-input-fields).\n- [**`site-navigation-key-bindings`**](src/features/site-navigation-key-bindings) Universal, site-wide key bindings/shortcuts to quickly navigate to a page (eg. Home, Show HN, Threads etc.). [Go to mappings](#site-wide-navigation).\n- [**`more-accessible-favorite`**](src/features/more-accessible-favorite.js) Add a 'favorite' button next to items and comments to quickly _favorite_ them. Go to `https://news.ycombinator.com/favorites?id=\u003cyour-username\u003e` to view favorite-d items.\n- [**`more-accessible-flag`**](src/features/more-accessible-flag.js) Add a 'flag' button next to comments to quickly _flag_ them.\n- [**`archive-submission`**](src/features/archive-submission.js) Add \"archive\" button at the top of the comments page of a submission to view the archived version of the story's webpage or archive the webpage to the Wayback Machine.\n- [**`click-comment-indent-to-toggle`**](src/features/click-comment-indent-to-toggle.js) Click indentation of the comment (on the left of it) to toggle (show/hide) that comment.\n- [**`click-rank-to-vote-unvote`**](src/features/click-rank-to-vote-unvote.js) Increase hit-area of upvote button by clicking the rank number of the item to upvote it too.\n- [**`open-story-links-in-new-tab`**](src/features/open-story-links-in-new-tab.js) Open items in a new tab, instead of the same tab.\n- [**`preview-and-set-top-bar-color`**](src/features/preview-and-set-top-bar-color.js) Quickly \"test\" topbar colors and set them on [https://news.ycombinator.com/topcolors](https://news.ycombinator.com/topcolors). _Note: you must have 250+ karma to set a custom topcolor_.\n- [**`toggle-all-comments-and-replies`**](src/features/toggle-all-comments-and-replies.js) Clickable button to toggle all comments on the page, or all replies to a certain comment.\n\n### More info at a glance\n\n- [**`load-more-links-in-navbar`**](src/features/load-more-links-in-navbar.js) Click \"load more\" on the topbar/nav bar to show more links.\n- [**`profile-links-dropdown`**](src/features/profile-links-dropdown.js) Show profile-specific pages in a dropdown when clicking your username on the top-right of the page, instead of directly opening the the profile page.\n- [**`show-item-info-on-hover`**](src/features/show-item-info-on-hover.js) Hover over a Hacker News item link in the comments to quickly display the item's details.\n- [**`show-similar-submissions`**](src/features/show-similar-submissions.js) List all HN submissions that are duplicates/have been posted before with the same URL, at the bottom of the comments.\n- [**`show-top-leaders-karma`**](src/features/show-top-leaders-karma.js) Load and show karma of the top-ten leaders on [HN's leaderboard](https://news.ycombinator.com/leaders) (not shown by default).\n- [**`show-user-info-on-hover`**](src/features/show-user-info-on-hover.js) Hover over a Hacker News user link next to item or in the comments to quickly display the users's details.\n\n### Miscellaneous\n\n- [**`input-field-tweaks`**](src/features/input-field-tweaks.js) Tweaks include:\n  - Show how many characters are left in the 'title' field when submitting an item.\n  - Increase width of 'title' field dynamically.\n  - Increase height of any textareas (even those that are dynamically created), dynamically.\n- [**`on-link-focus-comment`**](src/features/on-link-focus-comment.js) Navigate to that specific comment when clicking the 'on: ' link.\n\n---\n\n### Keyboard bindings\n\n#### On items and comments\n\n_On items/stories:_\n\n| Key-binding                                                | Action                                                                |\n| ---------------------------------------------------------- | --------------------------------------------------------------------- |\n| \u003ckbd\u003eJ\u003c/kbd\u003e                                               | Next item (down)                                                      |\n| \u003ckbd\u003eK\u003c/kbd\u003e                                               | Previous item (up)                                                    |\n| \u003ckbd\u003eEnter\u003c/kbd\u003e \u003cbr\u003e \u003ckbd\u003eCtrl/Cmd\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e | Open link and focus tab \u003cbr\u003e Open link in the background              |\n| \u003ckbd\u003eEsc\u003c/kbd\u003e                                             | Un-highlight item                                                     |\n| \u003ckbd\u003eU\u003c/kbd\u003e                                               | Upvote item                                                           |\n| \u003ckbd\u003eF\u003c/kbd\u003e                                               | Favorite item                                                         |\n| \u003ckbd\u003eC\u003c/kbd\u003e \u003cbr\u003e \u003ckbd\u003eCtrl/Cmd\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e         | Open item's comments on same tab \u003cbr\u003e Open item's comments on new tab |\n| \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eX\u003c/kbd\u003e                              | Flag/unflag item                                                      |\n| \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eH\u003c/kbd\u003e                              | Hide item                                                             |\n\n_On comments:_\n\n| Key-binding                                     | Action                                                                                |\n| ----------------------------------------------- | ------------------------------------------------------------------------------------- |\n| \u003ckbd\u003eJ\u003c/kbd\u003e \u003cbr\u003e \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eJ\u003c/kbd\u003e | Next comment (down) \u003cbr\u003e Next direct sibling comment                                  |\n| \u003ckbd\u003eK\u003c/kbd\u003e \u003cbr\u003e \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eK\u003c/kbd\u003e | Previous comment (down) \u003cbr\u003e Previous direct sibling comment                          |\n| \u003ckbd\u003eEnter\u003c/kbd\u003e                                | Toggle comment                                                                        |\n| \u003ckbd\u003eEsc\u003c/kbd\u003e                                  | Un-highlight comment                                                                  |\n| \u003ckbd\u003eU\u003c/kbd\u003e                                    | Upvote/unvote comment                                                                 |\n| \u003ckbd\u003eD\u003c/kbd\u003e                                    | Downvote/undown comment                                                               |\n| \u003ckbd\u003eR\u003c/kbd\u003e                                    | Reply to comment                                                                      |\n| \u003ckbd\u003eF\u003c/kbd\u003e                                    | Favorite comment                                                                      |\n| \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eX\u003c/kbd\u003e                   | Flag/unflag comment                                                                   |\n| \u003ckbd\u003e0\u003c/kbd\u003e to \u003ckbd\u003e9\u003c/kbd\u003e                    | Open numbered/index reference link in the comment \u003cbr\u003e Eg: `[1] https://mihir.ch ...` |\n\n#### On input fields\n\n| Key-binding                          | Action                                                       |\n| ------------------------------------ | ------------------------------------------------------------ |\n| \u003ckbd\u003eCtrl/Cmd\u003c/kbd\u003e+\u003ckbd\u003eEnter\u003c/kbd\u003e | Submit form                                                  |\n| \u003ckbd\u003eCtrl/Cmd\u003c/kbd\u003e+\u003ckbd\u003eI\u003c/kbd\u003e     | Italicise selected portion (wrap selected text in asterisks) |\n\n#### Site-wide navigation\n\n| Key-binding                 | Action  |\n| --------------------------- | ------- |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eH\u003c/kbd\u003e | Home    |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eS\u003c/kbd\u003e | Submit  |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eN\u003c/kbd\u003e | New     |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eO\u003c/kbd\u003e | Show HN |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eA\u003c/kbd\u003e | Ask HN  |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eP\u003c/kbd\u003e | Profile |\n| \u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003eT\u003c/kbd\u003e | Threads |\n\n---\n\n### Abandoned features\n\n- `blur-story-scores`\n- `custom-font-face`\n- `hide-bad-words`\n- `load-more-stories`\n- `scale-font-size`\n- `show-karma-left`\n\n## Customization and Options\n\nExtension options can be found in the extension's popup. There, you can\n\n- specify which features you want to disable by entering features' IDs (listed above), preferably listed on new lines\n- specify custom CSS, which is useful to override CSS implemented by this extension, or any other UI tweaks you prefer.\n\n## Contribute\n\nIssues and feature requests can be created on the [issues page](https://github.com/plibither8/refined-hacker-news/issues).\n\nFor development contribution, please refer to the [contribution guide](./CONTRIBUTING.md).\n\n## Donate\n\nRefined Hacker News was made by me during my study-breaks and free time. If you like and have enjoyed it, please consider donating a small amount (any amount will be really appreciated!) to support and sustain its development. Thank you!\n\n[![Patreon](https://img.shields.io/badge/Become%20a-patreon-orange.svg?style=for-the-badge\u0026logo=patreon)](https://www.patreon.com/plibither8)\n\n[![Donate](https://img.shields.io/badge/donate-PayPal-blue.svg?style=for-the-badge\u0026logo=paypal)](https://paypal.me/plibither8)\n\n[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/purple_img.png)](https://www.buymeacoffee.com/plibither8)\n\n## Extension Permissions\n\nNo data is ever uploaded to a remote server, or is sent anywhere else. All data that is used by this extension is stored locally.\n\n**`storage`** Required to save extension options in `sync` storage area so that your options are synced across devices. Also used to save other data such as list of read comments (`highlight-unread-comments`) locally.\n\n**`history`** Required for `hide-read-stories` feature. The feature needs to check whether the story has been visited by you in the past, that is, whether that story is in your history.\n\n**`tabs`** Required to open a link in a new tab, but in the background. Also required to send and receive data between the extension popup, background scripts and the active Hacker News tabs.\n\n**`*://news.ycombinator.com/*`** Required to fetch subpages, submit forms, inline replies, etc.\n\n**`*://hacker-news.firebaseio.com/v0/*`** Hacker News API - required to fetch `item` and `user` details.\n\n**`*://title.mihir.ch/*`** Required by the `fetch-submission-title-from-url` feature to fetch the title. _Source: [plibither8/url-title-api](https://github.com/plibither8/url-title-api)_.\n\n**`*://wayback.now.sh/`** Required by `archive-submission` to view archived version of webpage or save the webpage to the Wayback Machine. _Source: [plibither8/wayback](https://github.com/plibither8/wayback)_.\n\n**`*://hn.algolia.com/*`** Required by `show-simillar-submission` and `list-hn-polls-separately` features to get filtered search results.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplibither8%2Frefined-hacker-news","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplibither8%2Frefined-hacker-news","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplibither8%2Frefined-hacker-news/lists"}