CLI Usage
Command-line interface for managing feeds
CLI Usage
The aiwebfeeds CLI provides commands for enrichment, OPML generation, and statistics.
Installation
# From project root
uv sync
uv pip install -e apps/cliQuick Start
# 1. Enrich feeds from feeds.yaml
uv run aiwebfeeds enrich all
# 2. Generate OPML files
uv run aiwebfeeds opml all
uv run aiwebfeeds opml categorized
# 3. View statistics
uv run aiwebfeeds stats show
# 4. Generate filtered OPML
uv run aiwebfeeds opml filtered data/nlp-feeds.opml --topic nlp --verifiedCommands
enrich - Enrich Feed Data
Enrich feeds with metadata, discover feed URLs, validate formats, and save to database.
# Enrich all feeds
uv run aiwebfeeds enrich all
# Custom paths
uv run aiwebfeeds enrich all \
--input data/feeds.yaml \
--output data/feeds.enriched.yaml \
--schema data/feeds.enriched.schema.json \
--database sqlite:///data/aiwebfeeds.db
# Preview enrichment for one feed
uv run aiwebfeeds enrich one <feed-id>What it does:
- Discovers feed URLs from site URLs (if
discover: true) - Detects feed format (RSS, Atom, JSONFeed)
- Validates feed accessibility
- Saves to:
feeds.enriched.yaml- Enriched YAML with all metadatafeeds.enriched.schema.json- JSON schema for validationaiwebfeeds.db- SQLite database
opml - Generate OPML Files
Generate OPML files for feed readers.
# All feeds (flat list)
uv run aiwebfeeds opml all --output data/all.opml
# Categorized by source type
uv run aiwebfeeds opml categorized --output data/categorized.opml
# Filtered OPML
uv run aiwebfeeds opml filtered <output-file> [OPTIONS]Filter Options:
--topic, -t- Filter by topic (e.g., nlp, mlops)--type, -T- Filter by source type (e.g., blog, podcast)--tag, -g- Filter by tag (e.g., official, community)--verified, -v- Only include verified feeds
Examples:
# NLP-related feeds only
uv run aiwebfeeds opml filtered data/nlp.opml --topic nlp
# Official blogs
uv run aiwebfeeds opml filtered data/official-blogs.opml \
--type blog \
--tag official
# Verified ML podcasts
uv run aiwebfeeds opml filtered data/ml-podcasts.opml \
--topic ml \
--type podcast \
--verifiedstats - View Statistics
Display feed statistics and summaries.
uv run aiwebfeeds stats showExample output:
📊 Feed Statistics
══════════════════════════════════════════════════
Total Feeds: 150
Verified: 120 (80.0%)
By Source Type:
blog : 45
preprint : 30
podcast : 20
organization : 15
newsletter : 12
video : 10
aggregator : 8
journal : 5
docs : 3
forum : 2
══════════════════════════════════════════════════export - Export Data
Export feed data in various formats (coming soon).
uv run aiwebfeeds export json # Export as JSON
uv run aiwebfeeds export csv # Export as CSVvalidate - Validate Data
Validate feed data against schemas (coming soon).
uv run aiwebfeeds validate # Validate feeds.yamlWorkflows
Initial Setup
# 1. Create or edit data/feeds.yaml with your feed sources
# 2. Enrich the feeds
uv run aiwebfeeds enrich all
# 3. Generate OPML files for your feed reader
uv run aiwebfeeds opml all
uv run aiwebfeeds opml categorized
# 4. Check the results
uv run aiwebfeeds stats showAdding New Feeds
# 1. Add feed entries to data/feeds.yaml
# 2. Re-enrich
uv run aiwebfeeds enrich all
# 3. Regenerate OPML files
uv run aiwebfeeds opml all
uv run aiwebfeeds opml categorizedCreating Custom Feed Collections
# Create topic-specific OPML files
uv run aiwebfeeds opml filtered data/nlp.opml --topic nlp
uv run aiwebfeeds opml filtered data/mlops.opml --topic mlops
uv run aiwebfeeds opml filtered data/research.opml --topic research
# Create type-specific collections
uv run aiwebfeeds opml filtered data/podcasts.opml --type podcast
uv run aiwebfeeds opml filtered data/blogs.opml --type blog
# Verified feeds only
uv run aiwebfeeds opml filtered data/verified.opml --verified
# Combine filters for precise collections
uv run aiwebfeeds opml filtered data/verified-nlp-blogs.opml \
--topic nlp \
--type blog \
--verifiedConfiguration
Environment Variables
# Database location
export AIWF_DATABASE_URL=sqlite:///data/aiwebfeeds.db
# Logging
export AIWF_LOGGING__LEVEL=INFO
export AIWF_LOGGING__FILE=True
export AIWF_LOGGING__FILE_PATH=logs/aiwebfeeds.logDefault File Locations
- Input:
data/feeds.yaml - Output:
data/feeds.enriched.yaml - Schema:
data/feeds.enriched.schema.json - Database:
data/aiwebfeeds.db - OPML:
data/*.opml
Override with command options (--input, --output, --database, etc.)
Help
Get help for any command:
# General help
uv run aiwebfeeds --help
# Command-specific help
uv run aiwebfeeds enrich --help
uv run aiwebfeeds opml --help
uv run aiwebfeeds opml filtered --help