Skip to content

solution8-com/AIRWave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

41 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŒ… AIRWave

AI curates the tech news. You just read. Or let your agent generate a podcast for your lazy ass!

Python License uv Deploy Docs GitHub commit activity PRs Welcome

Claude openAI GPT Gemini MiniMax OpenClaw

AIRWave collects news from multiple customizable sources, uses AI to score and filter them, and generates a daily briefing β€” complete with summaries, community discussions, and background explanations in both English.

πŸ“– Live Demo Β· πŸ“‹ Configuration Guide Β· πŸ“– DeepWiki Docs

Screenshots

Daily Overview

Daily Overview

News Detail

News Detail
Terminal Output

Terminal Output

Features

  • πŸ“‘ Multi-Source Aggregation β€” Collects from Hacker News, RSS feeds, Reddit, Telegram channels, and GitHub (releases & user events)
  • πŸ€– AI-Powered Scoring β€” Uses Claude, Gemini, MiniMax, or any OpenAI-compatible API to rate each item 0-10, filtering out the noise
  • 🌐 Ready for Multilingual Summaries β€” Generates daily reports in English but can go further
  • πŸ” Content Enrichment β€” Searches the web to provide background knowledge for unfamiliar concepts
  • πŸ’¬ Community Voices β€” Collects and summarizes discussions from comments on HackerNews, Reddit, etc.
  • πŸ”— Cross-Source Deduplication β€” Merges duplicate items from different platforms automatically
  • πŸ“§ Email Subscription β€” Self-hosted newsletter system (SMTP/IMAP) that handles "Subscribe" requests automatically
  • πŸ“ Static Site Generation β€” Deploys as a GitHub Pages site via GitHub Actions, updated on a schedule
  • βš™οΈ Fully Configurable β€” Single JSON config file, easy to customize sources, thresholds, and AI providers
  • πŸ§™ Setup Wizard β€” Interactive CLI that recommends sources based interests, with a curated preset library open to community contributions

Roadmap

  • πŸŽ„[1]Universal Knowledge Graph Interface β€” Drop in any memory graph backend (Zep, mem0) XOR a naive graphDB (FalkorDB, neo4j)
  • πŸŽ„[2]Fetch from Whatsapp β€” Self-explanatory
  • **πŸŽ„[3]Insight and Memory HITL Commit Flow ** β€” Self-explanatory
  • πŸŽ„[4]Update Universal Knowledge Graph from greenlit Insights β€” Self-explanatory
  • πŸŽ„[5]Auth-only sources β€” Self-explanatory
  • πŸŽ„[6]Achive.ph trigger and parsing logic β€” Self-explanatory
  • πŸŽ„[7]Improved Web UI β€” better digest and article detail experience
  • πŸŽ„[8]Webhook notification β€” Self-explanatory
  • πŸŽ„[9]More source types (Twitter/X, Discord, etc.) β€” Self-explanatory
  • πŸŽ„[10]Custom scoring prompts per source β€” Self-explanatory

How It Works

              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚ Hacker   β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚ News     β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  RSS    │──▢│ Reddit   │──▢│ AI Score │──▢│ Enrich             │──▢│ Summary  β”‚
β”‚ Telegramβ”‚   β”‚ GitHub   β”‚   β”‚ & Filter β”‚   β”‚ & Search & Validateβ”‚   β”‚ & Deploy β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  Fetch from    Merge &        Score          Web search               Generate
  all sources   deduplicate    0-10 each      background               Markdown &
  [2]                          & filter       knowledge,[3][4]         deploy site
  1. Fetch β€” Pull latest content from all configured sources concurrently
  2. Deduplicate β€” Merge items pointing to the same URL across different platforms
  3. Score β€” AI rates each item 0-10 based on technical depth, novelty, and impact
  4. Filter β€” Keep only items above your configured threshold (default: 6.0)
  5. Enrich β€” For high-scoring items, search the web for background context and collect community discussions
  6. Summarize β€” Generate a structured Markdown report with summaries, tags, and references
  7. Deploy β€” Optionally publish to GitHub Pages as a daily-updated static site

