#540 by GitHub stars

tsingyuai/growth-lab

An end-to-end growth tool that understands the product, fetch the data it needs, researches the market, executes campaigns, and reviews results to improve the next round of growth. 从代码到市场的开源端到端增长工具。理解产品、接入信息渠道、研究市场、执行增长行动,并基于真实数据自我改进。

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

collectors/media-crawler/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/media-crawler-bilibili/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/media-crawler-douyin/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/media-crawler-kuaishou/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/media-crawler-tieba/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/media-crawler-weibo/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/media-crawler-zhihu/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/research-product/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/research-seo-demand/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

collectors/xiaohongshu-mcp/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/create-seo-page/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/generate-image/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/review-seo-page/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/review-seo-performance/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/screenshot-assets/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/wechat-article-compose/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/wechat-mp-publish/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

executors/xhs-render-cards/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

models/onboard-growth-lab/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

models/run-seo-page-loop/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

models/run-wechat-article-loop/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

models/xhs-replicate/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2d0807c5831c

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 2d0807c5831c69eac4267702f539957a621e7689

git clone --filter=blob:none --no-checkout https://github.com/tsingyuai/growth-lab.git .hotskills/tsingyuai-growth-lab && git -C .hotskills/tsingyuai-growth-lab checkout --detach 2d0807c5831c69eac4267702f539957a621e7689 # Copy each selected skill directory from .hotskills/tsingyuai-growth-lab into .agents/skills/<skill-name>/
2kGitHub stars
-3stars in 7 days
22skills in this repository
0commits in 30 days

Heat

0.9
  • Star growth, last 7 daysAhead of 2% of tracked repositories
  • Star growth, last 24 hoursAhead of 3% of tracked repositories
  • Rank movement, last 7 daysAhead of 40% of tracked repositories
  • Commits, last 30 daysAhead of 0% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 5, 20261,977

Individual skills in this repository

How it works

media-crawler

When your agent uses it

Install, authenticate, configure, operate, and troubleshoot the external MediaCrawler client shared by Douyin, Kuaishou, Bilibili, Weibo, Tieba, and Zhihu collectors. Xiaohongshu uses the separate browser-first xiaohongshu-mcp Collector. Use when auditing this client, onboarding a supported platform account, selecting search/detail/creator modes, enabling comments or media, locating outputs, or diagnosing crawler failures.

What it loads into context

Frontmatter

98 tokens

Always available to the agent

SKILL.md

687 tokens

When the skill is activated

Reference documents

5,291 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Contract
  2. Standard invocation
  3. Completion report

Files

  • ../media-crawler-bilibili/SKILL.mddoc1,426 bytes
  • ../media-crawler-douyin/SKILL.mddoc1,521 bytes
  • ../media-crawler-kuaishou/SKILL.mddoc1,351 bytes
  • ../media-crawler-tieba/SKILL.mddoc1,350 bytes
  • ../media-crawler-weibo/SKILL.mddoc1,361 bytes
  • ../media-crawler-zhihu/SKILL.mddoc1,398 bytes
  • SKILL.mdcore2,922 bytes
  • SKILL.mdcore2,922 bytes
  • SKILL.mdcore2,922 bytes
  • SKILL.mdcore2,922 bytes
  • agents/openai.yamlasset196 bytes
  • references/operations.mddoc5,981 bytes
  • ../../models/onboard-growth-lab/SKILL.mddoc8,335 bytes
Read SKILL.md

# MediaCrawler

This is the shared tool layer. Read [operations.md](references/operations.md) before changing the external checkout. Then invoke exactly one platform Skill:

- [Douyin](../media-crawler-douyin/SKILL.md)
- [Kuaishou](../media-crawler-kuaishou/SKILL.md)
- [Bilibili](../media-crawler-bilibili/SKILL.md)
- [Weibo](../media-crawler-weibo/SKILL.md)
- [Tieba](../media-crawler-tieba/SKILL.md)
- [Zhihu](../media-crawler-zhihu/SKILL.md)

MediaCrawler does not support Twitter/X or Reddit. Do not imply otherwise.

## Contract
View the complete source on GitHub

Skills included

  • media-crawler
  • media-crawler-bilibili
  • media-crawler-douyin
  • media-crawler-kuaishou
  • media-crawler-tieba
  • media-crawler-weibo
  • media-crawler-zhihu
  • research-product
  • research-seo-demand
  • xiaohongshu-mcp
  • create-seo-page
  • generate-image
  • review-seo-page
  • review-seo-performance
  • screenshot-assets
  • wechat-article-compose
  • wechat-mp-publish
  • xhs-render-cards
  • onboard-growth-lab
  • run-seo-page-loop
  • run-wechat-article-loop
  • xhs-replicate

Repository facts

License
Apache-2.0
Created
Jul 24, 2026
Last pushed
Sep 28, 2026
Forks
169
Open issues
0
Project activity
Active

Rank over the last 12 weeks

Now #540 · best #400 · down 77 in 30 days

  1. #532 on Oct 31
  2. #533 on Nov 1
  3. #535 on Nov 2
  4. #536 on Nov 3
  5. #537 on Nov 4
  6. #540 since Nov 5
