Skip to main content

Hacker News + Reddit + lobste.rs terminal feed viewer

Project description

grokfeed

Terminal feed reader for Hacker News, Reddit, lobste.rs, and GitHub Trending.

License: MIT PyPI version Python versions GitHub release CI codecov

Features

  • Unified scrollable feed from HN, Reddit subreddits, lobste.rs, and GitHub Trending
  • Color-coded by source: HN orange, lobste.rs red, GitHub green, subreddits in a cycling palette
  • Read text posts and Ask HN inline — no browser needed
  • Split view with post body / repo stats and threaded comments or README side by side
  • Filter feed by source, refresh on demand, paginate with m
  • Keyword search with /, copy URL with y, mark seen posts dimmed automatically
  • Config file at ~/.grokfeed/config.toml — created automatically on first run

Install

Homebrew (macOS/Linux)

brew tap emarkou/grokfeed
brew install grokfeed

pip

pip install grokfeed

pipx (isolated install)

pipx install grokfeed

From source

Requires Python 3.11+.

git clone https://github.com/emarkou/grokfeed.git
cd grokfeed
pip install -e .

On first run, a config file is created at ~/.grokfeed/config.toml. Edit it to change subreddits:

nano ~/.grokfeed/config.toml
subreddits = ["programming", "ClaudeAI", "machinelearning"]
hn_story_count = 30
reddit_post_count = 15
lobsters_post_count = 25
github_trending_count = 25
# github_trending_language = "python"   # filter by language (optional)
# github_trending_since = "daily"       # daily | weekly | monthly
cache_ttl_minutes = 10

Run grokfeed — changes take effect on next launch or press r to refresh.

Demo

Demo

Key bindings

Main feed

Key Action
j / Move down
k / Move up
Enter Open post + comments split view
f Cycle source filter (All → HN → r/sub → lobste.rs → GitHub → …)
m Load more stories
r Refresh all sources
y Copy story URL to clipboard
/ Keyword search
q Quit

Split view

Key Action
j / Scroll down
k / Scroll up
Tab Switch between post/stats and comments/README pane
o Open URL in browser
q / Esc Close

Config

~/.grokfeed/config.toml — created on first run with defaults.

Key Default Description
subreddits ["programming", "python", "machinelearning"] Subreddits to include
hn_story_count 30 HN stories per fetch
reddit_post_count 15 Posts per subreddit per fetch
lobsters_post_count 25 lobste.rs posts per fetch
github_trending_count 25 GitHub trending repos per fetch
github_trending_language "" Filter by language (e.g. "python"), empty = all
github_trending_since "daily" Trending window: daily, weekly, or monthly
cache_ttl_minutes 10 Minutes before refreshing cache

Tech stack

Library Role
Textual TUI framework
httpx Async HTTP client
Click CLI entry point

Related posts:

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

grokfeed-0.6.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

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

grokfeed-0.6.0-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file grokfeed-0.6.0.tar.gz.

File metadata

  • Download URL: grokfeed-0.6.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grokfeed-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4926b0f9c75e282e61fcb638cc812b3a8c4fef37980d8feae90a2492cc3160d5
MD5 60c4dd3e96e1690f532281dc071f89e4
BLAKE2b-256 f66211508335720db3acca76647e67099d5d062c4059d2fd3a4106e4c393a134

See more details on using hashes here.

Provenance

The following attestation bundles were made for grokfeed-0.6.0.tar.gz:

Publisher: release.yml on emarkou/grokfeed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file grokfeed-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: grokfeed-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for grokfeed-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98ab3d650dd2d5c2655c5dc94fc95ac63d7b3cc6013572d060922e6c2b549e28
MD5 a27c5fbcedc3346c16faf07c3cab5c42
BLAKE2b-256 a0e42cb1f083c0ae39006c7fc7f698470fcb11acc4fa3c85d97d45307204171b

See more details on using hashes here.

Provenance

The following attestation bundles were made for grokfeed-0.6.0-py3-none-any.whl:

Publisher: release.yml on emarkou/grokfeed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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