Quick Start

1. Install

Option A: Local Installation

git clone https://github.com/solution8-com/AIRWave.git
cd AIRWave

# Install with uv (recommended)
uv sync

# Or with pip
pip install -e .

Option B: Docker

git clone https://github.com/solution8-com/AIRWave.git
cd AIRWave

# Configure environment
cp .env.example .env
cp data/config.example.json data/config.json
# Edit .env and data/config.json with your API keys and preferences

# Run with Docker Compose
docker-compose run --rm AIRWave

# Or run with custom time window
docker-compose run --rm AIRWave --hours 48

2. Configure

Option A: Interactive wizard (recommended)

uv run AIRWave-wizard

The wizard asks about your interests (e.g. "LLM inference","web security") and auto-generates data/config.json from a curated preset library + optional AI recommendations.

Option B: Manual configuration

cp .env.example .env          # Add your API keys
cp data/config.example.json data/config.json  # Customize your sources

Here's what a config looks like:

{
  "ai": {
    "provider": "openai",       // or "anthropic", "gemini", "doubao", "minimax"
    "model": "gpt-4",
    "api_key_env": "OPENAI_API_KEY",
    "languages": ["en", "zh"]   // bilingual output
  },
  "sources": {
    "hackernews": { "enabled": true, "fetch_top_stories": 20, "min_score": 100 },
    "rss": [
      { "name": "Simon Willison", "url": "https://simonwillison.net/atom/everything/" }
    ],
    "reddit": {
      "subreddits": [{ "subreddit": "MachineLearning", "sort": "hot" }],
      "fetch_comments": 5
    },
    "telegram": {
      "channels": [{ "channel": "zaihuapd", "fetch_limit": 20 }]
    }
  },
  "filtering": {
    "ai_score_threshold": 6.0,
    "time_window_hours": 24
  }
}

For the full reference, see the Configuration Guide.

3. Run

Local Installation

uv run AIRWave           # Run with default 24h window
uv run AIRWave --hours 48  # Fetch from last 48 hours

With Docker

docker-compose run --rm AIRWave           # Run with default 24h window
docker-compose run --rm AIRWave --hours 48  # Fetch from last 48 hours

The generated report will be saved to data/summaries/.

4. Automate (Optional)

AIRWave works great as a GitHub Actions cron job. See .github/workflows/daily-summary.yml for a ready-to-use workflow that generates and deploys your daily briefing to GitHub Pages automatically.

Supported Sources

Source What it fetches Comments
Hacker News Top stories by score Yes (top N comments)
RSS / Atom Any RSS or Atom feed β€”
Reddit Subreddits + user posts Yes (top N comments)
Telegram Public channel messages β€”
GitHub User events & repo releases β€”

MCP Integration

AIRWave ships with a built-in MCP server so AI assistants can drive the pipeline programmatically.

# Start the MCP server (stdio mode)
uv run AIRWave-mcp

Available tools include hz_validate_config, hz_fetch_items, hz_score_items, hz_filter_items, hz_enrich_items, hz_generate_summary, and hz_run_pipeline.

See src/mcp/README.md for the full tool reference and src/mcp/integration.md for client setup.

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

Contribute Source Presets

AIRWave's setup wizard uses the publicly available preset library to recommend sources. Please contribute to this list!

  1. Fork this repo
  2. Add your sources to data/presets.json (provide both English and descriptions)
  3. Submit a PR

Great candidates: niche RSS feeds, active subreddits, notable GitHub accounts, or Telegram channels in your area of expertise.

License

MIT

About

AI curates the tech news. You just read. Or let your agent generate a podcast for your lazy ass!

Resources

Stars

Watchers

Forks

Contributors

Languages