topic-monitor
Topic Monitor automates scheduled web searches, AI importance scoring, and sends alerts via channels like telegram, discord, and email. It installs cron entries and runs local commands (e.g., crontab, /usr/bin/python3 scripts/monitor.py), performs network calls to configured endpoints such as https://discord.com/api/webhooks/... and smtp.gmail.com, and uses config secrets like webhook_url and smtp_password.
Topic Monitor
Never miss what matters. Get alerted when it happens.
Topic Monitor transforms your assistant from reactive to proactive by continuously monitoring topics you care about and intelligently alerting you only when something truly important occurs.
Features
- 🔍 Automated Monitoring - Scheduled web searches for your topics
- 🧠 AI Importance Scoring - Smart filtering: alert vs digest vs ignore
- 📱 Multi-Channel Alerts - Telegram, Discord, Email
- 📊 Weekly Digests - Curated summaries of interesting findings
- 🧩 Memory Integration - Contextual alerts referencing your past conversations
- ⚡ Rate Limiting - Prevent alert fatigue
- 🎯 Custom Conditions - Fine-tune when to alert
Quick Start
Option 1: Interactive Setup (Recommended)
Run the setup wizard for a guided experience:
python3 scripts/setup.py
The wizard asks friendly questions about what you want to monitor and creates your config automatically.
Option 2: Manual Setup
# 1. Copy the template
cp config.example.json config.json
# 2. Add your first topic
python3 scripts/manage_topics.py add "AI Models" \
--query "new AI model release announcement" \
--keywords "GPT,Claude,Llama,release" \
--frequency daily \
--importance high \
--channels telegram
# 3. Test it
python3 scripts/manage_topics.py test ai-models
# 4. Set up automated monitoring
python3 scripts/setup_cron.py
Use Cases
📈 Price Monitoring
Track product prices, SaaS pricing changes, or market trends with alerts on significant changes.
🔧 Product Updates
Monitor software releases, patches, and feature announcements.
📰 News Tracking
Stay updated on specific topics without drowning in noise.
🏢 Competitor Analysis
Track competitor product launches, funding, and news.
🎓 Research Papers
Monitor arXiv, GitHub, or academic publications in your field.
How It Works
- Configure Topics - Define what to monitor and when to alert
- Scheduled Checks - Cron jobs run searches at your chosen frequency
- AI Scoring - Each result is scored for importance
- Smart Alerting - High priority → immediate alert, Medium → digest, Low → ignore
- Deduplication - Never get the same alert twice
Configuration
See SKILL.md for complete documentation.
Example Topic
{
"id": "ai-breakthroughs",
"name": "AI Research Breakthroughs",
"query": "artificial intelligence breakthrough research",
"keywords": ["AI", "LLM", "transformer", "AGI"],
"frequency": "daily",
"importance_threshold": "medium",
"channels": ["telegram"],
"context": "Following AI developments for work",
"alert_on": ["major_paper", "model_release"]
}
Commands
Manage Topics
# Add topic
python3 scripts/manage_topics.py add "Topic Name" \
--query "search query" \
--keywords "word1,word2" \
--frequency daily
# List topics
python3 scripts/manage_topics.py list
# Edit topic
python3 scripts/manage_topics.py edit topic-id --frequency hourly
# Remove topic
python3 scripts/manage_topics.py remove topic-id
# Test topic
python3 scripts/manage_topics.py test topic-id
Monitor
# Manual check (dry run)
python3 scripts/monitor.py --dry-run --verbose
# Check specific topic
python3 scripts/monitor.py --topic ai-models
# Check all hourly topics
python3 scripts/monitor.py --frequency hourly
Digest
# Preview this week's digest
python3 scripts/digest.py --preview
# Generate and send
python3 scripts/digest.py --send
Cron Setup
# Interactive setup
python3 scripts/setup_cron.py
# Auto-setup
python3 scripts/setup_cron.py --auto
# Remove cron jobs
python3 scripts/setup_cron.py --remove
Integration
Works With
- web-search-plus - Intelligent search routing (Serper, Tavily, Exa)
- personal-analytics - Get topic recommendations from your chat patterns
- OpenClaw message tool - Send alerts via Telegram, Discord
Channel Setup
Telegram
Configure in config.json:
{
"channels": {
"telegram": {
"enabled": true,
"chat_id": "@your_username"
}
}
}
Discord
Add webhook URL:
{
"channels": {
"discord": {
"enabled": true,
"webhook_url": "https://discord.com/api/webhooks/..."
}
}
}
Privacy
- All data stored locally
- No external services except search APIs
- Learning data stays on your machine
- State files are gitignored
Requirements
- Python 3.8+
- Optional: web-search-plus skill (for better search)
- Cron (for automated monitoring)
License
MIT
Credits
Built for ClawHub.