vox-pop

by mushfique-dgist

Not rated
GitHub

About

Public opinion for LLMs — HackerNews, Reddit, 4chan, Stack Exchange, Telegram. Zero API keys.

Details

Author
mushfique-dgist
Categories
Search, Other

Setup

Install vox-pop in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/mushfique-dgist/vox-pop

Follow the installation instructions in the repository README, then restart your MCP client.

Your LLM knows what textbooks say.

This tells it what peopleactuallythink.

9 platformsSemantic routingLLM intelligence layerWorks without API keys

Install•Quick Start•Platforms•How Routing Works•MCP Server•Claude Code Plugin•Roadmap

> How do I debloat my face? Lymphatic drainage, reduce sodium, cold compress, drink water, sleep elevated... (correct but soulless — same answer as every health blog since 2015)
★ Searched: Reddit, 4chan /fit/, SE Fitness Consensus (70%+ of threads): → Reduce sodium + 3L water/day → Sleep elevated on back Controversial: → Gua sha: loved on Reddit, mocked on /fit/ as placebo What actually worked: → "Cut dairy for 2 weeks — face visibly deflated" (847↑ r/SCA) → "Minox bloat is real, went away month 3" (/fit/, recurring) ⚠ Some suggestions are unvetted.

That's it. All 9 platforms work with zero API keys. Optional LLM key unlocks smarter routing (seeHow Routing Works).

CLI— search all 9 platforms in one command:

vox-pop search "should I learn Rust or Go"

Perspective mode— see how opinions evolved over time:

vox-pop search "rust vs go" --perspective --platforms hackernews,reddit
## hackernews — Then vs Now Historical (1+ year ago): > "Rust vs. Go" — hackernews | +481 points | 580 replies | 2017-01-18 Recent (last 6 months): > "Rust vs. Go: Memory Management" — hackernews | +2 points | 2025-11-15 ## reddit — Then vs Now Historical: > "Experienced developer but total beginner in Rust..." — reddit | +124 points | 34 replies | 2025-03-14 Recent: > "I rebuilt the same API in Java, Go, Kotlin, and Rust — here are the numbers" — reddit | +174 points | 59 replies | 2026-03-19

The shift tells a story:2017 was a flame war. 2026 is domain-specific pragmatism.

Standard search— flat results from all platforms:

vox-pop search "should I learn Rust or Go" --limit 3
### hackernews (45 found) > "I am a full stack TypeScript dev looking to broaden my skill set..." — hackernews | +78 points | 42 replies | by throwaway_dev Source: https://news.ycombinator.com/item?id=41907717 ### 4chan /g/ (12 found) > "Rust is a mass psychosis. Go is boring but you'll actually ship..." — 4chan /g/ | 129 replies | by Anonymous ### reddit (8 found) > "After 2 years with both: Rust for systems, Go for services..." — reddit | +234 points | 87 replies | by senior_dev_42
import asyncio from vox_pop.core import search_multiple, format_context, get_default_providers async def main(): results = await search_multiple( "best laptop for programming", providers=get_default_providers(), ) print(format_context(results)) asyncio.run(main())

Every platform works out of the box. No tokens, no OAuth, no rate limit headaches.

Queries can be anything — a single word, a paragraph, an essay-length D&D rules question. vox-pop understands them all through afour-tier routing system:

User query: "i was looking into a solid laptop for linux something from hp, what would a savvy person pick" │ ┌───────────────────────────────▼──────────────────────────────┐ │ Tier 1: MCP Hints │ │ Calling LLM provides routing_hints directly │ │ (skips all other tiers) │ ├─────────────────────────────────────────────────────────────┤ │ Tier 2: LLM Query Rewrite ← like Perplexity │ │ Cheap LLM call rewrites query to search-optimized form │ │ "hp laptop linux compatibility" + routes to communities │ │ Supports: Anthropic, OpenAI, Ollama (local/free) │ ├─────────────────────────────────────────────────────────────┤ │ Tier 3: Semantic Embeddings ← free, no API key │ │ FastEmbed (33MB model) understands meaning, not keywords │ │ Dynamic catalog: 77 4chan boards + 180 SE sites + static │ │ "contradictory spell behaviour" → SE:rpg, r/DnD, /tg/ │ ├─────────────────────────────────────────────────────────────┤ │ Tier 4: Broad Defaults │ │ Search popular destinations everywhere │ └─────────────────────────────────────────────────────────────┘ │ ▼ Routes to: r/buildapc, r/linux, r/hardware │ /g/ SE:hardwarerecs, SE:askubuntu │ lemmy:linux@lemmy.ml

