The script does not contact OpenAI endpoints. The openai package is used solely as an HTTP client pointed at . is explicitly removed from the environment at startup.
https://api.deepseek.com
OPENAI_API_KEY
Usage Examples
"Get today's AI news"
"Collect news about crypto"
"Last week's news about climate change"
"What's trending in AI today?"
"Get crypto news from the last 3 days using OpenAI"
"Show me recent Bitcoin YouTube videos"
"Summarise WWIII news with Claude"
"AI news using GPT-4o"
"AI news dry run" (preview without posting to Discord)
Override per request using the --provider flag. Set a permanent non-default with openclaw config set env.AI_PROVIDER '"deepseek"'. Override the model with --model (e.g. --model gpt-4o or --model claude-3-5-sonnet-20241022).
Implementation
IMPORTANT: Always run news_aggregator.py using the steps below. Do NOT search the web manually or improvise a response — the script handles all fetching, summarisation, and Discord posting.
Step 1 — Locate the script
The script is bundled with this skill. Find it:
SKILL_DIR=$(ls -d ~/.openclaw/skills/ai-news-aggregator-sl 2>/dev/null || ls -d ~/.openclaw/skills/news-aggregator 2>/dev/null)
SCRIPT="$SKILL_DIR/news_aggregator.py"
echo "Script: $SCRIPT"
ls "$SCRIPT"
# AI news today — DeepSeek (default)
uv run "$SCRIPT"
# Crypto news using OpenAI
uv run "$SCRIPT" --topic "crypto" --provider openai
# Last week's climate news using Claude
uv run "$SCRIPT" --topic "climate change" --days 7 --provider claude
# Use a specific model
uv run "$SCRIPT" --topic "Bitcoin" --provider openai --model gpt-4o
# Trending AI on Twitter and YouTube
uv run "$SCRIPT" --report trending
# Preview without posting to Discord
uv run "$SCRIPT" --topic "Bitcoin" --dry-run
# Test webhook connection
uv run "$SCRIPT" --test-discord
Step 6 — Report back
Tell the user what was posted to Discord, how many items were found per source, and note any skipped sources (e.g. "YouTube skipped — YOUTUBE_API_KEY not set").