Capcat's interactive mode provides a user-friendly menu interface for all operations without requiring command-line arguments or flags.
Quick Start
Launch interactive mode:
capcat catch
Main Menu
When you launch capcat catch, you see:
What would you like me to do?
> Catch articles from a bundle of sources
Catch articles from a list of sources
Catch from a single source
Catch a single article by URL
Manage Sources (add/remove/configure)
Exit
(Use arrow keys to navigate)
Navigation:
Arrow keys: Move between options
Enter: Select option
Ctrl+C: Exit immediately (terminates the process with exit code 130)
Main Menu Options
1. Catch Articles from a Bundle
Fetch articles from predefined source groups.
Flow:
Select bundle (tech, news, science, ai, sports)
Choose HTML generation (yes/no)
Confirm and execute
Example:
Select a news bundle and hit Enter for activation.
> tech - Technology News
(IEEE, Mashable)
news - General News
(BBC News, The Guardian)
science - Science News
(Nature News, Scientific American)
ai - AI & Machine Learning
(MIT News)
sports - Sports News
(BBC Sport)
Bundle Auto-Discovery:
Bundles automatically include:
Sources explicitly listed in bundles.yml
Sources with matching category from registry
Example: "tech" bundle includes all sources with category: tech
Default Count:
Bundles fetch default number of articles per source (typically 30)
Cannot be changed interactively (use CLI for custom counts)
2. Catch Articles from a List of Sources
Select multiple sources to fetch from simultaneously.
Flow:
Select sources with spacebar (checkbox mode)
Press Enter to confirm selection
Choose HTML generation
Execute
Example:
Select sources with <space> and press Enter to continue:
[ ] hn Hacker News
[x] lb Lobsters
[x] iq InfoQ
[ ] bbc BBC News
[ ] guardian The Guardian
(Use <space> to select, <enter> to confirm)
Tips:
Select as many sources as needed
Sources are grouped by category for easy browsing
No limit on number of selections
3. Catch from a Single Source
Fetch articles from one specific source.
Flow:
Select source from list
Choose HTML generation
Execute
Example:
Select a source and hit Enter for activation.
> hn Hacker News
lb Lobsters
iq InfoQ
bbc BBC News
guardian The Guardian
Use Case:
Testing a specific source or fetching focused content.
4. Catch a Single Article by URL
Download and convert a single article from any URL.
Flow:
Enter article URL
Choose HTML generation
Execute
Example:
(Use Ctrl+C to go to the Main Menu)
Please enter the article URL: https://example.com/article
Generate HTML for web browsing?
> Yes
No
Supported:
Any publicly accessible article URL
Works with sources not in registry
Automatic content extraction
Media download (images always, videos/docs with --media flag)
Source Management - Select an option:
> Add New Source from RSS Feed
Remove Existing Sources
List All Sources
Test a Source
Manage Bundles
────────────────
Back to Main Menu
(Use arrow keys to navigate)
Add New Source from RSS Feed
Quick source addition from RSS/Atom feeds.
Flow:
Enter RSS feed URL
System inspects feed and extracts metadata
Review auto-suggested source ID
Select category
Optionally add to bundle
Optionally test source
Example:
Enter the RSS feed URL: https://example.com/article
[OK] Feed 'TechCrunch' found.
Source ID: techcrunch
Category: tech
Add to bundle? Yes
Select bundle: tech
[OK] Added 'techcrunch' to bundle 'tech'.
Test fetch? Yes
[OK] Source added and verified successfully!
What It Creates:
YAML config in Config/sources/active/config_driven/configs/
Registry entry (automatic on next run)
Bundle entry (if selected)
Generate Custom Source Config
Create comprehensive YAML configuration with all options.
Available sources:
bbc BBC News
bbcsport BBC Sport
google-research The latest research from Google
guardian The Guardian
hn Hacker News
ieee IEEE Spectrum
iq InfoQ
lb Lobsters
mashable Mashable
medium Medium.com
mitnews MIT News AI
nature Nature
scientificamerican Scientific American
substack Substack.com
twitter X.com
vimeo Vimeo
youtube YouTube
Use Cases:
Audit available sources
Find source IDs for CLI commands
Check categorization
Identify gaps in coverage
Test a Source
Validate source functionality by fetching sample articles.
Flow:
Select source from list
System fetches 3 test articles
Results displayed
Success/failure indication
Example:
--- Testing Source: hn ---
Fetching 3 articles...
[OK] Article 1: "New AI Model Released"
[OK] Article 2: "Programming Best Practices"
[OK] Article 3: "Tech Industry Trends"
[OK] Source 'hn' test completed
Use Cases:
Verify new source works
Troubleshoot source issues
Check after configuration changes
Validate after website updates
What It Tests:
Network connectivity
Article discovery
Content extraction
Media download
Markdown conversion
HTML Generation
All main operations prompt for HTML generation.
Options:
Yes
Generate browsable HTML with styling
No
Markdown only
HTML Output:
Article_Folder/
├── article.md # Always created
├── comments.md # If source supports comments
├── images/ # Downloaded media
└── html/ # Only if HTML enabled
├── article.html
└── comments.html
When to Use HTML:
Web browsing convenience
Sharing with non-technical users
Visual verification
Archival with styling
When to Skip:
CLI-only workflows
Minimal disk usage
Processing with markdown tools
Speed optimization
PDF Download Prompt
After the HTML generation prompt, all fetch operations present a PDF download prompt:
Download PDFs?
> Yes — download all PDF links found in articles
No — skip PDFs (links kept as external references)
Source defaults — use each source's own PDF setting
(Use arrow keys, press Enter to confirm)
Yes:
PDF links in articles are queued for asynchronous background download into files/ inside each article folder.
Progress is logged only when the count changes:
Downloading PDFs: 3 active, 2 queued, 8 completed
No:
PDF links remain as external URLs in the article markdown. No files are downloaded.
Source defaults:
Each source applies its own configured PDF behaviour. Sources with PDF-heavy content
(Nature, IEEE, Scientific American) have PDF downloads enabled by default in their config.yaml.
All other sources default to off.
# 1. Add new source interactively
capcat catch
> Manage Sources
> Add New Source from RSS Feed
# 2. Test thoroughly
capcat catch
> Manage Sources
> Test a Source
# 3. Use in production
capcat bundle tech --count 50
Content Curation Workflow
# Morning routine
capcat catch
> Catch articles from a bundle
> tech
> Yes (HTML)
# Ad-hoc interesting article
capcat catch
> Catch a single article by URL
> [paste URL]
Maintenance Workflow
# Weekly audit
capcat catch
> Manage Sources
> List All Sources
# Remove outdated
capcat catch
> Manage Sources
> Remove Existing Sources
# Verify remaining
capcat catch
> Manage Sources
> Test a Source