Tier 2works like Perplexity/ChatGPT Search — the LLM rewrites your conversational query into a clean search string and picks the right communities. Set any of these env vars to enable:

ANTHROPIC_API_KEY=... # Uses Claude Haiku (~$0.0003/query) OPENAI_API_KEY=... # Uses GPT-4o Mini OLLAMA_HOST=... # Uses local Ollama (free)

Tier 3runs entirely locally with zero API keys. A 33MB embedding model understands that "contradictory spell behaviour on a creature" means tabletop RPG rules — zero shared keywords needed. On first run, it fetches all 4chan boards and Stack Exchange sites dynamically, embeds everything, and caches to disk.

No configuration needed.If an LLM key is set, Tier 2 is used. Otherwise Tier 3 handles it. If fastembed isn't installed, Tier 4 (broad search) still works.

Works withClaude Code,Cursor,Windsurf, and any MCP-compatible client.

{ "mcpServers": { "vox-pop": { "command": "python", "args": ["-m", "vox_pop.server"] } } }

Therouting_hintsparameter lets the calling LLM specify exactly where to search:

routing_hints: "reddit:MechanicalKeyboards,4chan:g,stackexchange:hardwarerecs"

When no hints are provided, therouting systemhandles it automatically.

The skillauto-triggerswhen your question would benefit from real opinions. Just ask naturally:

> "What do people think about living in Berlin?" → activates > "Should I use Next.js or Remix?" → activates > "Best gym routine for beginners?" → activates > "What's the capital of France?" → does not activate

Manual search:/vox-search "your query"

┌──────────────────────────────────────────────────────────┐ │ Layer 3: Claude Code / MCP Client │ │ Auto-triggering skill + /vox-search │ ├──────────────────────────────────────────────────────────┤ │ Layer 2: MCP Server │ │ search_opinions · perspectives · threads · list │ ├──────────────────────────────────────────────────────────┤ │ Layer 1: Python Library │ │ ┌────────────────────────────────────────────────────┐ │ │ │ Smart Router (4-tier) │ │ │ │ MCP hints → LLM rewrite → FastEmbed → broad │ │ │ └────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────┐ │ │ │ 9 Providers with fallback chains │ │ │ │ HN · Reddit · 4chan · SE · Telegram │ │ │ │ Lobsters · Lemmy · LessWrong · XenForo Forums │ │ │ └────────────────────────────────────────────────────┘ │ │ ┌────────────────────────────────────────────────────┐ │ │ │ Dynamic Catalog │ │ │ │ 77 4chan boards + 180 SE sites fetched from APIs │ │ │ │ + 120 static destinations · cached to disk │ │ │ └────────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────┘

Each provider implementsautomatic fallback— if one source is down, the next is tried. Reddit alone has three fallback sources (Pullpush → Arctic Shift → Redlib).

New provider? → Subclass Provider in src/vox_pop/providers/base.py New routing destination → Add to DESTINATIONS in router.py (one line) Dynamic catalog source → Add a _fetch__destinations() function in router.py Better LLM prompt? → Improve _LLM_SYSTEM in router.py Multilingual support? → Swap FastEmbed model to bge-m3 in SemanticRouter Dead instance? → Open an issue with the instance URL Regional platform? → DC Inside, Naver, 5ch, VK, Bilibili — all welcome

vox populi, vox dei*
the voice of the people is the voice of god

Search global news using natural language. Webz.io News Search API returns the most relevant articles and content, with filters for source, country, language, date, sentiment, and category.

Live data from Twitter, Reddit, the web, GitHub, Amazon and YouTube for AI agents - one hosted MCP server, no API keys.

Comprehensive web, news, and social media search and analysis using xAI's Grok API.

Search and retrieve content from the Xiaohongshu (Red Book) platform.

Social media search and analytics across X, Reddit, Bluesky, YouTube, LinkedIn, Facebook, Instagram, and Weibo via the Rolli IQ API

Reddit, Twitter, Google Trends, LinkedIn, Medium, Dev.to & News MCP server that uses your Chrome login session. 13 tools, fully local, pip install.

Xiaohongshu XHS RedNote Social Media Data Assistant MCP

Read-only Xiaohongshu / XHS / RedNote MCP for note search, note details, paginated comments, creator profiles, and creator note lists.

An MCP server for interacting with the Reddit API, enabling searches for posts, comments, and subreddits.

Hosted, Stateless & Multitenant Reddit MCP server enables AI assistants to search, retrieve, and analyze posts, comments, and communities through Reddit.

Fetch, convert, and search AWS documentation pages, with recommendations for related content.

Search campgrounds around the world on campertunity, check availability, and provide booking links.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.