54 earlier periods
  1. #846 on Aug 2
  2. #675 on Aug 7
  3. #618 on Aug 8
  4. #582 on Aug 9
  5. #559 on Aug 10
  6. #530 on Aug 11
  7. #503 on Aug 12
  8. #494 on Aug 13
  9. #478 on Aug 14
  10. #451 on Aug 15
  11. #447 on Aug 16
  12. #438 on Aug 17
  13. #429 on Aug 18
  14. #422 on Aug 19
  15. #416 on Aug 20
  16. #422 on Aug 21
  17. #412 on Aug 22
  18. #426 from Aug 23 to Aug 24
  19. #419 on Aug 25
  20. #418 from Aug 26 to Aug 27
  21. #412 on Aug 28
  22. #408 on Aug 29
  23. #400 on Aug 30
  24. #414 on Aug 31
  25. #415 on Sep 2
  26. #411 on Sep 6
  27. #421 on Sep 7
  28. #424 on Sep 8
  29. #423 on Sep 10
  30. #422 on Sep 13
  31. #432 on Sep 14
  32. #436 on Sep 16
  33. #441 on Sep 18
  34. #436 on Sep 20
  35. #438 on Sep 21
  36. #435 from Sep 24 to Sep 25
  37. #449 on Sep 28
  38. #442 on Oct 5
  39. #449 on Oct 6
  40. #454 on Oct 7
  41. #463 on Oct 8
  42. #464 on Oct 9
  43. #461 on Oct 11
  44. #475 on Oct 14
  45. #478 on Oct 15
  46. #472 on Oct 17
  47. #490 on Oct 19
  48. #492 on Oct 20
  49. #492 on Oct 22
  50. #486 on Oct 23
  51. #519 on Oct 25
  52. #527 on Oct 28
  53. #529 on Oct 29
  54. #531 on Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 3, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 27 notes
  • collectors/media-crawler/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/media-crawler/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/media-crawler/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/media-crawler-kuaishou/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/research-seo-demand/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/research-seo-demand/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/research-seo-demand/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/research-seo-demand/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/research-seo-demand/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/xiaohongshu-mcp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/xiaohongshu-mcp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/xiaohongshu-mcp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/generate-image/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/generate-image/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/generate-image/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • collectors/bing-webmaster/bing-webmaster.mjs:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/review-seo-performance/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/screenshot-assets/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/screenshot-assets/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • executors/screenshot-assets/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 379 signals by file

CONFIGURATION.md

  • Network accessline 23
    XHS_MCP_ENDPOINT=http://127.0.0.1:18063
  • Network accessline 23
    XHS_MCP_ENDPOINT=http://127.0.0.1:18063
  • Network accessline 23
    XHS_MCP_ENDPOINT=http://127.0.0.1:18063
  • Network accessline 23
    XHS_MCP_ENDPOINT=http://127.0.0.1:18063
  • Network accessline 46
    [Credential-related source omitted]
  • Network accessline 46
    [Credential-related source omitted]
  • Network accessline 46
    [Credential-related source omitted]
  • Network accessline 46
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 47
    OPENAI_BASE_URL=https://api.openai.com
  • Network accessline 47
    OPENAI_BASE_URL=https://api.openai.com
  • Network accessline 47
    OPENAI_BASE_URL=https://api.openai.com
  • Network accessline 47
    OPENAI_BASE_URL=https://api.openai.com
  • Network accessline 58
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 59
    GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com
  • Network accessline 59
    GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com
  • Network accessline 59
    GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com
  • Network accessline 59
    GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]

collectors/bing-webmaster/bing-webmaster.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    Executable file; content unavailable
  • Network accessline 5
    const API_BASE = 'https://ssl.bing.com/webmaster/api.svc/json';
  • Network accessline 47
    const response = await fetch(url, {
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 150
    [Credential-related source omitted]

collectors/media-crawler/SKILL.md

  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]

collectors/media-crawler/references/operations.md

  • Network accessline 5
    Source: `https://github.com/NanmiCoder/MediaCrawler`. The repository is external because its license is for non-commercial learning/research. The unified onboarding Skill must obtain confirmation before clone/install/update.
  • Network accessline 5
    Source: `https://github.com/NanmiCoder/MediaCrawler`. The repository is external because its license is for non-commercial learning/research. The unified onboarding Skill must obtain confirmation before clone/install/update.
  • Network accessline 8
    git clone https://github.com/NanmiCoder/MediaCrawler.git "$HOME/.growth-lab/clients/MediaCrawler"
  • Network accessline 8
    git clone https://github.com/NanmiCoder/MediaCrawler.git "$HOME/.growth-lab/clients/MediaCrawler"
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 30
    1. 检查 Chrome 版本至少 144,为 MediaCrawler 选择一个固定、仓库外的 profile 目录和未占用端口。默认可使用 `$HOME/.growth-lab/browser-profiles/mediacrawler-chrome` 和 `9223`。 2. 使用安装的 Chrome 启动该实例:`<chrome> --remote-debugging-port=<port> --user-data-dir=<profile-dir> --no-fir
  • Network accessline 30
    1. 检查 Chrome 版本至少 144,为 MediaCrawler 选择一个固定、仓库外的 profile 目录和未占用端口。默认可使用 `$HOME/.growth-lab/browser-profiles/mediacrawler-chrome` 和 `9223`。 2. 使用安装的 Chrome 启动该实例:`<chrome> --remote-debugging-port=<port> --user-data-dir=<profile-dir> --no-fir
  • Network accessline 31
    2. 使用安装的 Chrome 启动该实例:`<chrome> --remote-debugging-port=<port> --user-data-dir=<profile-dir> --no-first-run --no-default-browser-check`。这是持久化专用 profile,不得每轮创建临时目录。 3. 确认外部 checkout 中 `ENABLE_CDP_MODE = True`、`CDP_CONNECT_EXISTING = True` 且 
  • Network accessline 31
    2. 使用安装的 Chrome 启动该实例:`<chrome> --remote-debugging-port=<port> --user-data-dir=<profile-dir> --no-first-run --no-default-browser-check`。这是持久化专用 profile,不得每轮创建临时目录。 3. 确认外部 checkout 中 `ENABLE_CDP_MODE = True`、`CDP_CONNECT_EXISTING = True` 且 
  • Network accessline 32
    3. 确认外部 checkout 中 `ENABLE_CDP_MODE = True`、`CDP_CONNECT_EXISTING = True` 且 `CDP_DEBUG_PORT = <port>`。用 `curl --noproxy '*' http://127.0.0.1:<port>/json/version` 确认返回包含 `webSocketDebuggerUrl` 的可解析 JSON;当前 shell 有代理时必须绕过 localhost。
  • Network accessline 32
    3. 确认外部 checkout 中 `ENABLE_CDP_MODE = True`、`CDP_CONNECT_EXISTING = True` 且 `CDP_DEBUG_PORT = <port>`。用 `curl --noproxy '*' http://127.0.0.1:<port>/json/version` 确认返回包含 `webSocketDebuggerUrl` 的可解析 JSON;当前 shell 有代理时必须绕过 localhost。
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]

