
Coworker who sees me looking at something in a browser: "Glad you're not busy; I need you to do this, this, this..."
Coworker who sees me staring intently at a command prompt: Backs away, slowly...
Check out the haxor-news discussion in this Hacker News post.
haxor-news brings Hacker News to the terminal, allowing you to view/filter the following without leaving your command line:
haxor-news helps you filter the large number of comments that popular posts generate.
-cu/--comments_unseen-cr/--comments_recent-cq/--comments_query [query]
Job hunting or just curious what's out there? Filter the monthly who's hiring and freelancers post:
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_web_jobs.txt
Combine haxor-news with pipes, redirects, and other command line utilities. Output to pagers, write to files, automate with cron, etc.
haxor-news comes with a handy optional auto-completer with interactive help:

Usage:
$ hn <command> [params] [options]
Optionally, you can enable fish-style completions and an auto-completion menu with interactive help:
$ haxor-news
If available, the auto-completer also automatically displays comments through a pager.
Within the auto-completer, the same syntax applies:
haxor> hn <command> [params] [options]


You can control the ansi colors used for highlighting by updating your ~/.haxornewsconfig file.
Color options include:
'black', 'red', 'green', 'yellow',
'blue', 'magenta', 'cyan', 'white'
For no color, set the value(s) to None.


View the Top, Best, Show, Show, Ask, Jobs, New, and Onion posts.
Usage:
$ hn [command] [limit] # post limit default: 10
Examples:
$ hn top
$ hn show 20

After viewing a list of posts, you can view a post's linked web content by referencing the post #.
The HTML contents of the post's link are formatted for easy-viewing within your terminal. If available, the formatted output is sent to a pager.
See the View in a Browser section to view the contents in a browser instead.
Usage:
$ hn view [#]
Example:
$ hn view 1
$ hn view 8

After viewing a list of posts, you can view a post's comments by referencing the post #.
Examples:
$ hn view 8 -c
$ hn view 8 --comments > comments.txt
If running with the auto-completer, comments are automatically paginated. To get the same pagination without the auto-completer, append | less -r:
$ hn view 8 -c | less -r

Filter comments to expand only those you have not yet seen. Unseen comments are denoted with a [!] and are fully expanded.
Seen comments will be truncated with [...] and will be shown to help provide context to unseen comments.
Examples:
$ hn view 8 -cu
$ hn view 8 --comments_unseen | less -r

Filter comments to expand only those posted within the past 60 minutes.
Older comments will be truncated with [...] and will be shown to help provide context to recent comments.
Examples:
$ hn view 8 -cr | less -r
$ hn view 8 --comments_recent

Filter comments based on a given regular expression query.
Examples:
$ hn view 2 -cq "(?i)programmer" | less -r
$ hn view 2 --comments_regex_query "(?i)programmer" > programmer.txt
Case insensitive regex: (?i)

When filtering comments for unseen, recent, or with regex, non-matching comments are collapsed to provide context. To instead hide non-matching comments, pass the -ch\--comments_hide flag. Hidden comments will be displayed as ..
Example:
$ hn view 8 -cu -ch | less -r

Hacker News hosts a monthly hiring post where employers post the latest job openings.
Usage:
$ hn hiring [regex filter]
Examples:
$ hn hiring ""
$ hn hiring "(?i)JavaScript|Node"
$ hn hiring "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Case insensitive regex: (?i)

To search a different monthly hiring post other than the latest, use the hiring post id.
Usage:
$ hn hiring [regex filter] [post id]
Hacker News hosts a monthly freelancers post where employers and freelancers post availabilities.
Usage:
$ hn freelancer [regex filter]
Examples:
$ hn freelancer ""
$ hn freelancer "(?i)JavaScript|Node"
$ hn freelancer "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt
Case insensitive regex: (?i)

To search a different monthly hiring post other than the latest, use the hiring post id.
Usage:
$ hn freelancer [regex filter] [post id]
Output to pagers, write to files, automate with cron, etc.
Examples:
$ hn view 1 -c | less
$ hn freelancer "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt

Usage:
$ hn user [user id]

Usage:
$ hn onion [limit] # post limit default: all

View the linked web content or comments in your default browser instead of your terminal.
Usage:
$ hn <command> [params] [options] -b
$ hn <command> [params] [options] --browser
haxor-news has been tested on Windows 10.
Pager support on Windows is more limited as discussed in the following ticket. Users can direct output to a pager with the | more command:
$ hn view 1 -c | more
On Windows, the .haxornewsconfig file can be found in %userprofile%. For example:
C:\Users\dmartin\.haxornewsconfig
cmder and conemuAlthough you can use the standard Windows command prompt, you'll probably have a better experience with either cmder or conemu.
haxor-news is hosted on PyPI. The following command will install haxor-news:
$ pip install haxor-news
You can also install the latest haxor-news from GitHub source which can contain changes not yet pushed to PyPI:
$ pip install git+https://github.com/donnemartin/haxor-news.git
If you are not installing in a virtualenv, run with sudo:
$ sudo pip install haxor-news
Once installed, run the optional haxor-news auto-completer with interactive help:
$ haxor-news
Run commands:
$ hn <command> [params] [options]
It is recommended that you install Python packages in a virtualenv to avoid potential issues with dependencies or permissions.
To view haxor-news virtualenv installation instructions, click here.
There is a known issue with Apple and its included python package dependencies (more info at https://github.com/pypa/pip/issues/3165). We are investigating ways to fix this issue but in the meantime, to install haxor-news, you can run:
$ sudo pip install haxor-news --upgrade --ignore-installed six
If you're interested in contributing to haxor-news, run the following commands:
$ git clone https://github.com/donnemartin/haxor-news.git
$ pip install -e .
$ pip install -r requirements-dev.txt
$ haxor-news
$ hn <command> [params] [options]
Continuous integration details are available on Travis CI.
Dependencies management details are available on Gemnasium.
Run unit tests in your active Python environment:
$ python tests/run_tests.py
Run unit tests with tox on multiple Python environments:
$ tox
Source code documentation will soon be available on Readthedocs.org. Check out the source docstrings.
Run the following to build the docs:
$ scripts/update_docs.sh
Contributions are welcome!
Review the Contributing Guidelines for details on how to:
Feel free to contact me to discuss any issues, questions, or comments.
My contact info can be found on my GitHub page.
$ claude mcp add haxor-news \
-- python -m otcore.mcp_server <graph>