Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Browse, read, and manage Miniflux feed articles. Use when Claude needs to work with RSS/atom feeds via Miniflux - listing unread/new articles, reading article content, marking articles as read, and managing feeds/categories. Provides CLI access with flexible output formats (headlines, summaries, full content).
.claude/skills/sundial-org-miniflux/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-21 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 3% | 0% |
Browse, read, and manage Miniflux RSS/atom feed articles through a CLI.
bash# List unread articles (brief format) uv run scripts/miniflux-cli.py list --status=unread --brief # Get article details uv run scripts/miniflux-cli.py get 123 # Mark articles as read uv run scripts/miniflux-cli.py mark-read 123 456 # Show article statistics (word count, reading time) uv run scripts/miniflux-cli.py stats --entry-id=123
Configuration precedence (highest to lowest):
--url, --api-keyMINIFLUX_URL, MINIFLUX_API_KEY~/.local/share/miniflux/config.json (auto-created on first run)bash# Option 1: Environment variables (recommended for agents) export MINIFLUX_URL="https://miniflux.example.org" export MINIFLUX_API_KEY="your-api-key" # Option 2: CLI flags (one-time, saves to config) uv run scripts/miniflux-cli.py --url="https://miniflux.example.org" --api-key="xxx" list
List articles with optional filtering.
bash# Unread articles (brief) uv run scripts/miniflux-cli.py list --status=unread --brief # From specific feed with summary uv run scripts/miniflux-cli.py list --feed=42 --summary # Search with limit uv run scripts/miniflux-cli.py list --search="python" --limit=10 # Starred articles uv run scripts/miniflux-cli.py list --starred
Flags:
--status={read,unread,removed} - Filter by status--feed=ID - Filter by feed ID--category=ID - Filter by category ID--starred - Show only starred--search=QUERY - Search articles--limit=N - Max number of entries--offset=N - Skip first N chars in content--content-limit=N - Max characters per article-b, --brief - Titles only-s, --summary - Title + excerpt-f, --full - Full content (default)--json - JSON output--plain - Single-line per entryFetch a single article with content control.
bash# Full article uv run scripts/miniflux-cli.py get 123 # First 2000 characters uv run scripts/miniflux-cli.py get 123 --limit=2000 # Read from character 1000 to 2000 (pagination) uv run scripts/miniflux-cli.py get 123 --offset=1000 --limit=1000
When content is truncated, shows: [...truncated, total: N chars]
Mark one or more articles as read.
bash# Single article uv run scripts/miniflux-cli.py mark-read 123 # Multiple articles uv run scripts/miniflux-cli.py mark-read 123 456 789
Mark one or more articles as unread.
bashuv run scripts/miniflux-cli.py mark-unread 123
List all configured feeds.
bash# Human-readable uv run scripts/miniflux-cli.py feeds # JSON format uv run scripts/miniflux-cli.py feeds --json
List all categories.
bashuv run scripts/miniflux-cli.py categories
Show unread counts or article statistics.
bash# Article statistics (word count, character count, reading time) uv run scripts/miniflux-cli.py stats --entry-id=123 # Global unread counts per feed uv run scripts/miniflux-cli.py stats
Trigger feed refresh.
bash# Refresh all feeds uv run scripts/miniflux-cli.py refresh --all # Refresh specific feed uv run scripts/miniflux-cli.py refresh --feed=42
Convenient alias for list --search.
bashuv run scripts/miniflux-cli.py search "rust" uv run scripts/miniflux-cli.py search "ai" --status=unread --brief
--brief / -b - Quick overview (titles + feed + date)--summary / -s - Title + content preview (200 chars)--full / -f - Complete article content (default)--json - Raw JSON output for machine processing--plain - Single-line per entry (tab-separated)For articles with large content (e.g., >5k words):
bash uv run scripts/miniflux-cli.py stats --entry-id=123 Shows word count, character count, reading time.
bash # First 5000 chars uv run scripts/miniflux-cli.py get 123 --limit=5000
# Next 5000 chars (chars 5000-10000) uv run scripts/miniflux-cli.py get 123 --offset=5000 --limit=5000
bash # Get stats to determine word count uv run scripts/miniflux-cli.py stats --entry-id=123
# If >5000 words, delegate to subagent for summarization
The CLI provides helpful error messages:
MINIFLUX_API_KEYlist to browse-v, --version - Show version-q, --quiet - Suppress non-error output-d, --debug - Enable debug output--no-color - Disable colored output--url=URL - Miniflux server URL--api-key=KEY - Miniflux API keybash# Check what's unread uv run scripts/miniflux-cli.py list --status=unread --brief # Read interesting articles uv run scripts/miniflux-cli.py get 456 # Mark as read uv run scripts/miniflux-cli.py mark-read 456
bash# Search for specific topics uv run scripts/miniflux-cli.py search "machine learning" --summary # Get full article content uv run scripts/miniflux-cli.py get 789
bash# Get all unread as JSON for processing uv run scripts/miniflux-cli.py list --status=unread --json # Mark multiple as read uv run scripts/miniflux-cli.py mark-read 123 456 789
For complete help on any subcommand:
bashuv run scripts/miniflux-cli.py <subcommand> --help
Other measured skills in the registry, with their headline benchmark lift.