Skip to main content

An terminal CLI env for Hacker News

Project description

hnterminal

PyPI version

pipx install hnterminal

This CLI tool supports browsing, login, upvote and commenting for full HN experience in the terminal.

Built on top of HN API and replbuilder.

Installation

pipx install hnterminal

$ hnterminal will invoke the terminal command from shell, if pipx installation is in your PATH

You may also run python src/cli.py off current repository.

Usage

The CLI and each of its command have detailed help sections that you can utilize:

help

You can quickly navigate the front page:

front_page

Login and upvote what you like using pointers:

upvote

get_tree use DFS to create a comment tree, you can use this command on any pointer shown. Additionally, -1 pointer is reserved for parent, so you can trace a comment all the way up.

tree_story

Same command used on comments:

tree_comment

You can reply to story or comments utilizing the same pointer, even using an editor to craft your response:

reply_vim

reply_complete

The comment will then show up (the read API will take ~30 seconds to be up to date):

reply_shown

This terminal tool is responsive! and the output will be adjusted to the width of the terminal for everything it displays

responsive browsing

You can also use aliases to shorten most used, repetitive commands:

alias

There are more to this tool, for instance, it has the capability to show user info and history, it enables seamless browsing experience by maintaining a cache which status you can check with cache commands, which you may want to clear from time to time to keep it from going stale if you spend hours in this tool. The ultimate goal is to provide the same HN browsing experience in the terminal.

Usage (No Image)

See a textual demo (color and styles not available via markdown):

aperocky@~$ hnterminal
hnterminal > get_front_page -n 5
POINTER | AUTHOR                   | SCORE | COMMENT | AGE        | BASE URL
1       | Apple: Transformer architecture optimized for Apple Silicon
        | behnamoh                 | 330   | 134     | 3 hours    | github.com
2       | You can't tell people anything (2004)
        | alexslobodnik            | 131   | 53      | 3 hours    | habitatchronicles.com
3       | ChatGPT Plugins
        | bryanh                   | 1393  | 754     | 8 hours    | openai.com
4       | Relativity Space launches first 3D-printed rocket on historic test flight
        | Stevvo                   | 186   | 90      | 9 hours    | www.space.com
5       | I Bought Back My Acquihired Startup
        | mokkol                   | 137   | 41      | 4 hours    | steveridout.com

hnterminal > login USERNAME PASSWORD
Successfully logged in as USERNAME

hnterminal > upvote 4
POINTER 4 is [UPVOTED]

hnterminal > get_tree 4
POINTER -1: PARENT STORY
Relativity Space launches first 3D-printed rocket on historic test flight
2023-03-23 12:28:25
AUTHOR: Stevvo
FULL URL: https://www.space.com/relativity-space-terran-1-test-launch-failure
POINTER/AUTHOR      | COMMENTS
1                   | honestly the most impressive part of relativity space is how young their founder is.
croatiancoder       | 
2023-03-23 12:35:58 | 

2 [UPVOTED]               | Jordan was 22 when they started!!
jessfraz                  | 
2023-03-23 15:14:19       | 

3                               | Damn he’s my age and I’m still a startup engineer while he’s leading rocket
robopsychology                  | engineering lol - what a person!
2023-03-23 18:56:21             | 

4                               | How does a 22 year old get the funding to start something like this?
AnimalMuppet                    | 
2023-03-23 15:53:02             | 

hnterminal > reply_to 1 -e
... opens vim editor ...

EDITOR OUTPUT:
"... whatever you wrote ..."
Comment Published

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hnterminal-0.7.1.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hnterminal-0.7.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file hnterminal-0.7.1.tar.gz.

File metadata

  • Download URL: hnterminal-0.7.1.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for hnterminal-0.7.1.tar.gz
Algorithm Hash digest
SHA256 b1f7527888e451e28cff2cb009309ab960f93d39a10df4aa0729429c863cc9a9
MD5 acb3ee76ca8c1f4fd0ac1c18cf0bd0d4
BLAKE2b-256 5188d7700528a1c0f5d55fcdd9fee7baae22e550414e907fc5ca0d19a7b603dc

See more details on using hashes here.

File details

Details for the file hnterminal-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: hnterminal-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for hnterminal-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2cccbc0525272ac7d8e9102a25fab9f06263ff6b9509fe64320a38bfc5d0496e
MD5 31cb2c3957413a3678a546ce39065c3b
BLAKE2b-256 dc8a158b8be125a1edb3f9b1fe50b49b390ce62d1e33bee183376cb57313899e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page