← 返回 Skills 市场
scottll

AI News Aggregator

作者 Scott Lai · GitHub ↗ · v1.2.8 · MIT-0
linuxmacwindows ✓ 安全检测通过
480
总下载
2
收藏
1
当前安装
13
版本数
在 OpenClaw 中安装
/install ai-news-aggregator-sl
功能描述
Fetches AI & tech news (default) or any custom topic (crypto, geopolitics, etc.) from RSS feeds, Tavily search, Twitter/X, and YouTube. Writes an English edi...
使用说明 (SKILL.md)

🦞 AI News Aggregator

Collects news on any topic, writes an English editorial digest using your choice of AI provider, and posts it to Discord.

Default (AI topic): TechCrunch · The Verge · NYT Tech (RSS) + curated AI YouTube channels Custom topics: Tavily news search + YouTube topic search (no Shorts, sorted by views) AI providers: OpenAI (default) · DeepSeek · Anthropic Claude — switchable per request


Network Endpoints

Endpoint Purpose Condition
https://api.openai.com/v1/chat/completions AI editorial summarisation Only if provider=openai (default)
https://api.deepseek.com/chat/completions AI editorial summarisation Only if provider=deepseek
https://api.anthropic.com/v1/messages AI editorial summarisation Only if provider=claude
https://discord.com/api/webhooks/... Post digest to Discord Always (required)
https://techcrunch.com/.../feed/ RSS news (AI topic) Default AI topic only
https://www.theverge.com/rss/... RSS news (AI topic) Default AI topic only
https://www.nytimes.com/svc/collections/... RSS news (AI topic) Default AI topic only
https://api.tavily.com/search Custom topic news search Only if TAVILY_API_KEY set
https://api.twitterapi.io/twitter/tweet/advanced_search Twitter search Only if TWITTERAPI_IO_KEY set
https://www.googleapis.com/youtube/v3/... YouTube search Only if YOUTUBE_API_KEY set

Exactly one AI endpoint is contacted per run, determined by the active provider. The default provider is OpenAI (OPENAI_API_KEY required). Switch providers with --provider deepseek or --provider claude.


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)
  • "Test my Discord webhook"

API Keys

Key Required Where to get it
DISCORD_WEBHOOK_URL ✅ Always Discord → Channel Settings → Integrations → Webhooks → Copy URL
OPENAI_API_KEY If using OpenAI (default) platform.openai.com/api-keys
DEEPSEEK_API_KEY If using DeepSeek platform.deepseek.com/api_keys
ANTHROPIC_API_KEY If using Claude console.anthropic.com → API Keys
TAVILY_API_KEY For custom topics app.tavily.com
TWITTERAPI_IO_KEY Optional twitterapi.io
YOUTUBE_API_KEY Optional console.cloud.google.com → YouTube Data API v3

AI Providers & Models

Provider --provider value Default model Best for
OpenAI openai (default) gpt-4o-mini Quality, reliability
DeepSeek deepseek deepseek-chat Cost-effective, fast
Claude claude claude-3-5-haiku-20241022 Nuanced writing

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"

Step 2 — Check uv is available

which uv && uv --version || echo "uv not found"

If uv is not found, ask the user to install it from their system package manager or from https://docs.astral.sh/uv/getting-started/installation/. Do not run a curl-pipe-sh command on the user's behalf.

Step 3 — API keys

Env vars are passed automatically by OpenClaw from its config. No .env file is needed.

Verify the required keys are set (without revealing values):

[[ -n "$OPENAI_API_KEY" ]]      && echo "OPENAI_API_KEY: set"      || echo "OPENAI_API_KEY: MISSING (required for default provider)"
[[ -n "$DISCORD_WEBHOOK_URL" ]] && echo "DISCORD_WEBHOOK_URL: set" || echo "DISCORD_WEBHOOK_URL: MISSING"

If any are missing, ask the user to register them:

openclaw config set env.OPENAI_API_KEY '\x3Ckey>'
openclaw config set env.DISCORD_WEBHOOK_URL '\x3Curl>'
# Optional alternatives:
openclaw config set env.DEEPSEEK_API_KEY '\x3Ckey>'
openclaw config set env.ANTHROPIC_API_KEY '\x3Ckey>'

Step 4 — Parse the request

Extract topic, days, and provider from what the user said:

For AI provider:

User said --provider --model
"use OpenAI" / "with GPT" / "using ChatGPT" / nothing specified (omit — default) (omit)
"use Claude" / "with Anthropic" --provider claude (omit)
"use DeepSeek" --provider deepseek (omit)
"use GPT-4o" / "with gpt-4o" --provider openai --model gpt-4o
"use claude sonnet" --provider claude --model claude-3-5-sonnet-20241022
"use deepseek reasoner" --provider deepseek --model deepseek-reasoner

Extract topic and days from what the user said:

