Hntui: Έλεγαντός TUI για την περιήγηση στο Hacker News από το τερματικό
Πρωτότυπος τίτλος: "Show HN: Hntui – A TUI for Hacker News" (από ahmd-sh)
Το hntui είναι ένα ταχύ και ελαφρύ terminal user interface που επιτρέπει την περιήγηση σε όλες τις κατηγορίες του Hacker News με υποστήριξη vim‑ πλοήγησης, ποντικιού και θεμάτων. Χτίζεται πάνω στην βιβλιοθήκη OpenTUI και χρησιμοποιεί το Bun για τη δημιουργία αυτόνομων δυαδικών αρχείων για macOS και Linux. Η εφαρμογή αποθηκεύει τα αποθηκευμένα άρθρα σε ένα JSON αρχείο στο ~/.config/hntui/saved.json και προσφέρει ενημερώσεις μέσω εντολής hntui update.
Εγκατάσταση και πρώτη εκκίνηση
Το hntui διανέμεται ως αυτόνομο δυαδικό αρχείο που δεν έχει εξαρτήσεις. Η προτεινόμενη μέθοδος είναι η εκτέλεση του install.sh:
curl -fsSL https://raw.githubusercontent.com/ahmd-sh/hntui/main/install.sh | sh
Το binary τοποθετείται στο ~/.local/bin/hntui. Εναλλακτικά, μπορείτε να το κατεβάσετε απευθείας από τη σελίδα Releases ή να το εγκαταστήσετε με Bun:
bun add -g @ahmd-sh/hntui
Μετά την εγκατάσταση, η εντολή hntui ξεκινά την εφαρμογή. Η έξοδος γίνεται με q ή Ctrl‑C.
Κύρια χαρακτηριστικά και πληκτρολογίες
Η διεπαφή είναι οργανωμένη σε καρτέλες που αντιπροσωπεύουν τις šέστες φeed του Hacker News. Η βασική πλοήγηση ακολουθεί τις συνήθεις vim‑προσαρμογές:
j/↓καιk/↑για κίνηση curseurs.ggκαιGγια salto στην πρώτη ή τελευταία εγγραφή.Ctrl‑D/Ctrl‑UκαιPgDown/PgUpγια κύλιση μισής σελίδας.cήEnterγια άνοιγμα του επιλεγμένου άρθρου και εμφάνιση των σχολίων.h/←καιl/→για μετάβαση μεταξύ καρτελών.1‑6για άμεσο salto σε συγκεκριμένη κατηγορία.sγια αποθήκευση/αποαποθήκευση του επιλεγμένου άρθρου (εμφανίζεται αστέρι).Sγια άμεσο salto στην λίστα αποθηκευμένων.oγια άνοιγμα του URL στον προεπιλεγμένο περιηγητή.rγια ανανέωση του τρέχον φeed.tγια εναλλαγή μεταξύ του σκούρου και του φωτεινού θέματος.
Στην οθόνη λεπτομερειών (σχόλια) τα ίδια πλήκτρα ελέγχουν το curseurs των σχολίων, ενώ το Space συμπτύγει/εκτείνει το τρέχον δέντρο απαντήσεων. Το ποντίκι υποστηρίζει prácticamente όλες τις ενέργειες: κλικ σε καρτέλα για αλλαγή feed, διπλό κλικ σε σώμα σχολίου για popup συνδέσμων, δεξί κλικ σε άρθρο για context menu (Save, Open URL, Open Comments).
Αρχιτεκτονική και εξάρτηματα
Το hntui χτίζεται πάνω στην βιβλιοθήκη OpenTUI, η οποία παρέχει το βασικό framework για δημιουργία TUIs με υποστήριξη truecolor, UTF‑8 και ποντικιού. Ο κώδικας γραμμένοι σε TypeScript και μεταγλωττίζεται με το Bun, το οποίο επιτρέπει την παραγωγή αυτόνομων δυαδικών αρχείων μέσω της εντολής bun build --compile. Αυτό σημαίνει ότι το τελικό binary δεν απαιτεί Node.js ή Bun στο σύστημα‑στόχο· είναι αυτόνομο.
Τα δεδομένα vengono estratti από το δημόσιο Firebase API του Hacker News. Η εφαρμογή κάνει HTTP GET requests προς τα endpoints /topstories.json, /newstories.json κ.λπ., και στη συνέχεια λήπτει τα στοιχεία κάθε ID με /item/<id>.json. Η διαχείριση του state είναι τοπική (in‑memory) με caching των τελευταίων φeed για να αποφευχθούν περιττές αιτήσεις κατά την ταχεία πλοήγηση.
Θέματα, αποθήκευση και μελλοντική εξέλιξη
Το hntui προσφέρει δύο ενσωματωμένα θέματα: ένα σκούρο με πορτοκαλιά accents και ένα φωτεινό που μιμείται την εμφάνιση του news.ycombinator.com (λευκό φόντο, πορτοκαλιά κίναρα, beige highlight σε γραμμές, κλασικό γκρι byline). Η εναλλαγή γίνεται με το πλήκτρο t.
Οι αποθηκευμένες αναρτήσεις συγχωνεύονται σε ένα αρχείο JSON (~/.config/hntui/saved.json) που είναι ανθρώπιμη‑αναγνώσιμη και αντιστοιχεί σε μια λίστα IDs. Η μονόπατη λειτουργία s αλλάζει την κατάσταση étoile και ενημερώνει το αρχείο.real‑time.
Οι προγραμματιστές μπορούν να συνεισφέρουν κλonadoν το repository, να τρέξουν bun install και bun dev για hot reload während της development. Η διαδικασία κυκλοφορίας είναι αυτοματοποιημένη μέσω δύο GitHub Actions:
- Ένα workflow που cross‑compile τα binaries για macOS (ARM64) και Linux (x64/ARM64), τα δοκιμάζει στο live API και τα προσθέτει σε μια.release.
- Ένα άλλο workflow που δημοσιεύει το πακέτο
@ahmd-sh/hntuiστο npm με OIDC‑based trusted publishing και SLSA provenance.
Αυτό το μοντέλο εξασφαλίζει ότι οι χρήστες λαμβάνουν πάντα ενημερωμένα, αποδοτικά binaries χωρίς να χρειάζεται να διαχειρίζονται εξαρτήσεις.
Ανακαλύψτε καινοτόμα open-source εργαλεία και κρυμμένα διαμάντια ανοιχτού κώδικα.