Search what people are actually saying across Reddit, Hacker News, Polymarket, GitHub, X/Twitter, Bluesky, YouTube, and the Web.
buzzsearch is a zero-dependency Python CLI tool that queries multiple social platforms simultaneously and returns structured JSON. It's designed for LLM agents, data pipelines, and terminal-based research.
$ python3 buzzsearch.py "AI agents"
...searches across all sources in parallel and outputs JSON with platform, content, engagement metrics, and dates.
- 7+ sources, one command — Reddit, Hacker News, X/Twitter, Bluesky, Polymarket, GitHub, YouTube, Web
- Zero-dependency core — pure Python stdlib (no pip install required for most sources)
- Parallel execution — all sources queried concurrently via
ThreadPoolExecutor - Graceful degradation — if a source fails (rate limit, no API key), the others continue
- Structured JSON output — designed for LLM consumption and data pipelines
- Hot topics mode — run without arguments to see what's trending right now
- Auth-optional — 4 free sources work immediately (Reddit, HN, Polymarket, GitHub)
# Clone and run
git clone https://github.com/andrzj/buzzsearch.git
cd buzzsearch
# Search a topic
python3 buzzsearch.py "AI safety"
# Hot topics (no topic = trending)
python3 buzzsearch.pyOutput (JSON with source-keyed items):
{
"mode": "search",
"topic": "AI safety",
"from_date": "2026-05-16",
"to_date": "2026-06-15",
"items": {
"reddit": [...],
"hackernews": [...],
"polymarket": [...],
"github": [...],
"x": [...],
"youtube": [...],
"web": [...]
},
"errors": {}
}| Level | Purpose | Results per source |
|---|---|---|
quick |
Fast overview | 5–10 |
default |
Balanced | 15–25 |
deep |
Exhaustive | 25–50 |
python3 buzzsearch.py "llm fine-tuning" --depth deep --days 60| Source | API | Notes |
|---|---|---|
| public JSON + RSS | Falls back to RSS when search.json is blocked | |
| Hacker News | Algolia | Reliable, no limit |
| Polymarket | Gamma API | Prediction markets with odds |
| GitHub | Search API | Rate-limited without token (~10 req/min) |
| Source | Auth | Env variable |
|---|---|---|
| X/Twitter | xAI API key | XAI_API_KEY |
| X/Twitter | Cookie auth (Camofox) | Browser-based login, stores cookies |
| Bluesky | App password | BSKY_HANDLE + BSKY_APP_PASSWORD |
| YouTube | yt-dlp binary | Install with pip3 install yt-dlp |
| Web | Brave / Exa / Serper / Parallel key | BRAVE_SEARCH_API_KEY, EXA_API_KEY, etc. |
Set API keys via environment variables or a .env file:
XAI_API_KEY=xai-...
BSKY_HANDLE=handle.bsky.social
BSKY_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx
GITHUB_TOKEN=ghp_...
BRAVE_SEARCH_API_KEY=BSA...
The script looks for .env files in this order:
- Current working directory (
.env) ~/.buzzsearch.env~/.hermes/.env
Two methods (tried in order):
- xAI API (recommended): Set
XAI_API_KEY. Uses grok-3's live search over X posts. - Cookie auth: Run
python3 buzzsearch.py --x-logininside a Hermes Agent session with the Camofox browser. This stores session cookies toscripts/cache/x_cookies.jsonfor subsequent searches.
The xAI API key approach requires no browser and is preferred.
Run without arguments:
python3 buzzsearch.pyThis queries trending subreddits, HN front page, Polymarket trending markets, and GitHub trending repos. Returns a curated snapshot of what's happening right now.
buzzsearch's JSON output is designed to be consumed by LLM agents. The structured format includes engagement metrics, URLs, dates, and relevance scores — everything an agent needs to synthesize a research brief.
For Hermes Agent users, buzzsearch is available as a built-in skill:
# In a Hermes chat session:
buzzsearch what people are saying about AGI
buzzsearch/
├── buzzsearch.py # Main search script (zero pip dependencies)
├── docs/
│ ├── api-quirks.md # Known API behaviors and workarounds
│ ├── x-cookie-auth.md # X cookie auth technical reference
│ └── hermes-tools.md # Using from Hermes Agent
├── scripts/
│ └── cache/ # X cookie storage (gitignored)
├── LICENSE
└── README.md
MIT