User said --topic --days
"AI news" / "tech news" / nothing specific (omit — default AI) 1
"crypto news" --topic "crypto" 1
"news about climate change" --topic "climate change" 1
"last week's crypto news" --topic "crypto" 7
"last 3 days of Bitcoin news" --topic "Bitcoin" 3
"yesterday's AI news" (omit topic) 1
"this week in AI" (omit topic) 7

For report type:

User said flag to add
"news" / "articles" / "digest" --report news
"trending" / "Twitter" / "YouTube" --report trending
"dry run" / "preview" / "don't post" --dry-run
"test Discord" / "test webhook" --test-discord
anything else (omit — runs all)

Step 5 — Run with uv

uv run automatically installs all dependencies from the script's inline metadata — no venv setup needed.

uv run "$SCRIPT" [--topic "TOPIC"] [--days N] [--report TYPE] [--provider PROVIDER] [--model MODEL] [--dry-run]

Examples:

# AI news today — OpenAI (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").

安全使用建议
This skill appears to do what it says: collect news, summarise via one chosen AI provider, and post to a Discord webhook. Before installing or running it: 1) Be prepared to provide a Discord webhook URL and (by default) your OpenAI API key — these are required for normal operation. Only supply optional service keys (Tavily, Twitter, YouTube, DeepSeek, Anthropic) if you need those sources. 2) The script will make outbound requests to AI provider endpoints and the listed news APIs and then POST to your Discord webhook — verify the webhook points to a channel you control (avoid using webhooks that forward to broad/audit-sensitive channels). 3) The skill uses 'uv' to run and install Python dependencies; follow the project's docs to install 'uv' rather than piping remote install scripts. 4) Minor documentation inconsistencies exist (duplicate OPENAI listing; DISCORD_WEBHOOK_URL_TRENDING used but not declared) — if these matter for your deployment, inspect or run the script in dry-run mode first. 5) If you do not trust the external AI endpoints or the Discord target, do not provide credentials or webhook. Overall the package is internally consistent with low surprise, but always review/try a dry-run before enabling in production.
功能分析
Type: OpenClaw Skill Name: ai-news-aggregator-sl Version: 1.2.8 The skill bundle is a legitimate AI-powered news aggregator that collects data from RSS feeds, Tavily, Twitter, and YouTube to generate summaries via OpenAI, DeepSeek, or Anthropic. The implementation in news_aggregator.py follows security best practices, such as clearing OPENAI_BASE_URL to prevent endpoint hijacking and explicitly advising against unsafe installation patterns (curl|sh) in SKILL.md. There is no evidence of data exfiltration, unauthorized file access, or malicious prompt injection.
能力评估
Purpose & Capability
Name/description match what the package does: fetch RSS/Tavily/Twitter/YouTube, call one AI provider (OpenAI/DeepSeek/Anthropic), and post a formatted digest to a Discord webhook. The required primary credential (OPENAI_API_KEY by default) and DISCORD_WEBHOOK_URL are appropriate for that purpose.
Instruction Scope
SKILL.md and the script instruct the agent to run the bundled Python script (via 'uv run') which fetches remote feeds/APIs and posts to Discord. That is within scope. Minor issues: SKILL.md and code reference a DISCORD_WEBHOOK_URL_TRENDING env var (the script falls back to DISCORD_WEBHOOK_URL), and SKILL.md warns not to 'search the web manually' — the script itself performs HTTP requests to many endpoints (expected).
Install Mechanism
No install spec is provided and the skill is instruction-only with a bundled Python script. The script leverages 'uv' to run and install listed Python deps (PEP 723 header). Requiring 'uv' is reasonable here; no remote arbitrary download/install URLs or extract steps are present.
Credentials
Requested envs are proportional: DISCORD_WEBHOOK_URL (required) and OPENAI_API_KEY (primary) make sense. Optional keys (DEEPSEEK, ANTHROPIC, TAVILY, TWITTERAPI_IO, YOUTUBE) are reasonable for optional features. Minor inconsistencies: OPENAI_API_KEY appears both as primary and again under optionalEnv in SKILL.md, and DISCORD_WEBHOOK_URL_TRENDING is read by the script but not declared in requires.env.
Persistence & Privilege
always:false (default) and there is no install-time modification of other skills or global agent config. The skill does network I/O only when run; it does not request elevated or persistent platform privileges.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ai-news-aggregator-sl
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ai-news-aggregator-sl 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.2.8
- Default AI provider changed from DeepSeek to OpenAI. - OPENAI_API_KEY is now required by default; switch providers with --provider as needed. - API endpoint table updated to match actual provider selection logic. - Clarified that only one AI endpoint is called per run, based on the active provider. - Minor corrections and clarifications to provider and environment variable descriptions.
v1.2.7
**Added support for multiple AI providers (OpenAI, DeepSeek, Claude) and enhanced configuration.** - Choose your AI summarization provider: OpenAI (default), DeepSeek, or Anthropic Claude — switchable per request or via config. - API key/env requirements and usage examples updated to reflect provider selection and model overrides. - Improved SKILL.md guidance to help users select provider/model and pass the right flags (e.g., --provider, --model). - Primary required environment variable is now OPENAI_API_KEY (unless using another provider). - Usability examples now include requesting specific AI models or providers per digest. - No code/file changes detected—documentation and configuration only.
v1.2.6
- Updated uv installation instructions: users are now advised to install uv via package manager or official instructions, instead of using a curl-pipe-sh command. - Improved environment variable checks: verification commands now avoid revealing API key values, only indicating if keys are set or missing. - Minor refinements to documentation for clarity and security.
v1.2.5
- Updated version to 1.4.1 - SKILL.md now clarifies that Python dependencies are specified inline in the script (PEP 723) and highlights that no install spec is needed in metadata. - No functional or usage changes. Documentation cleanup only.
v1.2.4
**Migration to uv for dependency management and simpler setup.** - Switched dependency and execution workflow to use `uv` (no more manual venv or pip steps). - Updated installation and usage instructions in SKILL.md to reflect `uv run` and automatic dependency handling. - Environment variables are now passed from OpenClaw config; .env file steps removed. - Simplified setup, making it faster and more reliable across platforms. - Updated version to 1.4.0.
v1.2.3
**Bundled the main Python script with the skill release.** - The `news_aggregator.py` script is now included in the skill package for easier setup and updates. - SKILL.md updated: clearly lists which network endpoints are contacted and under what conditions. - New install flow: instructs to copy `news_aggregator.py` from the skill bundle, reducing manual scripting. - No changes to user-facing functionality; all key features and usage remain the same.
v1.2.2
**Directory/venv location and environment management streamlined.** - Moves all files (script, venv, .env) under `~/ai-news/` for simpler management. - Updates all references to use `~/ai-news/venv` and `~/ai-news/.env` instead of previous locations. - Skill metadata now documents optional vs required environment variables and pip dependencies more clearly. - .env creation improved: only writes supplied keys, omits placeholders. - Minor instructions tweaks for reliability and clarity. No core logic or new features added.
v1.2.1
No changes detected in this version. - No file or documentation changes between v1.2.0 and v1.2.1.
v1.2.0
**ai-news-aggregator-sl v1.2.0 — Major upgrade: now supports any news topic, English summaries, custom time ranges, and more flexible data sources.** - Added support for any custom topic (e.g. crypto, geopolitics), not just AI & tech news. - Uses Tavily for news search and custom YouTube topic search when non-default topics are requested. - Editorial digest is now written in English (was previously Chinese). - Time range is now user-controlled (e.g. today, last 3 days, last week). - Python virtual environment and `tavily-python` dependency added for improved reliability. - Removed legacy script and documentation files for a fresh, simplified setup.
v1.1.2
**Initial source code and documentation added.** - Added the main Python script (`news_aggregator.py`) for aggregating, summarizing, and posting AI & tech news to Discord. - Added a comprehensive `README.md` with setup instructions, usage examples, and implementation details.
v1.1.1
**Summary:** This version removes all source and implementation files, effectively unpublishing the skill. - Deleted all files: README.md, deploy.sh, news_aggregator.py, and server_setup.sh - The skill no longer provides code, scripts, or documentation - No functional components remain in this version
v1.1.0
**ai-news-aggregator-sl 1.1.0** - Renamed skill (from `ai-news-aggregator` to `ai-news-aggregator-sl`) with updated description and trigger instructions. - Implementation moved fully to SKILL.md; all code/scripts must be bootstrapped on demand. - Core files (`README.md`, `news_aggregator.py`) removed; skill behavior and recovery guided by new markdown instructions. - Improved onboarding: prompts user for required API keys if missing, simplifying setup. - Detailed implementation steps provided directly in SKILL.md to automate environment setup and script creation.
v1.0.0
Initial release — cross-platform news aggregator & Discord integration. - Collects today's AI & tech news from TechCrunch, The Verge, NYT (RSS), Twitter/X, and top AI YouTubers. - Summarizes and translates news into Chinese using DeepSeek AI. - Posts two editorial-style reports (news digest & trending) to a Discord channel via webhook. - .env required: set DEEPSEEK_API_KEY and DISCORD_WEBHOOK_URL (optional: Twitter & YouTube API keys). - Includes scripts and setup instructions for easy use on Linux, Mac, and Windows. - Troubleshooting and extensible source/channel configuration included.
元数据
Slug ai-news-aggregator-sl
版本 1.2.8
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 13
常见问题

AI News Aggregator 是什么?

Fetches AI & tech news (default) or any custom topic (crypto, geopolitics, etc.) from RSS feeds, Tavily search, Twitter/X, and YouTube. Writes an English edi... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 480 次。

如何安装 AI News Aggregator?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ai-news-aggregator-sl」即可一键安装,无需额外配置。

AI News Aggregator 是免费的吗?

是的,AI News Aggregator 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

AI News Aggregator 支持哪些平台?

AI News Aggregator 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(linux, mac, windows)。

谁开发了 AI News Aggregator?

由 Scott Lai(@scottll)开发并维护,当前版本 v1.2.8。

💬 留言讨论