Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

βš™οΈ πŸ—ž

The easiest way to get your daily hourly Hacker News dosage!

Uptime Robot status Uptime Robot ratio (7 days) GitHub GitHub stars
HKKRIN usage gif

Usage β€’ Hyperlinks β€’ Contributing β€’ ToDo

HKKR.IN - cURL client for Hacker News | Product Hunt is a Curl client for Hacker News

I spend a lot of time in the terminal, and also lots of time on HN, so I made to make viewing HN in the terminal simple and accessible from any computer, not just ones that have HN CLI programs installed. I was inspired by the which does a similar thing for the weather and for moon phases

If you want, you can donate to the project using the Sponsor button(at the top near the star and fork buttons), or by visiting this link. Tips will go towards hosting


Use curl to get similar info in the terminal

To get the top ten posts, run curl

A single result might look like this

1.  Bitwarden raises $100M
βž₯    β–΄646 ➀ (

It shows the title, votes, link to the discussion, and the domain of the url. Use the link on the bottom ( to visit that articles page on HN

You can pass some parameters to your request to alter the output(some parameters accept numbers as options, like curl

Parameter Function
n(number) Number of results to show(max 100)
m(number) Max width of titles
f(number) Url mode [0:, 1: HN, 2: Article Url]
a Show all stories(max 100)
h Show https:// in story urls
u Ignore user-agent
l Use hyperlinks(requires modern terminal)

seperate parameters with a dash curl

Use the l parameter to enable modern terminal hyperlinks supports modern terminal emulator hyperlinks. By default, hyperlinks have a small underline present, which is is visually distracting. You can disable it, though the configurations are dependant on your specific terminal emulator. Here are instructions for Iterm2, and you can probably find similar config settings for your terminal.


Want to help out? If you have any ideas, bugs, or suggestions, please open an issue here

If you want to help develop the project, feel free to open a pull request. When you run npm start the program will listen on port 3050, which you can change with the PORT variable in app.js

I wrote most of the code here quickly and its not the greatest. I may come in and refactor some of it in the future.


Some planned features

  • Check user agent to serve an html version in the browser (redirects to github right now)
  • Option to disable ANSI escapes in case a terminal emulator doesent support them
  • Show date on posts(EG: 4 days ago)
  • Option to sort by date
  • Option to make{ID} links go directly to url not discussion
// Thanks for using