← Back to the library

REPOProductivity

AI News Picker: the 3 to 5 AI stories worth reading, picked by plain code

The picking rules behind this site's AI news. It reads official AI feeds, Hacker News and GitHub, scores every story with rules you can read, and keeps the best three to five. No AI model needed.

WHAT YOU’LL GET

A short daily AI news list for your site, newsletter or team chat that keeps working when your AI tool is down.

WHO IT’S FOR

Anyone who wants daily AI news without reading fifty sources, and builders who want a feed for their own site.

DIFFICULTY

Intermediate

TIME

About 10 minutes

WORKS WITH

Any AI chat

Get the full file

The whole resource as one Markdown file for your notes or your AI workspace.

FREEOpen on GitHub

What it fixes

There are fifty places to read about AI every morning, and much of what they post is a reseller repeating a launch, a hype headline, or yesterday's story again. You want the three to five things that actually matter, with a link to the original.

AI News Picker does that with plain code. It reads the official update lists (feeds) that AI companies publish, plus Hacker News and GitHub. It gives every story a score you can read line by line, and keeps the best three to five. No AI model is needed to pick. If you have one, it can tidy the titles, and when it is down the picks still go out in the source's own words.

I built it this way after my old news job depended on an AI model. The day the model hit its limit, nothing was posted and nothing said why.

How it works: collect from feeds, Hacker News and GitHub, score every story, skip repeats, mark down resellers, keep three to five, optionally polish the titles
How it works: collect from feeds, Hacker News and GitHub, score every story, skip repeats, mark down resellers, keep three to five, optionally polish the titles

How to use it

Run it once. With Node.js 20 or newer installed, one command gives you today's picks as a small data file (JSON, a simple text format for lists) and a preview page:

npx --yes github:Rebelzxr/ai-news-picker --explain --html

This command matches the repo's README, checked 30 Sep 2026. The repo is public under the MIT licence, so it runs on any machine with Node.js.

The preview page from a real run: five picks, each with its source, date and a short summary
The preview page from a real run: five picks, each with its source, date and a short summary

See why each story ranked. The --explain part prints the top 20 scores split into their parts: how well the story fits your audience, how much attention it is getting, how fresh it is, launch words, and any penalty for hype or noise. Nothing is hidden inside a model.

Real explain output from 23 Sep: each story's score split into parts such as fit, momentum, freshness and launch, then the five picks
Real explain output from 23 Sep: each story's score split into parts such as fit, momentum, freshness and launch, then the five picks

Tune it to your readers. The words it looks for live in a settings file. Download your own copy:

curl -O https://raw.githubusercontent.com/Rebelzxr/ai-news-picker/main/config.json

Open it and add words like "WhatsApp", "SME" or "Malaysia" to the fit list, keeping the ones already there. Then try it without saving anything:

npx --yes github:Rebelzxr/ai-news-picker --config config.json --dry-run --explain

The explain output shows exactly what moved. Without --dry-run, a second run on the same day skips, because that day's file already exists.

We ran exactly these two steps on 30 Sep 2026 with Node.js 22: the download worked, and the dry run finished with five picks (two releases, one Hacker News story, two repos) and wrote nothing.

Add your own finds. Saw a great newsletter link or X post? Put it in a small file shaped like the repo's examples/extra-candidates.json and pass it with --extra. It gets scored with everything else, not pinned to the top. X posts only count when they are about AI and come from the accounts listed under trustedHandles in your settings.

Run it every morning. The repo includes an example schedule for GitHub that runs at 07:30 Malaysia time and commits each day's file to your repo. Your site, newsletter or team chat reads that file. There is also an optional --webhook that sends the day file to an address you set. Decide these on purpose: approve before you switch on a schedule that commits to your repo, a webhook, or anything that posts the picks where the public or your team will see them.

The rules it follows

  • The maker beats the reseller: the official launch post scores higher than a gateway announcing the same model, and one story gets one slot.
  • No repeats: any link used in the last 14 days is skipped. Matching the same story across different links only works for model names (Claude, GPT, Gemini and a few others), so the README warns that two posts about the same non-model story can both get picked.
  • Summaries come from the source's own description, and a dead link drops the pick.
  • If a model rewrites a title and adds a new number or hype that the source did not have, the rewrite is thrown away.

Start in about 10 minutes

  1. Install Node.js 20 or newer.
  2. Run the first command above and open the preview page it writes.
  3. Download config.json, add a few words to fit, and run the --config ... --dry-run --explain command to see the difference.
  4. When you like the picks and have decided where they will appear, copy the example schedule into your own GitHub repo, commit your config.json next to it, and add --config config.json to the schedule's run line so your words are used every morning. Check the first few scheduled days yourself before anyone else reads them.

What it will not do

  • Feeds change. If a company moves its feed, that source goes quiet; the run log shows each source's count so you can spot it.
  • Scoring uses word lists. A clever title can slip past, and keyword stuffing can fool it. The explain output is there so you can check.
  • It does not read X by itself. X needs a login or a paid API, so X posts come in through --extra.

Where I use it

The AI news page on this site uses the same method, but not this package's code. Its news job is a separate script in the site's own repo, with its own source list. Since 29 Sep 2026 it is set up in GitHub Actions, scheduled for 07:30 Malaysia time with board refreshes during the day, and that cloud job runs without an AI model polishing titles. This public version collects from open sources so it runs on any machine.