Everything you need to get the most out of feedctl. Start here, and you'll be curating like a power user in minutes.
feedctl is designed to work out of the box. On first launch, you'll see a terminal-style boot sequence as the AI engine initializes. Once that completes, you're ready to go.
Every article in your queue has an affinity score — a number that represents how closely it matches your demonstrated interests. This isn't keyword matching; feedctl uses semantic vector embeddings to understand the meaning of the text.
Here's what happens under the hood:
The score you see on each article (e.g. 0.73) is attraction from your upvotes minus a
weighted repulsion from your downvotes. Articles scoring below the affinity floor (default
0.2) are parked in a separate below-floor pool and never appear in the main
queue — so your daily reading stays dense.
When you clear the above-floor queue, feedctl shows a
QUEUE ZERO celebration with a show low-scoring articles button if anything is
waiting in the pool. You can tune the floor in Settings.
feedctl learns exclusively from your explicit votes. It never silently monitors your scroll position, dwell time, or tap patterns. If you didn't vote on it, it didn't happen.
The model starts to feel dialed-in after about 20 real votes. Of course, the more you vote, the more accurate recommendations you'll receive!
Tapping an article in your queue opens the detail view. It's structured top to bottom so you can skim, commit, or dig in without hunting for controls.
Loading full article…
indicator on first open, then the full prose. The expanded text is also re-embedded and fed back into
the scoring engine, so the score sharpens as you actually read.
▲ UPVOTE,
▼ DOWNVOTE, >> SAVE, and > OPEN. Voting trains the
model (see §3); SAVE pins the article; OPEN hands off to Safari.
Most AI readers hide the ranking logic. feedctl shows you the math and the narrative, so when a surprise article lands at the top of your queue you can always trace why.
feedctl supports standard RSS and Atom feeds, plus Reddit subreddits as a first-class source. You can add feeds in two ways:
For Reddit, use the standard subreddit RSS format:
https://www.reddit.com/r/subredditname/.rss
feedctl acts as a read-only Reddit reader — it parses rich Markdown, full-resolution images, and data tables. Posting, commenting, and voting on Reddit are not supported.
feedctl's core scoring engine works on any supported device — the CoreML model runs via Core ML on all iPhones with an A-series chip or later. However, some advanced features use Apple's on-device large language model and require iOS 26+ on an Apple Intelligence-compatible device. You can check if Apple Intelligence is enabled in the left-drawer (INTEL: AVAILABLE / NOT AVAILABLE)
| Feature | What it does | Requires |
|---|---|---|
| Scoring & ranking | Core ML vector embeddings, cosine scoring, queue ranking | iOS 17+ |
| Full-text extraction | Fetches the full article body from truncated feeds | iOS 17+ |
| "Why this article?" | Plain-English explanation of why an article scored the way it did | iOS 26+, Apple Intelligence |
| TLDR summaries | 2–4 bullet-point summary generated from the article body | iOS 26+, Apple Intelligence |
| Smart cluster labels | Natural-language labels for grouped topics in your queue | iOS 26+, Apple Intelligence |
If your device doesn't support Apple Intelligence, feedctl gracefully falls back to heuristic-based alternatives. You still get the full scoring engine — the LLM features are a bonus layer, not a requirement. The exception is TLDR, which requires Apple Intelligence and has no fallback
feedctl ships with four handcrafted themes based on the Catppuccin color system, each designed for extended reading sessions:
Curious why an article scored high or low? Scroll down to the Score Breakdown section in article detail. On iOS 26+ devices, feedctl will explain the scoring breakdown in plain English. On older devices, you'll see the raw similarity scores against your vote history.