Evidence-first social-media research CLI + Claude Code skill
Project description
social-research-probe
Evidence-first social-media research CLI + Claude Code skill
srp fetches YouTube content, scores it by trust/trend/opportunity, auto-corroborates claims, runs 15+ statistical models, and renders an HTML report — all from a single CLI command.
Table of contents
- What it does
- Quickstart
- Installation
- Usage
- Configuration
- Documentation
- Architecture
- Contributing
- Security
- License
- Changelog
What it does
srp research runs a five-stage evidence pipeline:
- Fetch — queries YouTube for recent content on a topic (configurable count and recency window).
- Score — ranks items by a composite trust / trend / opportunity score derived from channel credibility, view velocity, and cross-channel repetition.
- Enrich — fetches transcripts (yt-dlp captions → Whisper fallback) and generates 100-word LLM summaries for the top results.
- Analyse — runs 15+ statistical models (regression, Bayesian linear, bootstrap, k-means, PCA, Kaplan–Meier, …) and renders charts as PNGs.
- Synthesise — auto-corroborates the top results via Exa/Brave/Tavily, attaches structured LLM synthesis sections, and emits a Markdown + HTML report.
It also ships as a Claude Code skill (/srp) so you can invoke research, manage topics/purposes, and receive formatted reports directly inside a Claude Code session.
Quickstart
pip install social-research-probe
srp config set-secret YOUTUBE_API_KEY
srp research "AI safety" "latest-news"
Or in natural-language mode (requires llm.runner configured):
srp research "what are researchers saying about model collapse?"
Installation
# pip
pip install social-research-probe
# pipx (isolated environment, recommended for CLI tools)
pipx install social-research-probe
# uvx (run without installing)
uvx social-research-probe research "AI safety" "latest-news"
# From source (development)
git clone https://github.com/reshinto/social-research-probe
cd social-research-probe
pip install -e '.[dev]'
After installing, set your YouTube API key:
srp config set-secret YOUTUBE_API_KEY
See docs/installation.md for full setup including optional keys and the Claude Code skill bundle.
Usage
# Research a topic with a specific purpose
srp research "AI agents" "latest-news"
srp research youtube "AI agents" "latest-news,trends"
# Natural-language query (auto-classifies topic + purpose)
srp research "who is winning the LLM benchmarks race?"
# Change how many videos are fetched (default: 20)
srp config set platforms.youtube.max_items 50
# Manage topics and purposes
srp update-topics --add "climate tech"
srp update-purposes --add "emerging-research"="Track peer-reviewed preprints"
# Config
srp config show
srp config set llm.runner claude
srp config set-secret YOUTUBE_API_KEY
# Install as a Claude Code skill
srp install-skill
Full flag reference: srp --help / srp <subcommand> --help.
See docs/usage.md for a complete guide including corroboration modes, report generation, and the pending-proposal workflow.
Configuration
Key settings in ~/.social-research-probe/config.toml:
| Setting | Default | What it controls |
|---|---|---|
platforms.youtube.max_items |
20 |
How many videos to fetch per search |
platforms.youtube.recency_days |
90 |
How far back to search (days) |
llm.runner |
none |
Which LLM to use for summaries and synthesis |
corroboration.backend |
host |
Which web-search backend to corroborate with |
Change any setting with srp config set <key> <value>, e.g.:
srp config set platforms.youtube.max_items 50
srp config set platforms.youtube.recency_days 30
srp config set llm.runner claude
Documentation
| Document | What it covers |
|---|---|
| docs/README.md | Documentation hub — all docs by audience |
| docs/how-it-works.md | How fetching, scoring, and transcripts work; vs pure-LLM approach |
| docs/installation.md | Install (pip/pipx/uvx), API keys, LLM runner, verification |
| docs/usage.md | Run research, read output, configure video count |
| docs/corroboration.md | Claim corroboration: what it is, backends, configuration |
| docs/llm-runners.md | Supported runners, ensemble, what breaks without one |
| docs/statistics.md | All 15+ statistical models: what they measure, how to interpret |
| docs/charts.md | Every chart: what it shows, where it's saved, file persistence |
| docs/commands.md | Every flag, config key, exit code, environment variable |
| docs/architecture.md | System design, data flow, tradeoffs, known limitations |
| docs/adding-a-platform.md | How to add a new platform adapter (TikTok, Reddit, RSS) |
| docs/design-patterns.md | Patterns with why/why-not rationale |
| docs/testing.md | Test tiers, TDD workflow, 100% coverage gate |
| docs/security.md | Secret storage, network egress, hardening |
| CONTRIBUTING.md | Development workflow, TDD rules, file-size limits |
| SECURITY.md | Responsible disclosure policy |
| CHANGELOG.md | Release history |
Architecture
srp is a layered Python CLI. The CLI parses arguments and delegates to the research pipeline, which calls platform adapters, a scoring layer, a stats suite, an LLM ensemble, and corroboration backends, then feeds the result to the synthesis layer.
See docs/architecture.md for the full system design including data flow diagrams, async model, design tradeoffs, and extension points.
Contributing
See CONTRIBUTING.md.
Security
See SECURITY.md.
License
MIT © 2026 Terence — see LICENSE.
Changelog
See CHANGELOG.md.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file
social_research_probe-0.0.2.tar.gz.File metadata
File hashes
d16f7ab03cab8c77d6261b44afd84e638ac62e30faf1d1073dbcf57d157519058c4a8d201b5dd290274765a1b077769a1f9c976cee2a2df27af138a91bfeb958f70578485a556775db59d2be2c5e4754See more details on using hashes here.
Provenance
The following attestation bundles were made for
social_research_probe-0.0.2.tar.gz:Publisher:
Attestations: Values shown here reflect the state when the release was signed and may no longer be current.release.ymlon reshinto/social-research-probe-
Statement type:
-
Predicate type:
-
Subject name:
-
Subject digest:
-
Sigstore transparency entry: 1342566650
- Sigstore integration time:
Source repository:https://in-toto.io/Statement/v1https://docs.pypi.org/attestations/publish/v1social_research_probe-0.0.2.tar.gzd16f7ab03cab8c77d6261b44afd84e638ac62e30faf1d1073dbcf57d15751905-
Permalink:
-
Branch / Tag:
-
Owner: https://github.com/reshinto
-
Access:
Publication detail:reshinto/social-research-probe@3842e6bab27eccc2589145ffe98924f6024fcfa3refs/heads/mainpublichttps://token.actions.githubusercontent.comgithub-hostedrelease.yml@3842e6bab27eccc2589145ffe98924f6024fcfa3push