MCPcopy Index your code
hub / github.com/KarolosLykos/hackertea

github.com/KarolosLykos/hackertea @v0.0.26

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.26 ↗ · + Follow
139 symbols 385 edges 26 files 42 documented · 30%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

💻 Hackertea | Hackernews TUI

A minimal application for browsing Hacker News on the terminal

Go version

Downloads

Build Status

Build Status

Build Status

Stars Forks Issues


A command-line interface (CLI) tool that allows users to browse the Top, New, and Best stories on Hacker News. The tool includes a minimalist text-based user interface (TUI) that is developed using Bubble Tea, Lip Gloss, and Bubble libraries.

Welcome to Hachertea

Installation

Packages

macOS

  • with Homebrew: brew install karoloslykos/tap/hackertea

Binaries

Go

Or just install it with go:

go install github.com/KarolosLykos/hackertea@latest

Build From Source

Or just build it yourself (requires Go 1.1x+):

git clone https://github.com/KarolosLykos/hackertea.git
cd hackertea
go build .

Features

  • Read Top, New and Best stories.
  • Fetch stories concurrently. (You can set the number of workers in the config file)
  • In-memory thread-safe cache for caching news.
  • A shiny UI to gaze your eyes upon.
  • Tabs
  • Separate pagination for each tab
  • Fetch next pages
  • Vim-like movements

Libraries used

  • Bubbletea: The fun, functional and stateful way to build terminal apps.
  • Bubbles: Common Bubble Tea components such as text inputs, viewports, spinners and so on
  • Lip Gloss: Style, format and layout tools for terminal applications

Styling

The default theme is already loaded by default, but the good news is that you have the option to add any theme of your choice! Simply take a look at the "config-example.yaml" file to see the available options.

Welcome to Hachertea

Roadmap

  • [ ] Add more screens
  • [ ] Add Comments screen
  • [ ] Add User profile screen
  • [ ] Add Ask HN screen
  • [ ] Add Jobs screen
  • [ ] Add Changelog
  • [ ] Add additional styling options w/ Examples
  • [ ] Multi-language Support

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

You can open issues for bugs you've found or features you think are missing. You can also submit pull requests to this repository. To get started, take a look at CONTRIBUTING.md

Extension points exported contracts — how you extend this code

HttpClient (Interface)
HttpClient interface that specifies the behavior of an HTTP client. [6 implementers]
internal/client/client.go
Cache (Interface)
Cache is an interface for a cache. [3 implementers]
internal/cache/cache.go
Service (Interface)
(no doc) [3 implementers]
internal/hn/hn.go

Core symbols most depended-on inside this repo

EXPECT
called by 24
internal/mock/hn/mock_hn.go
Get
called by 17
internal/cache/cache.go
GetItem
called by 13
internal/hn/hn.go
Title
called by 8
internal/constants/constants.go
New
called by 7
internal/client/client.go
Get
called by 6
internal/client/client.go
Max
called by 5
internal/utils/utils.go
Min
called by 5
internal/utils/utils.go

Shape

Function 71
Method 38
Struct 26
Interface 3
TypeAlias 1

Languages

Go100%

Modules by API surface

internal/tui/style/style_test.go16 symbols
internal/tui/style/style.go16 symbols
internal/config/config.go11 symbols
internal/mock/hn/mock_hn.go8 symbols
internal/mock/cache/mock_cache.go8 symbols
internal/hn/hn.go8 symbols
internal/cache/cache.go7 symbols
internal/utils/utils.go6 symbols
internal/tui/model/model.go6 symbols
internal/mock/client/mock_client.go6 symbols
internal/item/item.go6 symbols
internal/client/client_test.go6 symbols

For agents

$ claude mcp add hackertea \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact