Transform your RSS feed into an intelligent information hub
An advanced, self-deployed AI companion for Miniflux. While others just summarize, this project provides a robust pipeline to translate, analyze, and curate your information diet.
Built from the ground up for stability and data integrity.
Unlike tools that overwrite content or clutter articles with raw text, this project uses Semantic HTML Markers.
- Data Safety: Original article content is never modified, only appended to.
- Idempotency: Agents can be re-run safely without duplicating content.
- Clean UI: AI outputs are injected as clean, styled HTML components.
More than just a summary. The digest engine generates a structured briefing where every insight is verifiable:
- Topic Clustering: Intelligently groups related news (e.g., "AI Breakthroughs", "Global Markets").
- Citation Backlinks: Every point includes clickable references linking directly to the source article.
- Deduplication: Automatically filters out duplicate stories across different feeds.
Don't waste API credits on empty updates or image-only posts.
- Smart Skip: Ignores entries that are too short or lack meaningful text content.
- Token-Based Thresholds: Define minimum length using
tiktokencounts. This ensures fair filtering for both concise languages (like Chinese) and verbose ones (like English), avoiding processing of low-value entries.
Designed to handle thousands of unread entries efficiently.
- Global Thread Pool: A singleton executor manages system resources to prevent overloads.
- Pagination: Fetches entries in batches to manage memory usage.
- Retry Logic: Built-in handling for network jitters and API rate limits.
You are not limited to "Summary" and "Translation". Define custom agents in your config to extract exactly what you need.
Example: The "Market Analyst" Agent Want to find trading signals in tech news?
agents:
analyst:
prompt: "Analyze this article for potential stock market impacts. Bullish or Bearish?"
template: '<div class="insight-box">📈 <strong>Market Impact:</strong> {content}</div>'
allow_list: ["*bloomberg.com*", "*techcrunch.com*"]Example: The "TL;DR" Agent Just want 3 bullet points?
agents:
tldr:
prompt: "Give me 3 bullet points."
template: '<div class="tldr">📝 {content}</div>'Configure as many agents as you want. They run in sequence and stack beautifully.
The easiest way to get started. We provide a complete docker-compose.yml that sets up Miniflux, the database, and the AI service together.
# 1. Clone the repository
git clone https://github.com/serpicroon/miniflux-ai.git
cd miniflux-ai
# 2. Configure your environment
cp config.sample.English.yml config.yml
# Edit config.yml with your API keys and preferences
# 3. Start the services
docker-compose up -ddocker run -d \
--name miniflux-ai \
-v $(pwd)/config.yml:/app/config.yml \
ghcr.io/serpicroon/miniflux-ai:latestInstead of reading a long wiki, please refer to the extensively commented sample files:
- config.sample.English.yml - Recommended starting point.
- config.sample.Chinese.yml - Chinese version with localized prompts.
Key capabilities you can tweak:
- Per-Agent Filters: Only run "Translate" on foreign sites? Easy.
- Digest Schedule: Morning coffee or evening review? You decide.
- HTML Templates: Customize exactly how the AI output looks in your reader.
Go to Miniflux Settings → Integrations → Webhook and set:
- Url:
http://miniflux-ai/api/miniflux-ai(use container name) - Secret: Match the
webhook_secretin yourconfig.yml
Once running, the system will automatically create a new feed in your Miniflux named "Minifluxᴬᴵ Digest for you". Just wait for your first scheduled digest to arrive!
Filters (Allow/Deny lists) not working?
The filters use Glob patterns (like wildcards), NOT Regex.
- ✅
*github.com*(Correct) - ❌
.*github\.com.*(Incorrect)
Webhook not triggering?
- Ensure the Miniflux container can reach the
miniflux-aicontainer (they should be in the same Docker network). - Verify the webhook secret matches in both places.
MIT License — see LICENSE for details.