- 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 withy, mark seen posts dimmed automatically - Config file at
${XDG_CONFIG_HOME:-~/.config}/devskim/config.toml— created automatically on first run
brew tap emarkou/devskim
brew install devskimpip install devskimpipx install devskimRequires Python 3.11+.
git clone https://github.com/emarkou/devskim.git
cd devskim
pip install -e .On first run, a config file is created at $XDG_CONFIG_HOME/devskim/config.toml (defaults to ~/.config/devskim/config.toml). Edit it to change subreddits:
nano "${XDG_CONFIG_HOME:-~/.config}/devskim/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 = 10Run devskim — changes take effect on next launch or press r to refresh.
| 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 |
| 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 |
$XDG_CONFIG_HOME/devskim/config.toml (default: ~/.config/devskim/config.toml) — created on first run with defaults. If ~/.devskim exists and the XDG path does not, the legacy location is used automatically.
| 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 |
theme |
"auto" |
Color theme: auto (detect terminal), dark, light, or any Textual theme name (nord, dracula, solarized-light, …) |
browser |
"" |
Browser command for opening URLs (e.g. "firefox", "open -a Safari"). Empty = system default |
| Library | Role |
|---|---|
| Textual | TUI framework |
| httpx | Async HTTP client |
| Click | CLI entry point |
Related posts:

