Side Projects
Terminal News: Headlines, Votes and Weather in Your Terminal

Part 2 of the thread App experiments
- What it is
- Terminal app
- My role
- Creator
- Year
- 2025
- Built with
- Go
- PostgreSQL
- WebSockets
- Docker
- Terminal News is a text-only news reader for the terminal: community-voted headlines, comment threads, local classifieds and NOAA weather.
- It's three Go programs: a backend API, a scraper that pulls RSS and news APIs, and the CLI you actually read in.
- The README still says planning phase. The code has moved past that, but nothing's been released and the changelog versions are all TBD.
- Payments, sponsorships and moderation are on the roadmap, not finished.
Most news sites fight you. Autoplay video, a cookie banner, three newsletter pop-ups and an infinite scroll designed so you never actually finish. If you already live in a terminal, it's fair to wonder what news would look like there: no images, monospace everything, ranked by people instead of an engagement algorithm.
terminal-news is that experiment. The tagline in the README is "AM Radio for the Information Age," and the pitch is CNN meets Reddit meets Craigslist, all in your command line.
What it's meant to be
There are three ideas bundled together. News, ranked by votes. Community, meaning comments and voting. And local, meaning weather and classifieds for where you live.
The feeds work the way you'd expect from a link aggregator:
| Feed | What it shows |
|---|---|
| Hot | The most liked articles |
| Controversial | High engagement, mixed votes |
| Rising | Stories picking up fast |
| My Activity | Your own comments and votes |
The voting is a little different from a plain up and down. Opening an article counts +1, a like counts +2 and a dislike counts -1, so just reading something nudges it up a bit. Weather comes from NOAA and stays on screen the whole time. The look is meant to be old-school terminal, which is a vibe I've chased before with WeatherStar 4000 on a Raspberry Pi.
How it's built
The repo is three Go modules plus a shared one for models:
- backend: an API server with handlers for articles, auth, votes, comments, classifieds, weather and payments, plus middleware for auth, rate limiting and security. A WebSocket hub pushes updates to connected clients, and a scheduler runs background jobs.
- scraper: pulls articles from RSS feeds and a news API, then runs them through a classifier, a deduplicator and a moderation step before storing them. It also fetches weather.
- cli: the reader itself, with views for the article list, article detail, comment tree, a classifieds form, a weather panel and a help screen. It has a local cache and its own mock server for testing without the backend.
PostgreSQL holds everything, with two SQL migrations for the schema, triggers and functions. There are Docker Compose files for dev and production and a CI workflow.
Tip
The CLI ships with a mock server under
cli/cmd/mockserver, so you can work on the terminal UI without standing up the database and backend first.
Getting it
Clone it and follow the setup doc:
git clone https://github.com/wesellis/terminal-news.git
cd terminal-news
SETUP.md and DEVELOPER_QUICK_START.md walk through the rest, and there are Makefiles at the root and in the cli and scraper folders.
Rough edges
The README says the project is in planning and architecture, and the changelog agrees: every version from 0.1.0 to 0.5.0 is marked TBD. The file tree has clearly moved past pure planning, since there's a real backend, scraper and CLI in there. But nothing's released, and I wouldn't promise the three pieces run together cleanly today.
A few other things worth knowing:
- The root
go.modstill uses a placeholder module path,github.com/yourusername/terminal-news. - The
cliandscraperfolders are cluttered with status and handoff notes from development sessions. They need a cleanup pass. - The README mentions Redis for ranking, but I don't see it wired in yet.
Heads up
The payments handler exists, but the changelog puts premium listings, Stripe and sponsorships in 0.4.0. Treat the money side as a sketch.
What's next
The changelog is really the roadmap. First a working MVP with the hot feed, voting, auth and weather. Then comments and the Controversial and Rising feeds. Classifieds with moderation after that. If you like seeing where other app ideas in this thread ended up, DataChart went big and FlowDrive never left the spec.