https://github.com/donnemartin/haxor-news Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} donnemartin / haxor-news Public * Notifications * Fork 168 * Star 3.5k * Browse Hacker News like a haxor: A Hacker News command line interface (CLI). View license 3.5k stars 168 forks Star Notifications * Code * Issues 32 * Pull requests 5 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 3 branches 8 tags Code Latest commit @donnemartin donnemartin Fix #224: Update latest monthly hiring post ids (#226) ... 71d51b9 Nov 9, 2020 Fix #224: Update latest monthly hiring post ids (#226) 71d51b9 Git stats * 662 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time haxor_news Fix #224: Update latest monthly hiring post ids (#226) Nov 9, 2020 scripts Update release scripts (#122) Jan 14, 2018 tests Disable integration tests that rely on a network connection Apr 13, 2019 .gitignore Include lib in .gitignore Mar 5, 2016 .haxornewsconfig Refactor config code Mar 19, 2016 .travis.yml Update tox Python versions (#189) Aug 8, 2019 CHANGELOG.md Update CHANGELOG badges (#123) Jan 21, 2018 CHANGELOG.rst Update CHANGELOG badges (#123) Jan 21, 2018 CHECKLIST.md Update release checklist (#124) Jan 26, 2018 CONTRIBUTING.md Fix style guide link in CONTRIBUTING.md May 18, 2016 INSTALLATION.md Add instructions to install with Nix (#113) Oct 15, 2017 LICENSE.txt Add license disclaimer (#97) May 13, 2017 README.md Update Python versions (#190) Aug 24, 2019 appveyor.yml Add Appveyor support. Nov 21, 2015 codecov.yml Fix codecov ignore list Oct 11, 2016 requirements-dev.txt Add pexpect dev req Mar 5, 2016 setup.py Update Python versions (#190) Aug 24, 2019 tox.ini Update tox Python versions (#189) Aug 8, 2019 View code [ ] haxor-news Index General Features Installation and Tests Misc Syntax Auto-Completer and Interactive Help Customizable Highlighting Commands View Posts View a Post's Linked Web Content View and Filter a Post's Comments View All Comments Paged Comments Filter on Unseen Comments Filter on Recent Comments Filter with Regex Hide Non-Matching Comments Filter the Monthly Hiring Post Filter the Freelancers Post Combine With Pipes and Redirects View User Info View Onions View in a Browser Windows Support Pager Support Config File cmder and conemu Installation Pip Installation Virtual Environment Installation Mac OS X 10.11 El Capitan Users Supported Python Versions Supported Platforms Developer Installation Continuous Integration Unit Tests and Code Coverage Documentation Contributing Credits Contact Info License README.md Imgur Build Status PyPI version PyPI License haxor-news 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... -Source 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: * Posts * Post Comments * Post Linked Web Content * Monthly Hiring and Freelancers Posts * User Info * Onions haxor-news helps you filter the large number of comments that popular posts generate. * Want to expand only previously unseen comments? + -cu/--comments_unseen * How about recent comments posted in the past 60 minutes? + -cr/--comments_recent * Filter comments matching a regex query? + -cq/--comments_query [query] Imgur 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: Imgur Index General * Syntax * Auto-Completer and Interactive Help * Customizable Highlighting * Commands Features * View Posts * View a Post's Linked Web Content * View and Filter a Post's Comments + View All Comments + Filter on Unseen Comments + Filter on Recent Comments + Filter with Regex + Hide Non-Matching Comments * View and Filter the Monthly Hiring Post * View and Filter the Monthly Freelancer Post * Combine With Pipes and Redirects * View User Info * View Onions * View Results in a Browser * Windows Support Installation and Tests * Installation + Pip Installation + Virtual Environment Installation + Supported Python Versions + Supported Platforms * Developer Installation + Continuous Integration + Unit Tests and Code Coverage + Documentation Misc * Contributing * Credits * Contact Info * License Syntax Usage: $ hn [params] [options] Auto-Completer and Interactive Help 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 [params] [options] Imgur Imgur Customizable Highlighting 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. Imgur Commands Imgur View Posts View the Top, Best, Show, Ask, Jobs, New, and Onion posts. Usage: $ hn [command] [limit] # post limit default: 10 Examples: $ hn top $ hn show 20 Imgur View a Post's Linked Web Content 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 Imgur View and Filter a Post's Comments View All Comments 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 Paged Comments 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 Imgur Filter on Unseen Comments 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 Imgur Filter on Recent Comments 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 Imgur Filter with Regex 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) Imgur Hide Non-Matching Comments 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 Imgur Filter the Monthly Hiring Post 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) Imgur To search a different monthly hiring post other than the latest, use the hiring post id. Usage: $ hn hiring [regex filter] [post id] Filter the Freelancers Post Hacker News hosts a monthly freelancers post where employers and freelancers post availabilities. Usage: $ hn freelance [regex filter] Examples: $ hn freelance "" $ hn freelance "(?i)JavaScript|Node" $ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt Case insensitive regex: (?i) Imgur To search a different monthly hiring post other than the latest, use the hiring post id. Usage: $ hn freelance [regex filter] [post id] Combine With Pipes and Redirects Output to pagers, write to files, automate with cron, etc. Examples: $ hn view 1 -c | less $ hn freelance "(?i)(Node|JavaScript).*(remote)" > remote_jobs.txt Imgur View User Info Usage: $ hn user [user id] Imgur View Onions Usage: $ hn onion [limit] # post limit default: all Imgur View in a Browser View the linked web content or comments in your default browser instead of your terminal. Usage: $ hn [params] [options] -b $ hn [params] [options] --browser Windows Support haxor-news has been tested on Windows 10. Pager Support 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 Config File On Windows, the .haxornewsconfig file can be found in %userprofile%. For example: C:\Users\dmartin\.haxornewsconfig cmder and conemu Although you can use the standard Windows command prompt, you'll probably have a better experience with either cmder or conemu. Installation Pip Installation PyPI version PyPI 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 [params] [options] Virtual Environment Installation 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. Mac OS X 10.11 El Capitan Users 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 Supported Python Versions * Python 2.6 * Python 2.7 * Python 3.3 * Python 3.4 * Python 3.5 * Python 3.6 * Python 3.7 Supported Platforms * Mac OS X + Tested on OS X 10.10 * Linux, Unix + Tested on Ubuntu 14.04 LTS * Windows + Tested on Windows 10 Developer Installation 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 [params] [options] Continuous Integration Build Status Continuous integration details are available on Travis CI. Unit Tests and Code Coverage Run unit tests in your active Python environment: $ python tests/run_tests.py Run unit tests with tox on multiple Python environments: $ tox Documentation 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 Contributing Contributions are welcome! Review the Contributing Guidelines for details on how to: * Submit issues * Submit pull requests Credits * click by mitsuhiko * haxor by avinassh * html2text by aaronsw * python-prompt-toolkit by jonathanslenders * requests by kennethreitz Contact Info Feel free to contact me to discuss any issues, questions, or comments. My contact info can be found on my GitHub page. License I am providing code and resources in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code and resources is from me and not my employer (Facebook). License Copyright 2015 Donne Martin Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. About Browse Hacker News like a haxor: A Hacker News command line interface (CLI). Topics python windows macos linux shell cli client utility programming terminal hacker-news utilities developer-tools hacker-news-reader hacker-news-client Resources Readme License View license Stars 3.5k stars Watchers 56 watching Forks 168 forks Releases 4 0.4.2 Latest Apr 9, 2017 + 3 releases Packages 0 No packages published Used by 19 * @yonderbread * @jmatias * @illacceptanything * @Matts966 * @lepisma * @terror * @YazzyYaz * @MorganGeek + 11 Contributors 10 * @donnemartin * @cyblue9 * @pahakalle * @dtzWill * @aviddiviner * @thoo * @ReadmeCritic * @jashgala * @mehandes * @raghav-ys Languages * Python 99.7% * Shell 0.3% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.