Growth Lab is an open-source growth system that uses coding agents to understand a product, research markets, execute growth activities, and learn from the results. It is designed for teams that want to manage growth work across channels such as SEO and Xiaohongshu through natural-language collaboration, persistent product context, and recorded outcomes. Catalogue add-ons define parts of its product models, research methods, execution workflows, and agent operation.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add tsingyuai/growth-lab --skill media-crawlergit clone --depth 1 https://github.com/tsingyuai/growth-labWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tsingyuai/growth-lab/media-crawler)<a href="https://agentmods.dev/skills/tsingyuai/growth-lab/media-crawler"><img src="https://agentmods.dev/badge/skills/tsingyuai/growth-lab/media-crawler/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tsingyuai/growth-lab/media-crawler"><img src="https://agentmods.dev/badge/skills/tsingyuai/growth-lab/media-crawler.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00094 | $0.00687 |
| Opus 5 | $0.00047 | $0.00344 |
| Sonnet 5 | $0.00019 | $0.00137 |
| Haiku 4.5 | $0.00009 | $0.00069 |
Grade A, and why
media-crawler scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 42 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MediaCrawler
This is the shared tool layer. Read operations.md before changing the external checkout. Then invoke exactly one platform Skill:
MediaCrawler does not support Twitter/X or Reddit. Do not imply otherwise.
Contract
- If install or authentication is missing, invoke onboard-growth-lab. Do not duplicate the global audit here. Onboarding must obtain the user's explicit ban-risk acknowledgement before login or crawling, require existing-Chrome CDP with no browser or Cookie fallback, and verify each enabled platform with a non-empty minimal real read. Installation, a persisted profile, or a visible login alone is not readiness.
- Treat
${MEDIACRAWLER_DIR:-${GROWTHLAB_CLIENT_ROOT:-$HOME/.growth-lab/clients}/MediaCrawler}as an external checkout. Never vendor it or commit its browser profile, cookies, databases, or downloaded data. - Before a run, record upstream commit, platform, crawl type, keywords/IDs, config changes, login type, comment/media flags, and destination.
- Modify only the documented platform config and
config/base_config.py; show the diff before running. Restore unrelated example values. - Run serially and conservatively. Never silently retry risk-control or authentication errors.
- Copy the required output into the invoking Model's
memory/<model>/...; leave source provenance beside it. A Collector does not invent a new Memory owner. - Apply the upstream non-commercial learning license and each target platform's terms.
Standard invocation
cd "${MEDIACRAWLER_DIR:-${GROWTHLAB_CLIENT_ROOT:-$HOME/.growth-lab/clients}/MediaCrawler}"
uv run main.py --platform <dy|ks|bili|wb|tieba|zhihu> --lt qrcode --type <search|detail|creator>
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 42 lines · 94 tokens per session scan A 81f0640b59fa
media-crawler is a skill published in the GitHub repository tsingyuai/growth-lab (1,999 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 94 tokens to every session and 687 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
synthesis-explore
Synthesis EXPLORE stage for the Diffmode growth-tactics pipeline (fuses the blind-combination draw + emergent-mechanism derivation — formerly two separate synthesis steps — into ONE structural-check-only stage). Reads the per-run growth-factors.json (LIGHT vector DB) + synthesis-constraints.json + founder-input +…
growth-factors-mining
Builds a per-run LIGHT growth-vector database for the Diffmode growth-tactics pipeline by mining public growth case studies fresh, every run, and distilling each into atomic "growth factors" (transferable mechanisms). Clean-room — NEVER reads the proprietary tacticsDB. Outputs growth-factors.json (20-40 vectors spread…
diagnostics-intake
Fast founder-input capture for the Diffmode growth-tactics pipeline (the diagnostics stage). Produces WS/01-diagnostics/founder-input.md in the exact schema the enrichment + synthesis stages read. Two modes — (A) URL mode researches a product's website (homepage/pricing/about) plus a web-research pass to prefill the…
lite-constraints
Generates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room, no-Python replacement for the proprietary Python constraints generator. Emits the white-space pairs, mandatory…
viral-marketing-playbook
Design viral loops into your product — referral programs, invite systems, and share mechanics that drive exponential growth. Includes K-factor calculations and real examples from Dropbox, Slack, and Notion. By @WeiYipei.
cro-optimization
Run conversion rate optimization through hypothesis-driven testing including audit, hypothesis generation, test design, statistical analysis, and rollout decisions. Use this skill whenever the user wants to optimize conversion, run A/B tests, audit a funnel, generate test hypotheses, design experiments, or analyze…