trend-pulse: Free Trending Topics Aggregator for AI Agents — 15 Sources, Zero Auth
Open-source Python library that aggregates real-time trends from 15 free sources. Use as CLI, Python library, or MCP server for Claude Code. Includes patent-based content scoring guides.
We’re open-sourcing trend-pulse — a free trending topics aggregator that pulls real-time data from 15 sources with zero API keys required. Use it as a Python library, CLI tool, or MCP server for Claude Code and other AI agents.
GitHub: github.com/claude-world/trend-pulse
PyPI: pip install trend-pulse
The Problem
If you’re building AI-powered content tools, social media agents, or market research pipelines, you need trend data. But:
- Google Trends API doesn’t exist (only an unofficial, rate-limited scraper)
- Twitter/X API costs $100+/month for basic access
- Reddit API killed third-party apps in 2023
- Most trend APIs are either paid, rate-limited, or require OAuth setup
We built trend-pulse to solve this: 15 free sources, zero authentication, one unified API.
15 Sources, Zero Auth
Every source in trend-pulse uses publicly available APIs, RSS feeds, or open protocols. No API keys. No OAuth. No rate limit headaches.
| Source | Type | Best For |
|---|---|---|
| Google Trends | RSS feed | Mass search trends by country |
| Google News | RSS feed | Breaking news stories |
| Hacker News | Firebase + Algolia | Developer/tech topics |
| Public JSON | General popularity signals | |
| Mastodon | Public API | Open-source community trends |
| Bluesky | AT Protocol | Emerging social trends |
| GitHub | Trending page | Developer tools, repos |
| Stack Overflow | Public API | Technical questions |
| Wikipedia | Pageviews API | Current events, people |
| PyPI | pypistats.org | Python ecosystem |
| npm | Downloads API | JavaScript ecosystem |
| dev.to | Public API | Developer articles |
| Lobste.rs | JSON API | Curated tech news |
| CoinGecko | Public API | Crypto trends |
| Docker Hub | Public API | Container popularity |
All sources return normalized scores (0-100) so you can compare across platforms.
Three Ways to Use It
1. CLI — Quick Trend Checks
# What's trending right now?
trend-pulse trending
# Taiwan trends from Google + Hacker News
trend-pulse trending --sources google_trends,hackernews --geo TW
# Search a keyword across all sources
trend-pulse search "Claude Code"
# Save snapshots for velocity tracking
trend-pulse trending --save
trend-pulse history "React" --days 7
2. Python Library — Build Your Own Tools
import asyncio
from trend_pulse.aggregator import TrendAggregator
async def main():
agg = TrendAggregator()
# Merged ranking from all 15 sources
result = await agg.trending(geo="TW", count=10)
for item in result["merged_top"]:
print(f"[{item['source']}] {item['keyword']} (score: {item['score']})")
# Search across sources
result = await agg.search("AI agent")
for item in result["merged_top"][:5]:
print(f"{item['keyword']} — {item['direction']}")
asyncio.run(main())
3. MCP Server — Let AI Agents Use It
This is where trend-pulse really shines. Add it to your Claude Code config:
{
"mcpServers": {
"trend-pulse": {
"command": "uvx",
"args": ["--from", "trend-pulse[mcp]", "trend-pulse-server"],
"type": "stdio"
}
}
}
Now Claude Code can call get_trending(), search_trends(), and all 10 MCP tools directly in conversation. No copy-pasting. No switching tabs.
Velocity Tracking
trend-pulse doesn’t just show you what’s trending now — it tracks how fast things are moving.
Save snapshots over time with --save, and each trend item gets enriched with:
{
"keyword": "Claude AI",
"score": 92,
"direction": "rising",
"velocity": 15.3,
"previous_score": 45.0
}
| Direction | Meaning |
|---|---|
rising | Score increasing rapidly (velocity > 10) |
stable | Holding steady (-10 to 10) |
declining | Losing momentum (velocity < -10) |
new | First time seen |
This is stored locally in SQLite (~/.trend-pulse/history.db). Query it anytime:
trend-pulse history "Claude" --days 30
Content Guide Tools (v0.3.2)
Beyond raw trend data, trend-pulse includes 5 content guide tools designed for AI agents that create social media content.
The key architecture principle: MCP provides structured guides, the LLM does all creative work. No template concatenation. No regex scoring. The tools give frameworks; the AI creates original content.
The 5 Guide Tools
| Tool | What It Returns |
|---|---|
get_content_brief | Writing brief with hook examples, patent-based strategies, CTA examples |
get_scoring_guide | 5-dimension evaluation framework with criteria and grade thresholds |
get_review_checklist | Quality gate checklist (platform compliance, engagement checks) |
get_platform_specs | Platform-specific specs (char limits, algo priorities, best times) |
get_reel_guide | Video script structure (scene timing, visual guidance, editing tips) |
The Workflow
1. get_trending() → Discover hot topics
2. get_content_brief() → Get writing guide for chosen topic
3. LLM writes content → Original text, not templates
4. get_scoring_guide() → LLM self-scores on 5 dimensions
5. LLM revises if needed → Iterate until score ≥ 70
6. get_review_checklist() → Final quality gate
7. get_platform_specs() → Adapt for each platform
Patent-Based Scoring
The scoring framework is derived from Meta’s published ranking patents and systems:
| Dimension | Weight | Based On |
|---|---|---|
| Hook Power | 25% | EdgeRank Weight + Andromeda real-time signals |
| Engagement Trigger | 25% | Story-Viewer Tuple + Dear Algo active signals |
| Conversation Durability | 20% | Threads 72hr multi-party dialogue window |
| Velocity Potential | 15% | Andromeda cross-platform signal processing |
| Format Score | 15% | Multi-modal content indexing |
Grades: S (90+), A (80+), B (70+), C (55+), D (<55). The quality gate requires ≥70 overall and ≥55 conversation durability to publish.
8 Content Types
opinion, story, debate, howto, list, question, news, meme — each with different engagement multipliers and recommended hook strategies.
Add Your Own Source
trend-pulse is designed to be extensible. Adding a new source is ~30 lines:
from trend_pulse.sources.base import TrendSource, TrendItem
class MySource(TrendSource):
name = "my_source"
description = "My custom trend source"
requires_auth = False
async def fetch_trending(self, geo="", count=20) -> list[TrendItem]:
# Your data fetching logic here
return [
TrendItem(
keyword="trending topic",
score=85.0,
source=self.name,
url="https://example.com",
)
]
Register it with the aggregator:
from trend_pulse.aggregator import TrendAggregator
agg = TrendAggregator(sources=[MySource, ...])
result = await agg.trending()
Why We Built This
We run a social media automation pipeline that posts to Threads, Instagram, and Facebook. Every day, the pipeline needs to:
- Discover what’s trending in our niche (AI, developer tools, tech)
- Analyze which topics have viral potential
- Create platform-optimized content
- Publish across multiple accounts
For step 1, we needed trend data from multiple sources. We tried Google Trends scrapers (broke constantly), Twitter API (too expensive), and various “trend aggregator” SaaS tools (limited free tiers).
So we built trend-pulse: one library, 15 sources, zero cost.
The content guide tools (step 2-3) came from the observation that template-based content generation produces generic, low-quality posts. When we switched to “MCP guides LLM” architecture — where tools provide structured frameworks and the AI creates original content — post quality jumped from C grade (~60) to A grade (~85).
Technical Details
- 3,400 lines of Python (src)
- 117 tests across 4 test modules
- Pure Python — core dependencies are just
httpx+aiosqlite - Async-first — all source fetchers are async for parallel execution
- SQLite history — local storage, no external DB needed
- Bilingual — all guide tools support English and Traditional Chinese
Install
# Core only
pip install trend-pulse
# With MCP server
pip install "trend-pulse[mcp]"
# Everything (MCP + enhanced Google Trends)
pip install "trend-pulse[all]"
Or run the MCP server without installing:
uvx --from "trend-pulse[mcp]" trend-pulse-server
What’s Next
- More sources (Product Hunt, ArXiv, X/Twitter public metrics)
- Trend correlation analysis (detect cross-platform signal amplification)
- Webhook notifications for rising trends
- Dashboard UI
GitHub: github.com/claude-world/trend-pulse PyPI: pypi.org/project/trend-pulse License: MIT
Give it a star if you find it useful. PRs welcome.