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 at any time
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
Generate Custom Source Config
Remove Existing Sources
List All Sources
Test a Source
────────────────
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 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.
Display all available sources grouped by category.
Output Format:
--- Available Sources ---
TECH:
- ieee IEEE Spectrum
- mashable Mashable
TECHPRO:
- hn Hacker News
- lb Lobsters
- iq InfoQ
NEWS:
- bbc BBC News
- guardian The Guardian
SCIENCE:
- nature Nature News
- scientificamerican Scientific American
AI:
- mitnews MIT News
SPORTS:
- bbcsport BBC Sport
Total: 11 sources
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
Execution Summary
Before execution, interactive mode shows a summary:
# 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