collectors/research-seo-demand/SKILL.md

  • Access to secretsline 69
    [Credential-related source omitted]

collectors/research-seo-demand/scripts/analyze-page.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 21
    let res;   try {     res = await fetch(url, {
  • Network accessline 22
    try {     res = await fetch(url, {       headers: {
  • Network accessline 23
    res = await fetch(url, {

collectors/research-seo-demand/scripts/fetch-keyword-stats.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Network accessline 25
    process.exit(1); } const BASE = 'https://ssl.bing.com/webmaster/api.svc/json/GetKeywordStats';
  • Network accessline 27
    const BASE = 'https://ssl.bing.com/webmaster/api.svc/json/GetKeywordStats';
  • Network accessline 48
    [Credential-related source omitted]
  • Network accessline 49
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Network accessline 50
    const res = await fetch(url);

collectors/research-seo-demand/scripts/package-lock.json

  • Network accessline 12
    "node_modules/fsevents": {       "version": "2.3.2",       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
  • Network accessline 13
    "version": "2.3.2",       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",       "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
  • Network accessline 14
    "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
  • Network accessline 26
    "node_modules/playwright": {       "version": "1.62.0",       "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.0.tgz",
  • Network accessline 27
    "version": "1.62.0",       "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.0.tgz",       "integrity": "sha512-Z14dG305dgaLu6foB1TXQagFiW8JfSUIUaUuPaKQ6NtBPKF1P/qXcqfh6c6K/icPqdy37JmjbiBXf6JNg6Sylw==",
  • Network accessline 28
    "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.0.tgz",
  • Network accessline 44
    "node_modules/playwright-core": {       "version": "1.62.0",       "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.0.tgz",
  • Network accessline 45
    "version": "1.62.0",       "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.0.tgz",       "integrity": "sha512-nsNRyq0r2zsG8AcRHWknc9QRA5XCueC7gWMrs+Gx2tlZn9hcl8zudfh00lhJPY1DE7NmZ6bDsT9g2yey8mXljA==",
  • Network accessline 46
    "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.0.tgz",

collectors/research-seo-demand/scripts/package.json

  • Executable scriptline 1
    Executable file

collectors/research-seo-demand/scripts/render-pages.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

collectors/research-seo-demand/scripts/scrape-bing-serp.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 28
    try {     if (!href.includes('/ck/a')) return href;     const u = new URL(href, 'https://cn.bing.com').searchParams.get('u');
  • Network accessline 29
    if (!href.includes('/ck/a')) return href;     const u = new URL(href, 'https://cn.bing.com').searchParams.get('u');     if (!u || !u.startsWith('a1')) return href;
  • Network accessline 30
    const u = new URL(href, 'https://cn.bing.com').searchParams.get('u');
  • Network accessline 63
    const market = process.env.BING_MARKET || 'zh-CN';   const host = market.toLowerCase() === 'zh-cn' ? 'cn.bing.com' : 'www.bing.com';   const url = `https://${host}/search?q=${encodeURIComponent(keyword)}&setmkt=${encodeURIComponent(market)}
  • Network accessline 64
    const host = market.toLowerCase() === 'zh-cn' ? 'cn.bing.com' : 'www.bing.com';   const url = `https://${host}/search?q=${encodeURIComponent(keyword)}&setmkt=${encodeURIComponent(market)}&count=20`;   await page.goto(url, { waitUntil: 'domc
  • Network accessline 65
    const url = `https://${host}/search?q=${encodeURIComponent(keyword)}&setmkt=${encodeURIComponent(market)}&count=20`;

collectors/xiaohongshu-mcp/references/runtime.md

  • Network accessline 11
    - `XHS_MCP_ENDPOINT`: local HTTP endpoint, default `http://127.0.0.1:18063`;
  • Access to secretsline 33
    [Credential-related source omitted]

collectors/xiaohongshu-mcp/scripts/collect_selected_xiaohongshu_note.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 62
    "access_mode": "authorized read-only detail request via local xiaohongshu-mcp",             "note_id": candidate["note_id"],             "public_url": f"https://www.xiaohongshu.com/explore/{candidate['note_id']}",
  • Network accessline 63
    "note_id": candidate["note_id"],             "public_url": f"https://www.xiaohongshu.com/explore/{candidate['note_id']}",             "title": candidate["title"],
  • Network accessline 64
    "public_url": f"https://www.xiaohongshu.com/explore/{candidate['note_id']}",
  • Access to secretsline 79
    [Credential-related source omitted]

collectors/xiaohongshu-mcp/scripts/collect_xiaohongshu.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    DEFAULT_ENDPOINT = "http://127.0.0.1:18063"
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 65
    body = json.dumps(payload, ensure_ascii=False).encode("utf-8")             headers["Content-Type"] = "application/json"         request = urllib.request.Request(
  • Network accessline 66
    headers["Content-Type"] = "application/json"         request = urllib.request.Request(             f"{self.endpoint}{path}", data=body, headers=headers, method=method
  • Network accessline 67
    request = urllib.request.Request(
  • Network accessline 140
    return {         "note_id": note_id,         "public_url": f"https://www.xiaohongshu.com/explore/{note_id}",
  • Network accessline 141
    "note_id": note_id,         "public_url": f"https://www.xiaohongshu.com/explore/{note_id}",         "title": str(card.get("displayTitle") or ""),
  • Network accessline 142
    "public_url": f"https://www.xiaohongshu.com/explore/{note_id}",
  • Network accessline 229
    candidate = {         "note_id": note_id,         "public_url": f"https://www.xiaohongshu.com/explore/{note_id}",
  • Network accessline 230
    "note_id": note_id,         "public_url": f"https://www.xiaohongshu.com/explore/{note_id}",         "title": str(note.get("title") or ""),
  • Network accessline 231
    "public_url": f"https://www.xiaohongshu.com/explore/{note_id}",
  • Network accessline 256
    def download_image(opener: urllib.request.OpenerDirector, url: str, timeout: float) -> bytes:     request = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
  • Network accessline 257
    request = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
  • Access to secretsline 431
    [Credential-related source omitted]
  • Access to secretsline 471
    [Credential-related source omitted]
  • Access to secretsline 472
    [Credential-related source omitted]

collectors/xiaohongshu-mcp/scripts/login_xiaohongshu.ps1

  • Executable scriptline 1
    Executable file
  • Access to secretsline 7
    [Credential-related source omitted]

collectors/xiaohongshu-mcp/scripts/start_xiaohongshu_service.ps1

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 30
    $endpoint = Read-Setting "XHS_MCP_ENDPOINT" "http://127.0.0.1:18063"

collectors/xiaohongshu-mcp/scripts/test_collect_xiaohongshu.py

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    def do_POST(self):                 length = int(self.headers.get("Content-Length", "0"))                 requests.append(json.loads(self.rfile.read(length)))
  • Network accessline 30
    length = int(self.headers.get("Content-Length", "0"))                 requests.append(json.loads(self.rfile.read(length)))                 self.respond({"feeds": [{
  • Network accessline 31
    requests.append(json.loads(self.rfile.read(length)))
  • Network accessline 37
    "type": "normal",                         "displayTitle": "测试标题",                         "user": {"nickname": "公开作者", "avatar": "https://private.example/avatar"},
  • Network accessline 38
    "displayTitle": "测试标题",                         "user": {"nickname": "公开作者", "avatar": "https://private.example/avatar"},                         "interactInfo": {"likedCount": "12", "commentCount": "3", "collectedCount": "8"},
  • Network accessline 39
    "user": {"nickname": "公开作者", "avatar": "https://private.example/avatar"},
  • Network accessline 40
    "interactInfo": {"likedCount": "12", "commentCount": "3", "collectedCount": "8"},                         "cover": {"urlDefault": "https://cdn.example/image?signature=secret"},                     },
  • Network accessline 41
    "cover": {"urlDefault": "https://cdn.example/image?signature=secret"},
  • Access to secretsline 61
    [Credential-related source omitted]
  • Network accessline 65
    ])             self.assertEqual(args.limit, 25)             client = collector.XiaohongshuClient(f"http://127.0.0.1:{server.server_port}", 2)
  • Network accessline 66
    self.assertEqual(args.limit, 25)             client = collector.XiaohongshuClient(f"http://127.0.0.1:{server.server_port}", 2)             client.check_ready()
  • Network accessline 67
    client = collector.XiaohongshuClient(f"http://127.0.0.1:{server.server_port}", 2)
  • Network accessline 75
    serialized = json.dumps(evidence, ensure_ascii=False)         self.assertEqual(evidence["collected"], 1)         self.assertEqual(evidence["items"][0]["public_url"], "https://www.xiaohongshu.com/explore/note-1")
  • Network accessline 76
    self.assertEqual(evidence["collected"], 1)         self.assertEqual(evidence["items"][0]["public_url"], "https://www.xiaohongshu.com/explore/note-1")         self.assertNotIn("secret-token", serialized)
  • Network accessline 77
    self.assertEqual(evidence["items"][0]["public_url"], "https://www.xiaohongshu.com/explore/note-1")
  • Access to secretsline 83
    [Credential-related source omitted]
  • Network accessline 87
    def test_rejects_non_local_endpoint(self) -> None:         with self.assertRaises(collector.CollectorError):             collector.validate_local_endpoint("https://example.com:18063")
  • Network accessline 89
    collector.validate_local_endpoint("https://example.com:18063")
  • Network accessline 161
    "user": {"nickname": "作者"},                     "interactInfo": {"likedCount": "10"},                     "imageList": [{"urlDefault": f"https://cdn.example/{feed_id}?signature=secret"}],
  • Network accessline 162
    "interactInfo": {"likedCount": "10"},                     "imageList": [{"urlDefault": f"https://cdn.example/{feed_id}?signature=secret"}],                 }
  • Network accessline 163
    "imageList": [{"urlDefault": f"https://cdn.example/{feed_id}?signature=secret"}],

collectors/xiaohongshu-mcp/scripts/test_minimal_continuous_flow.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 16
    PNG = base64.b64decode(
  • Network accessline 38
    length = int(self.headers.get("Content-Length", "0"))                 payload = json.loads(self.rfile.read(length))                 requests.append({"path": self.path, "payload": payload})
  • Network accessline 39
    payload = json.loads(self.rfile.read(length))                 requests.append({"path": self.path, "payload": payload})                 origin = f"http://127.0.0.1:{self.server.server_port}"
  • Network accessline 40
    requests.append({"path": self.path, "payload": payload})
  • Network accessline 41
    origin = f"http://127.0.0.1:{self.server.server_port}"
  • Network accessline 49
    "type": "normal",                                 "displayTitle": "公开测试标题",                                 "user": {"nickname": "公开作者", "avatar": "https://private.example/avatar"},
  • Network accessline 50
    "displayTitle": "公开测试标题",                                 "user": {"nickname": "公开作者", "avatar": "https://private.example/avatar"},                                 "interactInfo": {"likedCount": "12", "commentCount": "3", "collectedCount": 
  • Network accessline 51
    "user": {"nickname": "公开作者", "avatar": "https://private.example/avatar"},
  • Network accessline 93
    "研究工作流",                         "--endpoint",                         f"http://127.0.0.1:{server.server_port}",
  • Network accessline 94
    "--endpoint",                         f"http://127.0.0.1:{server.server_port}",                         "--timeout",
  • Network accessline 95
    f"http://127.0.0.1:{server.server_port}",

collectors/xiaohongshu-mcp/scripts/test_validate_visual_reference_selection.py

  • Executable scriptline 1
    Executable file

collectors/xiaohongshu-mcp/scripts/validate_visual_reference_selection.py

  • Executable scriptline 1
    #!/usr/bin/env python3

executors/generate-image/SKILL.md

  • Access to secretsline 53
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]

executors/generate-image/generate-image.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 19
    return null; } const GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com';
  • Network accessline 20
    } const GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com'; const OPENAI_BASE_URL = 'https://api.openai.com';
  • Network accessline 21
    const GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com';
  • Network accessline 22
    const OPENAI_BASE_URL = 'https://api.openai.com';
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 161
    [Credential-related source omitted]
  • Network accessline 176
    const response = await fetch(
  • Access to secretsline 203
    [Credential-related source omitted]
  • Network accessline 219
    );     }     response = await fetch(openAIEndpoint(baseUrl, '/images/edits'), {
  • Network accessline 220
    }     response = await fetch(openAIEndpoint(baseUrl, '/images/edits'), {       method: 'POST',
  • Network accessline 221
    response = await fetch(openAIEndpoint(baseUrl, '/images/edits'), {
  • Network accessline 226
    });   } else {     response = await fetch(openAIEndpoint(baseUrl, '/images/generations'), {
  • Network accessline 227
    } else {     response = await fetch(openAIEndpoint(baseUrl, '/images/generations'), {       method: 'POST',
  • Network accessline 228
    response = await fetch(openAIEndpoint(baseUrl, '/images/generations'), {
  • Network accessline 247
    }   if (image?.url) {     const download = await fetch(image.url, { signal: AbortSignal.timeout(TIMEOUT_MS) });
  • Network accessline 248
    if (image?.url) {     const download = await fetch(image.url, { signal: AbortSignal.timeout(TIMEOUT_MS) });     if (!download.ok) throw new Error(`Image download failed with HTTP ${download.status}`);
  • Network accessline 249
    const download = await fetch(image.url, { signal: AbortSignal.timeout(TIMEOUT_MS) });

executors/screenshot-assets/SKILL.md

  • Network accessline 21
    uv run --with playwright python executors/screenshot-assets/scripts/capture.py \   --cdp http://127.0.0.1:9222 \
  • Network accessline 21
    uv run --with playwright python executors/screenshot-assets/scripts/capture.py \   --cdp http://127.0.0.1:9222 \
  • Network accessline 21
    uv run --with playwright python executors/screenshot-assets/scripts/capture.py \   --cdp http://127.0.0.1:9222 \
  • Network accessline 21
    uv run --with playwright python executors/screenshot-assets/scripts/capture.py \   --cdp http://127.0.0.1:9222 \
  • Network accessline 21
    uv run --with playwright python executors/screenshot-assets/scripts/capture.py \   --cdp http://127.0.0.1:9222 \
  • Network accessline 22
    --cdp http://127.0.0.1:9222 \
  • Network accessline 22
    --cdp http://127.0.0.1:9222 \
  • Network accessline 22
    --cdp http://127.0.0.1:9222 \
  • Network accessline 22
    --cdp http://127.0.0.1:9222 \
  • Network accessline 22
    --cdp http://127.0.0.1:9222 \
  • Network accessline 23
    --url "https://product.example/workspace/..." \
  • Network accessline 23
    --url "https://product.example/workspace/..." \
  • Network accessline 23
    --url "https://product.example/workspace/..." \
  • Network accessline 23
    --url "https://product.example/workspace/..." \
  • Network accessline 23
    --url "https://product.example/workspace/..." \

executors/screenshot-assets/scripts/capture.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 38
    def main() -> None:     parser = argparse.ArgumentParser(description=__doc__)     parser.add_argument("--cdp", default="http://127.0.0.1:9222")
  • Network accessline 39
    parser = argparse.ArgumentParser(description=__doc__)     parser.add_argument("--cdp", default="http://127.0.0.1:9222")     parser.add_argument("--url", required=True)
  • Network accessline 40
    parser.add_argument("--cdp", default="http://127.0.0.1:9222")

executors/wechat-article-compose/SKILL.md

  • Network accessline 63
    - 小标题用 `## 01 标题` 形式,两位编号显示为主题强调色。 - 品牌色通过 `wechat.yml` 的 `theme` 设置,只作点缀色(编号、线条、标记、强调字),底色保持白色。 - 需要可点击入口时使用 `[![入口文字](assets/cta.png)](https://...)`,alt 会显示为图片下方的链接文字。
  • Network accessline 63
    - 小标题用 `## 01 标题` 形式,两位编号显示为主题强调色。 - 品牌色通过 `wechat.yml` 的 `theme` 设置,只作点缀色(编号、线条、标记、强调字),底色保持白色。 - 需要可点击入口时使用 `[![入口文字](assets/cta.png)](https://...)`,alt 会显示为图片下方的链接文字。
  • Network accessline 63
    - 小标题用 `## 01 标题` 形式,两位编号显示为主题强调色。 - 品牌色通过 `wechat.yml` 的 `theme` 设置,只作点缀色(编号、线条、标记、强调字),底色保持白色。 - 需要可点击入口时使用 `[![入口文字](assets/cta.png)](https://...)`,alt 会显示为图片下方的链接文字。
  • Network accessline 65
    - 需要可点击入口时使用 `[![入口文字](assets/cta.png)](https://...)`,alt 会显示为图片下方的链接文字。
  • Network accessline 65
    - 需要可点击入口时使用 `[![入口文字](assets/cta.png)](https://...)`,alt 会显示为图片下方的链接文字。
  • Network accessline 65
    - 需要可点击入口时使用 `[![入口文字](assets/cta.png)](https://...)`,alt 会显示为图片下方的链接文字。

executors/wechat-article-compose/scripts/check-wechat-compliance.py

  • Executable scriptline 1
    Executable file

executors/wechat-mp-publish/SKILL.md

  • Access to secretsline 95
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]

executors/wechat-mp-publish/deploy/Dockerfile

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    HEALTHCHECK --interval=15s --timeout=5s --retries=3 --start-period=10s \     CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/healthz', timeout=3).read()"
  • Network accessline 26
    CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/healthz', timeout=3).read()"

executors/wechat-mp-publish/deploy/docker-compose.yml

  • Access to secretsline 1
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 20
    "python",           "-c",           "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/healthz', timeout=3).read()",
  • Network accessline 21
    "-c",           "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/healthz', timeout=3).read()",         ]
  • Network accessline 22
    "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/healthz', timeout=3).read()",

executors/wechat-mp-publish/deploy/server.env.example

  • Access to secretsline 4
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]

executors/wechat-mp-publish/references/api.md

  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 16
    - 发布能力:<https://developers.weixin.qq.com/doc/service/guide/product/publish.html>
  • Network accessline 17
    - 草稿箱:<https://developers.weixin.qq.com/doc/offiaccount/Draft_Box/Add_draft.html>
  • Network accessline 18
    - 素材管理:<https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Adding_Permanent_Assets.html>
  • Network accessline 19
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]

executors/wechat-mp-publish/scripts/cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3

executors/wechat-mp-publish/scripts/client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    API_BASE = "https://api.weixin.qq.com"
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 66
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 76
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 115
    [Credential-related source omitted]
  • Access to secretsline 128
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]
  • Access to secretsline 138
    [Credential-related source omitted]
  • Access to secretsline 142
    [Credential-related source omitted]
  • Access to secretsline 144
    [Credential-related source omitted]
  • Access to secretsline 153
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Access to secretsline 186
    [Credential-related source omitted]
  • Access to secretsline 187
    [Credential-related source omitted]
  • Network accessline 191
    body = json.dumps(payload, ensure_ascii=False).encode("utf-8")             headers["Content-Type"] = "application/json; charset=utf-8"         req = urllib.request.Request(url, data=body, headers=headers, method=method)
  • Network accessline 192
    headers["Content-Type"] = "application/json; charset=utf-8"         req = urllib.request.Request(url, data=body, headers=headers, method=method)         try:
  • Network accessline 193
    req = urllib.request.Request(url, data=body, headers=headers, method=method)
  • Network accessline 194
    try:             with urllib.request.urlopen(req, timeout=30) as resp:                 data = json.loads(resp.read().decode("utf-8"))
  • Network accessline 195
    with urllib.request.urlopen(req, timeout=30) as resp:
  • Access to secretsline 213
    [Credential-related source omitted]
  • Network accessline 236
    [Credential-related source omitted]
  • Access to secretsline 236
    [Credential-related source omitted]
  • Network accessline 237
    req = urllib.request.Request(
  • Network accessline 245
    )         try:             with urllib.request.urlopen(req, timeout=60) as resp:
  • Network accessline 246
    try:             with urllib.request.urlopen(req, timeout=60) as resp:                 data = json.loads(resp.read().decode("utf-8"))
  • Network accessline 247
    with urllib.request.urlopen(req, timeout=60) as resp:

executors/wechat-mp-publish/scripts/payload_builder.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 61
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]

executors/wechat-mp-publish/scripts/remote_client.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 91
    if body is not None:         headers["Content-Type"] = "application/json; charset=utf-8"     request = urllib.request.Request(url, data=body, headers=headers, method=method)
  • Network accessline 92
    headers["Content-Type"] = "application/json; charset=utf-8"     request = urllib.request.Request(url, data=body, headers=headers, method=method)     try:
  • Network accessline 93
    request = urllib.request.Request(url, data=body, headers=headers, method=method)
  • Network accessline 94
    try:         with urllib.request.urlopen(request, timeout=180) as response:             data = json.loads(response.read().decode("utf-8"))
  • Network accessline 95
    with urllib.request.urlopen(request, timeout=180) as response:
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 120
    [Credential-related source omitted]

executors/wechat-mp-publish/scripts/server.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Possible obfuscationline 152
    content = base64.b64decode(content_b64, validate=True)
  • Possible obfuscationline 192
    content = base64.b64decode(content_b64, validate=True)

executors/xhs-render-cards/SKILL.md

  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]

executors/xhs-render-cards/scripts/check-banned-phrases.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

executors/xhs-render-cards/scripts/check-compliance.py

  • Executable scriptline 1
    #!/usr/bin/env python3

executors/xhs-render-cards/scripts/test_validate_social_card_pack.py

  • Executable scriptline 1
    Executable file

executors/xhs-render-cards/scripts/validate_social_card_pack.py

  • Executable scriptline 1
    #!/usr/bin/env python3

models/onboard-growth-lab/SKILL.md

  • Network accessline 42
    2. 请用户明确回复类似“我已了解封号风险,并确认使用非正式、可损失的专用账号”。沉默、模糊回复或仅要求“继续”不构成确认。未取得确认就停在风险门禁,不启动登录和抓取。 3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:
  • Network accessline 42
    2. 请用户明确回复类似“我已了解封号风险,并确认使用非正式、可损失的专用账号”。沉默、模糊回复或仅要求“继续”不构成确认。未取得确认就停在风险门禁,不启动登录和抓取。 3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:
  • Network accessline 42
    2. 请用户明确回复类似“我已了解封号风险,并确认使用非正式、可损失的专用账号”。沉默、模糊回复或仅要求“继续”不构成确认。未取得确认就停在风险门禁,不启动登录和抓取。 3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:
  • Network accessline 42
    2. 请用户明确回复类似“我已了解封号风险,并确认使用非正式、可损失的专用账号”。沉默、模糊回复或仅要求“继续”不构成确认。未取得确认就停在风险门禁,不启动登录和抓取。 3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:
  • Network accessline 42
    2. 请用户明确回复类似“我已了解封号风险,并确认使用非正式、可损失的专用账号”。沉默、模糊回复或仅要求“继续”不构成确认。未取得确认就停在风险门禁,不启动登录和抓取。 3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:
  • Network accessline 42
    2. 请用户明确回复类似“我已了解封号风险,并确认使用非正式、可损失的专用账号”。沉默、模糊回复或仅要求“继续”不构成确认。未取得确认就停在风险门禁,不启动登录和抓取。 3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:
  • Network accessline 43
    3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-de
  • Network accessline 43
    3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-de
  • Network accessline 43
    3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-de
  • Network accessline 43
    3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-de
  • Network accessline 43
    3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-de
  • Network accessline 43
    3. 确认后,让用户选择需要启用的平台:抖音、快手、B 站、微博、贴吧、知乎。小红书使用独立的 browser-first 就绪门禁。未启用的平台必须由用户明确说“本轮绕过”,不得默认忽略。 4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-de
  • Network accessline 44
    4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-debugging-port=<port>` 和 `--user-data-dir=<profile-dir>`;`curl --noproxy '*' http://127.0.0.1:<por
  • Network accessline 44
    4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-debugging-port=<port>` 和 `--user-data-dir=<profile-dir>`;`curl --noproxy '*' http://127.0.0.1:<por
  • Network accessline 44
    4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-debugging-port=<port>` 和 `--user-data-dir=<profile-dir>`;`curl --noproxy '*' http://127.0.0.1:<por
  • Network accessline 44
    4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-debugging-port=<port>` 和 `--user-data-dir=<profile-dir>`;`curl --noproxy '*' http://127.0.0.1:<por
  • Network accessline 44
    4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-debugging-port=<port>` 和 `--user-data-dir=<profile-dir>`;`curl --noproxy '*' http://127.0.0.1:<por
  • Network accessline 44
    4. 只要启用任一 MediaCrawler 平台,必须先完成不可绕过的 Chrome CDP onboarding:Chrome 版本至少 144;为 MediaCrawler 启动一个使用仓库外持久化 profile 的专用 Chrome 实例,同时显式传入 `--remote-debugging-port=<port>` 和 `--user-data-dir=<profile-dir>`;`curl --noproxy '*' http://127.0.0.1:<por
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]

models/onboard-growth-lab/references/dependencies.md

  • Network accessline 13
    | Node.js | Bing、IndexNow、SEO 调研脚本、通用生图 Executor | `command -v node` | Node.js 官方发行版或版本管理器 | 不使用这些能力时 | | Playwright + Chromium | 批量抓取 Bing SERP、渲染竞品页并截图 | `npm --prefix collectors/research-seo-demand/scripts exec playwright -- --version`,再
  • Network accessline 14
    | Playwright + Chromium | 批量抓取 Bing SERP、渲染竞品页并截图 | `npm --prefix collectors/research-seo-demand/scripts exec playwright -- --version`,再执行一次最小 Chromium 启动检查 | `npm install --prefix collectors/research-seo-demand/scripts`,然后 `npm --prefix co
  • Network accessline 15
    | uv | 第三方 Python Client 与临时依赖 | `command -v uv` | <https://docs.astral.sh/uv/> | 不使用媒体 Client、Playwright 渲染时 |
  • Network accessline 17
    | Chrome 144+ | 其他媒体平台的 MediaCrawler CDP 登录、默认 Playwright 渲染 | 检查 Chrome 版本及 `chrome://inspect/#remote-debugging` | <https://www.google.com/chrome/> | 不用 MediaCrawler 时;小红书使用独立 browser-first Client |
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 49
    - 用途:小红书关键词搜索、用户指定笔记详情和候选图片的 browser-first 只读采集。 - 来源:<https://github.com/xpzouying/xiaohongshu-mcp>。二进制、源码 checkout 和登录态均放在仓库外。
  • Network accessline 50
    - 来源:<https://github.com/xpzouying/xiaohongshu-mcp>。二进制、源码 checkout 和登录态均放在仓库外。
  • Network accessline 61
    - 用途:抖音、快手、B站、微博、贴吧、知乎的搜索、详情、评论、媒体和创作者采集。 - 状态检查:目标目录存在,含 `main.py` 和 `.git`;依赖环境可解析。 - 来源:<https://github.com/NanmiCoder/MediaCrawler>。
  • Network accessline 62
    - 状态检查:目标目录存在,含 `main.py` 和 `.git`;依赖环境可解析。 - 来源:<https://github.com/NanmiCoder/MediaCrawler>。 - 安装:用户确认许可证和目录后执行 `git clone`,进入目录运行 `uv sync`;记录 `git rev-parse HEAD`。
  • Network accessline 63
    - 来源:<https://github.com/NanmiCoder/MediaCrawler>。
  • Network accessline 64
    - 安装:用户确认许可证和目录后执行 `git clone`,进入目录运行 `uv sync`;记录 `git rev-parse HEAD`。 - 强制 CDP:使用 Chrome 144+ 与仓库外的专用持久化 profile,通过 `--remote-debugging-port=<port> --user-data-dir=<profile-dir>` 启动实例;必须验证 `http://127.0.0.1:<port>/json/version` 返回 DevToo
  • Network accessline 65
    - 强制 CDP:使用 Chrome 144+ 与仓库外的专用持久化 profile,通过 `--remote-debugging-port=<port> --user-data-dir=<profile-dir>` 启动实例;必须验证 `http://127.0.0.1:<port>/json/version` 返回 DevTools JSON,并保持 `ENABLE_CDP_MODE = True`、`CDP_CONNECT_EXISTING = True` 与一致的 `
  • Access to secretsline 76
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]

models/onboard-growth-lab/scripts/check_configuration.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 106
    [Credential-related source omitted]
  • Access to secretsline 106
    [Credential-related source omitted]
  • Access to secretsline 113
    [Credential-related source omitted]
  • Access to secretsline 113
    [Credential-related source omitted]

models/onboard-growth-lab/scripts/test_check_configuration.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 8 facts
Signal confidence: 363 facts

and 313 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md collectors/media-crawler/SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md collectors/media-crawler/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md collectors/media-crawler/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md collectors/media-crawler/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md collectors/media-crawler/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

tsingyuai/growth-lab: #540 on hotskills, 2k stars

[![tsingyuai/growth-lab on hotskills](https://hotskills.dev/badge/tsingyuai-growth-lab.svg)](https://hotskills.dev/skill/tsingyuai-growth-lab/)