@pencil-agent/nano-pencil 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +267 -267
  2. package/dist/build-meta.json +3 -3
  3. package/dist/core/export-html/AGENT.md +11 -11
  4. package/dist/core/export-html/template.css +971 -971
  5. package/dist/core/export-html/template.html +54 -54
  6. package/dist/core/model/custom-providers.js +1 -1
  7. package/dist/core/model-registry.js +5 -5
  8. package/dist/extensions/builtin/AGENT.md +115 -115
  9. package/dist/extensions/builtin/browser/AGENT.md +17 -17
  10. package/dist/extensions/builtin/browser/agent-workspace/agent_helpers.py +12 -12
  11. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/amazon/product-search.md +198 -198
  12. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/archive-org/scraping.md +341 -341
  13. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv/scraping.md +311 -311
  14. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv-bulk/scraping.md +333 -333
  15. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/atlas/overview.md +70 -70
  16. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/booking-com/scraping.md +578 -578
  17. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/capterra/scraping.md +440 -440
  18. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/centilebrain/generate-estimates.md +110 -110
  19. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coingecko/scraping.md +325 -325
  20. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coinmarketcap/scraping.md +463 -463
  21. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coursera/scraping.md +360 -360
  22. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/craigslist/scraping.md +390 -390
  23. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/crossref/scraping.md +568 -568
  24. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/dev-to/scraping.md +323 -323
  25. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/duckduckgo/scraping.md +349 -349
  26. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/ebay/scraping.md +435 -435
  27. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/etsy/scraping.md +506 -506
  28. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/eventbrite/scraping.md +363 -363
  29. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/expedia/automation.md +168 -168
  30. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/groups.md +236 -236
  31. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/pages.md +295 -295
  32. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/framer/editor.md +108 -108
  33. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/fred/scraping.md +493 -493
  34. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/g2/scraping.md +580 -580
  35. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/genius/scraping.md +511 -511
  36. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/repo-actions.md +65 -65
  37. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/scraping.md +184 -184
  38. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/glassdoor/scraping.md +543 -543
  39. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gmail/compose.md +122 -122
  40. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/goodreads/scraping.md +461 -461
  41. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gutenberg/scraping.md +383 -383
  42. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/hackernews/scraping.md +243 -243
  43. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/howlongtobeat/scraping.md +473 -473
  44. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/imdb/scraping.md +271 -271
  45. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/itch-io/scraping.md +436 -436
  46. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/job-boards/indeed-glassdoor.md +1021 -1021
  47. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/letterboxd/scraping.md +349 -349
  48. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/linkedin/invitation-manager.md +109 -109
  49. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/loom/folder-enumeration.md +170 -170
  50. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/macrotrends/scraping.md +537 -537
  51. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/article-hydration.md +120 -120
  52. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/scraping.md +414 -414
  53. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/metacritic/scraping.md +477 -477
  54. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/musicbrainz/scraping.md +478 -478
  55. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/nasa/scraping.md +339 -339
  56. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/news-aggregation/multi-source.md +205 -205
  57. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/open-library/scraping.md +472 -472
  58. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openalex/scraping.md +470 -470
  59. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openstreetmap/scraping.md +490 -490
  60. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/package-registries/npm-pypi.md +478 -478
  61. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/polymarket/scraping.md +234 -234
  62. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/producthunt/scraping.md +307 -307
  63. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/pubmed/scraping.md +421 -421
  64. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/quora/scraping.md +364 -364
  65. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rawg/scraping.md +352 -352
  66. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/reddit/scraping.md +124 -124
  67. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rest-countries/scraping.md +233 -233
  68. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/sec-edgar/scraping.md +361 -361
  69. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/README.md +36 -36
  70. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/embedded-apps.md +72 -72
  71. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/knowledge-base.md +109 -109
  72. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/polaris-inputs.md +137 -137
  73. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/soundcloud/scraping.md +362 -362
  74. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/spotify/scraping.md +339 -339
  75. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/stackoverflow/scraping.md +435 -435
  76. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/steam/scraping.md +575 -575
  77. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/substack/scraping.md +338 -338
  78. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/thetechgeeks/pricing.md +52 -52
  79. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tiktok/upload.md +107 -107
  80. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tradingview/scraping.md +309 -309
  81. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trello/boards-and-lists.md +88 -88
  82. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trustpilot/scraping.md +375 -375
  83. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/walmart/scraping.md +444 -444
  84. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wayback-machine/scraping.md +306 -306
  85. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/weather/scraping.md +398 -398
  86. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wellfound/scraping.md +596 -596
  87. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/world-bank/scraping.md +356 -356
  88. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/xiaohongshu/scraping.md +84 -84
  89. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/youtube/scraping.md +418 -418
  90. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/zillow/scraping.md +433 -433
  91. package/dist/extensions/builtin/browser/browser.md +73 -73
  92. package/dist/extensions/builtin/browser/install.md +142 -142
  93. package/dist/extensions/builtin/browser/interaction-skills/connection.md +48 -48
  94. package/dist/extensions/builtin/browser/interaction-skills/cookies.md +3 -3
  95. package/dist/extensions/builtin/browser/interaction-skills/cross-origin-iframes.md +3 -3
  96. package/dist/extensions/builtin/browser/interaction-skills/dialogs.md +64 -64
  97. package/dist/extensions/builtin/browser/interaction-skills/downloads.md +3 -3
  98. package/dist/extensions/builtin/browser/interaction-skills/drag-and-drop.md +3 -3
  99. package/dist/extensions/builtin/browser/interaction-skills/dropdowns.md +3 -3
  100. package/dist/extensions/builtin/browser/interaction-skills/iframes.md +3 -3
  101. package/dist/extensions/builtin/browser/interaction-skills/network-requests.md +3 -3
  102. package/dist/extensions/builtin/browser/interaction-skills/print-as-pdf.md +3 -3
  103. package/dist/extensions/builtin/browser/interaction-skills/profile-sync.md +90 -90
  104. package/dist/extensions/builtin/browser/interaction-skills/screenshots.md +17 -17
  105. package/dist/extensions/builtin/browser/interaction-skills/scrolling.md +3 -3
  106. package/dist/extensions/builtin/browser/interaction-skills/shadow-dom.md +3 -3
  107. package/dist/extensions/builtin/browser/interaction-skills/tabs.md +69 -69
  108. package/dist/extensions/builtin/browser/interaction-skills/uploads.md +1 -1
  109. package/dist/extensions/builtin/browser/interaction-skills/viewport.md +3 -3
  110. package/dist/extensions/builtin/browser/src/browser_harness/AGENT.md +15 -15
  111. package/dist/extensions/builtin/browser/src/browser_harness/__init__.py +8 -8
  112. package/dist/extensions/builtin/browser/src/browser_harness/_ipc.py +90 -90
  113. package/dist/extensions/builtin/browser/src/browser_harness/admin.py +722 -722
  114. package/dist/extensions/builtin/browser/src/browser_harness/daemon.py +328 -328
  115. package/dist/extensions/builtin/browser/src/browser_harness/helpers.py +396 -396
  116. package/dist/extensions/builtin/browser/src/browser_harness/run.py +103 -103
  117. package/dist/extensions/builtin/discipline/skills/brainstorming/SKILL.md +33 -33
  118. package/dist/extensions/builtin/discipline/skills/executing-plans/SKILL.md +25 -25
  119. package/dist/extensions/builtin/discipline/skills/finishing-development-branch/SKILL.md +25 -25
  120. package/dist/extensions/builtin/discipline/skills/receiving-code-review/SKILL.md +22 -22
  121. package/dist/extensions/builtin/discipline/skills/requesting-code-review/SKILL.md +31 -31
  122. package/dist/extensions/builtin/discipline/skills/systematic-debugging/SKILL.md +28 -28
  123. package/dist/extensions/builtin/discipline/skills/test-driven-development/SKILL.md +32 -32
  124. package/dist/extensions/builtin/discipline/skills/using-git-worktrees/SKILL.md +25 -25
  125. package/dist/extensions/builtin/discipline/skills/verification-before-completion/SKILL.md +27 -27
  126. package/dist/extensions/builtin/discipline/skills/writing-plans/SKILL.md +26 -26
  127. package/dist/extensions/builtin/goal/README.md +67 -67
  128. package/dist/extensions/builtin/grub/README.md +112 -112
  129. package/dist/extensions/builtin/link-world/agent-workspace/README.md +16 -16
  130. package/dist/extensions/builtin/link-world/internet-search/internet-search.md +65 -65
  131. package/dist/extensions/builtin/link-world/link-world-agent.md +82 -82
  132. package/dist/extensions/builtin/link-world/linkworld.md +313 -313
  133. package/dist/extensions/builtin/link-world/network-routing/network-routing.md +67 -67
  134. package/dist/extensions/builtin/loop/README.md +92 -92
  135. package/dist/extensions/builtin/mcp/figma-design.md +68 -68
  136. package/dist/extensions/builtin/mcp/mcp-management.md +85 -85
  137. package/dist/extensions/builtin/recap/AGENT.md +15 -15
  138. package/dist/extensions/builtin/sal/README.md +72 -72
  139. package/dist/extensions/builtin/security-audit/README.md +289 -289
  140. package/dist/extensions/builtin/team/AGENT.md +112 -112
  141. package/dist/extensions/builtin/team/TESTING.md +299 -299
  142. package/dist/extensions/builtin/token-save/README.md +56 -56
  143. package/dist/extensions/optional/AGENT.md +10 -10
  144. package/dist/modes/interactive/controllers/input-submit-controller.js +2 -2
  145. package/dist/modes/interactive/controllers/stream-render-controller.js +2 -2
  146. package/dist/modes/interactive/interactive-mode.js +19 -19
  147. package/dist/modes/interactive/theme/dark.json +85 -85
  148. package/dist/modes/interactive/theme/light.json +84 -84
  149. package/dist/modes/interactive/theme/theme-schema.json +335 -335
  150. package/dist/modes/interactive/theme/warm.json +81 -81
  151. package/dist/node_modules/@pencil-agent/ai/dist/cli.js +0 -0
  152. package/dist/node_modules/@pencil-agent/ai/dist/models.generated.js +1 -1
  153. package/docs/ACP/345/215/217/350/256/256/351/233/206/346/210/220/345/274/200/345/217/221/346/226/207/346/241/243.md +851 -0
  154. package/docs/SDK-TESTING.md +364 -0
  155. package/docs/codex-goal-command-impl.md +1055 -1055
  156. package/docs/codex-goal-vs-grub.md +500 -500
  157. package/docs/custom-provider.md +27 -27
  158. package/docs/extensions.md +27 -27
  159. package/docs/keybindings.md +27 -27
  160. package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/200/273/347/273/223.md" +250 -250
  161. package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/212/245/345/221/212.md" +122 -122
  162. package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210.md" +1222 -1222
  163. package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/256/236/347/216/260/346/212/245/345/221/212.md" +158 -158
  164. package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/257/271/346/257/224/345/210/206/346/236/220.md" +128 -128
  165. package/docs/loop /351/207/215/346/236/204/350/256/241/345/210/222.md" +320 -320
  166. package/docs/loop-usage-examples.md +214 -214
  167. package/docs/mem-core/346/212/200/346/234/257/346/226/207/346/241/243.md +593 -0
  168. package/docs/models.md +27 -27
  169. package/docs/packages.md +27 -27
  170. package/docs/pi-design-philosophy.md +457 -457
  171. package/docs/planmode.md +1987 -1987
  172. package/docs/prompt-templates.md +27 -27
  173. package/docs/providers.md +27 -27
  174. package/docs/sdk.md +27 -27
  175. package/docs/skills.md +27 -27
  176. package/docs/startup-performance-optimization.md +301 -0
  177. package/docs/themes.md +27 -27
  178. package/docs/tui.md +27 -27
  179. package/docs//350/256/244/347/237/245/345/234/260/345/233/276.md +47 -0
  180. package/package.json +190 -190
  181. package/docs/cc-agent-design.md +0 -1297
  182. package/docs/cc-tui-design.md +0 -1333
  183. package/docs/nanoPencil-/345/255/246/344/271/240/350/256/241/345/210/222.md +0 -170
  184. package/docs/scan-report.md +0 -3820
  185. package/docs//345/257/271/346/240/207Claude-Code.md +0 -1775
  186. package/docs//351/230/277/351/207/214/345/267/264/345/267/264/350/264/242/346/212/245/345/210/206/346/236/220/344/271/246.md +0 -261
@@ -1,313 +1,313 @@
1
- # link-world — Installation Guide
2
-
3
- ## For Humans
4
-
5
- Copy this to your AI Agent:
6
-
7
- ```
8
- 帮我安装 link-world:https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
9
- ```
10
-
11
- > 🛡️ **Security-conscious?** Use safe mode — it won't auto-install system packages:
12
- > ```
13
- > 帮我安装 link-world(安全模式):https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
14
- > 安装时使用 --safe 参数
15
- > ```
16
-
17
- ---
18
-
19
- ## For AI Agents
20
-
21
- ### Goal
22
-
23
- Install link-world and all upstream tools so your user's agent has full internet access. After installation, you'll use the upstream tools directly (xreach CLI, yt-dlp, mcporter, gh CLI, etc.) — link-world is just the installer and health checker.
24
-
25
- ### ⚠️ Boundaries
26
-
27
- When fixing issues, stay within these limits:
28
-
29
- - **DO NOT** run commands with `sudo` unless the user explicitly approved
30
- - **DO NOT** modify system files outside `~/.agent-reach/`
31
- - **DO NOT** install packages not listed in this guide
32
- - **DO NOT** disable firewalls, security settings, or system protections
33
- - **DO NOT** clone repos, create files, or run commands inside the agent workspace / working directory
34
- - If something requires elevated permissions, **tell the user** what's needed and let them decide
35
-
36
- ### 📁 Directory Rules
37
-
38
- All link-world files go in dedicated directories — **never in the agent workspace**:
39
-
40
- | Purpose | Directory | Example |
41
- |---------|-----------|---------|
42
- | Config & tokens | `~/.agent-reach/` | `~/.agent-reach/config.json` |
43
- | Upstream tool repos | `~/.agent-reach/tools/` | `~/.agent-reach/tools/douyin-mcp-server/` |
44
- | Temporary files | `/tmp/` | `/tmp/yt-dlp-output/` |
45
- | Skills | `~/.openclaw/skills/agent-reach/` | SKILL.md |
46
-
47
- **Why?** If you clone repos or create files in the workspace, it pollutes the user's project directory and can break their agent over time. Keep the workspace clean.
48
-
49
- ### Step 1: Install
50
-
51
- **Default (fully automatic):**
52
-
53
- ```bash
54
- pip install https://github.com/Panniantong/agent-reach/archive/main.zip
55
- agent-reach install --env=auto
56
- ```
57
-
58
- This auto-installs system dependencies (gh CLI, Node.js, mcporter, xreach), configures Exa search, detects environment, and tests all channels.
59
-
60
- **Safe mode (no automatic system changes):**
61
-
62
- If the user asked for safe mode, or you're on a production machine:
63
-
64
- ```bash
65
- pip install https://github.com/Panniantong/agent-reach/archive/main.zip
66
- agent-reach install --env=auto --safe
67
- ```
68
-
69
- Safe mode checks what's installed and tells you what's missing, but doesn't auto-install system packages. You can then install each dependency manually.
70
-
71
- **Dry run (preview only):**
72
-
73
- ```bash
74
- agent-reach install --env=auto --dry-run
75
- ```
76
-
77
- Shows what would be done without making any changes.
78
-
79
- **Read the output carefully**, then run:
80
-
81
- ```bash
82
- agent-reach doctor
83
- ```
84
-
85
- ### Step 2: Fix what's broken
86
-
87
- `agent-reach doctor` shows you which channels are active and which aren't.
88
-
89
- Try to get as many channels to ✅ as possible. If something failed during install or shows as ❌/⚠️ in doctor, diagnose the problem and try to fix it — but stay within the boundaries above. If a fix requires elevated permissions or system changes, ask the user first.
90
-
91
- Only ask the user when you genuinely need their input (credentials, permissions, etc.).
92
-
93
- ### Step 3: Configure things that need user input
94
-
95
- Some channels need credentials only the user can provide. Based on the doctor output, ask for what's missing:
96
-
97
- > 🔒 **Security tip:** For platforms that need cookies (Twitter, XiaoHongShu), we recommend using a **dedicated/secondary account** rather than your main account. Cookie-based auth carries two risks:
98
- > 1. **Account ban** — platforms may detect non-browser API calls and restrict or ban the account
99
- > 2. **Credential exposure** — cookies grant full account access; using a secondary account limits the blast radius if credentials are ever compromised
100
-
101
- > 🍪 **Cookie 导入(所有需要登录的平台通用):**
102
- >
103
- > 所有需要 Cookie 的平台(Twitter、小红书等),**优先使用 Cookie-Editor 导入**,这是最简单最可靠的方式:
104
- > 1. 用户在自己的浏览器上登录对应平台
105
- > 2. 安装 [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) Chrome 插件
106
- > 3. 点击插件 → Export → Header String
107
- > 4. 把导出的字符串发给 Agent
108
- >
109
- > **本地电脑用户**也可以用 `agent-reach configure --from-browser chrome` 一键自动提取(支持 Twitter + 小红书)。
110
-
111
- **Twitter search & posting:**
112
- > "To unlock Twitter search, I need your Twitter cookies. Install the Cookie-Editor Chrome extension, go to x.com/twitter.com, click the extension → Export → Header String, and paste it to me."
113
-
114
- ```bash
115
- agent-reach configure twitter-cookies "PASTED_STRING"
116
- ```
117
-
118
- > **代理说明(中国大陆等需要翻墙的网络环境):**
119
- >
120
- > xreach CLI 使用 Node.js 原生 `fetch()`,默认不走系统代理(`HTTP_PROXY`/`HTTPS_PROXY`)。link-world 已内置解决方案:安装时会自动安装 `undici`(`npm install -g undici`),运行 xreach 时自动注入 `EnvHttpProxyAgent`,让 fetch 走用户配置的代理。
121
- >
122
- > **你(Agent)需要做的:**
123
- > 1. 确认 `undici` 已全局安装:`npm list -g undici`,没有就装:`npm install -g undici`
124
- > 2. 确认用户配了代理:`agent-reach configure proxy http://user:pass@ip:port`
125
- > 3. link-world 会自动处理剩下的,不需要用户做额外操作
126
- >
127
- > 如果用户报告 "fetch failed",参考 [troubleshooting.md](troubleshooting.md)
128
-
129
- **Reddit & Bilibili full access (server users):**
130
- > "Reddit and Bilibili block server IPs. To unlock full access, I need a residential proxy. You can get one at https://webshare.io ($1/month). Send me the proxy address."
131
-
132
- ```bash
133
- agent-reach configure proxy http://user:pass@ip:port
134
- ```
135
-
136
- **XiaoHongShu / 小红书 (需要 Docker):**
137
- > "小红书需要一个 MCP 服务。需要你的机器上有 Docker。安装好 Docker 后我来搞定剩下的。"
138
-
139
- ```bash
140
- docker run -d --name xiaohongshu-mcp -p 18060:18060 xpzouying/xiaohongshu-mcp
141
- mcporter config add xiaohongshu http://localhost:18060/mcp
142
- ```
143
-
144
- > 如果在服务器上,建议加代理避免 IP 风控:
145
- > `docker run -d --name xiaohongshu-mcp -p 18060:18060 -e XHS_PROXY=http://user:pass@ip:port xpzouying/xiaohongshu-mcp`
146
- >
147
- > **登录方式(优先用 Cookie-Editor,最简单):**
148
- > 1. 用户在自己的浏览器登录小红书 (xiaohongshu.com)
149
- > 2. 用 [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) 插件导出 Cookie(JSON 或 Header String 格式均可)
150
- > 3. 把 Cookie 字符串发给 Agent
151
- > 4. Agent 运行命令完成登录:
152
- >
153
- > ```bash
154
- > # JSON 格式(Cookie-Editor → Export → JSON)
155
- > agent-reach configure xhs-cookies '[{"name":"web_session","value":"xxx","domain":".xiaohongshu.com",...}]'
156
- >
157
- > # 或 Header String 格式(Cookie-Editor → Export → Header String)
158
- > agent-reach configure xhs-cookies "key1=val1; key2=val2; ..."
159
- > ```
160
- >
161
- > **备选:** 本地电脑如果有浏览器,也可以打开 http://localhost:18060 扫码登录。
162
-
163
- **抖音 / Douyin (douyin-mcp-server):**
164
- > "抖音视频解析需要一个 MCP 服务。安装 douyin-mcp-server 后即可解析视频、获取无水印下载链接。"
165
-
166
- ```bash
167
- # 1. 安装
168
- pip install douyin-mcp-server
169
-
170
- # 2. 启动 HTTP 服务(端口 18070)
171
- # 方式一:用 uv(推荐)
172
- mkdir -p ~/.agent-reach/tools && cd ~/.agent-reach/tools
173
- git clone https://github.com/yzfly/douyin-mcp-server.git && cd douyin-mcp-server
174
- uv sync && uv run python run_http.py
175
-
176
- # 方式二:直接用 Python 启动
177
- python -c "
178
- from douyin_mcp_server.server import mcp
179
- mcp.settings.host = '127.0.0.1'
180
- mcp.settings.port = 18070
181
- mcp.run(transport='streamable-http')
182
- "
183
-
184
- # 3. 注册到 mcporter
185
- mcporter config add douyin http://localhost:18070/mcp
186
- ```
187
-
188
- > 无需认证即可解析视频信息和获取下载链接。
189
- > 如需 AI 语音识别提取文案功能,需要配置硅基流动 API Key(`export API_KEY="sk-xxx"`)。
190
- >
191
- > 详见 https://github.com/yzfly/douyin-mcp-server
192
-
193
- **LinkedIn (可选 — linkedin-scraper-mcp):**
194
- > "LinkedIn 基本内容可通过 Jina Reader 读取。完整功能(Profile 详情、职位搜索)需要 linkedin-scraper-mcp。"
195
-
196
- ```bash
197
- pip install linkedin-scraper-mcp
198
- ```
199
-
200
- > **登录方式(需要浏览器界面):**
201
- >
202
- > linkedin-scraper-mcp 使用 Chromium 浏览器登录,需要你能看到浏览器窗口。
203
- >
204
- > - **本地电脑(有桌面):** 直接运行:
205
- > ```bash
206
- > linkedin-scraper-mcp --login --no-headless
207
- > ```
208
- > 浏览器会弹出来,手动登录 LinkedIn 即可。
209
- >
210
- > - **服务器(无 UI):** 需要通过 VNC 远程桌面操作:
211
- > ```bash
212
- > # 1. 服务器上安装并启动 VNC(如已有可跳过)
213
- > apt install -y tigervnc-standalone-server
214
- > vncserver :1 -geometry 1280x720
215
- >
216
- > # 2. 用 VNC 客户端连接 服务器IP:5901
217
- >
218
- > # 3. 在 VNC 桌面的终端里运行:
219
- > export DISPLAY=:1
220
- > linkedin-scraper-mcp --login --no-headless
221
- > ```
222
- > 在 VNC 里看到浏览器后手动登录。登录成功后 session 会保存到 `~/.linkedin-mcp/profile/`。
223
- >
224
- > **登录后启动 MCP 服务:**
225
- > ```bash
226
- > linkedin-scraper-mcp --transport streamable-http --port 8001
227
- > mcporter config add linkedin http://localhost:8001/mcp
228
- > ```
229
- >
230
- > 详见 https://github.com/stickerdaniel/linkedin-mcp-server
231
-
232
- **Boss直聘 (可选 — mcp-bosszp):**
233
- > "Boss直聘职位页面可直接读取。完整搜索和打招呼功能需要 mcp-bosszp。"
234
-
235
- ```bash
236
- mkdir -p ~/.agent-reach/tools && cd ~/.agent-reach/tools
237
- git clone https://github.com/mucsbr/mcp-bosszp.git && cd mcp-bosszp
238
- pip install -r requirements.txt && playwright install chromium
239
- ```
240
-
241
- > **登录方式(手机 App 扫码):**
242
- >
243
- > mcp-bosszp 使用二维码登录,需要 Boss直聘 App 扫码。
244
- >
245
- > ```bash
246
- > # 1. 启动 MCP 服务
247
- > python boss_zhipin_fastmcp_v2.py
248
- >
249
- > # 2. 通过 MCP 触发登录(会生成二维码图片)
250
- > mcporter call 'bosszhipin.start_login()'
251
- >
252
- > # 3. 浏览器打开二维码图片(服务器上用 http://服务器IP:8000/static/qrcode_xxx.png)
253
- > # 4. 用 Boss直聘 App 扫码确认
254
- > ```
255
- >
256
- > 扫码成功后 session 自动保存,之后可以搜索职位和自动打招呼。
257
- >
258
- > 或用 Docker:`docker-compose up -d`
259
- >
260
- > 详见 https://github.com/mucsbr/mcp-bosszp
261
-
262
- ### Step 4: Final check
263
-
264
- Run `agent-reach doctor` one final time and report the results to your user.
265
-
266
- ### Step 5: Set up daily monitoring (OpenClaw only)
267
-
268
- If you are running inside **OpenClaw**, ask your user:
269
-
270
- > "link-world 安装好了。要不要我设一个每天自动检查的任务?它会帮你盯着这些渠道是否正常、有没有新版本。有问题才会通知你,没问题不打扰。"
271
-
272
- If the user agrees, create a **cron job** (daily, `sessionTarget: "isolated"`, `delivery: "announce"`) with this task:
273
-
274
- ```
275
- 运行 agent-reach watch 命令。
276
- 如果输出包含"全部正常",不需要通知用户,静默结束。
277
- 如果输出包含问题(❌ ⚠️)或新版本(🆕),把完整报告发给用户,并建议修复方案。
278
- 如果有新版本可用,问用户是否要升级(升级命令:pip install --upgrade https://github.com/Panniantong/agent-reach/archive/main.zip)。
279
- ```
280
-
281
- If the user wants a different agent to handle it, let them choose.
282
-
283
- ---
284
-
285
- ## Quick Reference
286
-
287
- | Command | What it does |
288
- |---------|-------------|
289
- | `agent-reach install --env=auto` | Full auto-setup (installs deps + configures) |
290
- | `agent-reach install --env=auto --safe` | Safe setup (no auto system changes) |
291
- | `agent-reach install --env=auto --dry-run` | Preview what would be done |
292
- | `agent-reach doctor` | Show channel status |
293
- | `agent-reach watch` | Quick health + update check (for scheduled tasks) |
294
- | `agent-reach check-update` | Check for new versions |
295
- | `agent-reach configure twitter-cookies "..."` | Unlock Twitter search + posting |
296
- | `agent-reach configure proxy URL` | Unlock Reddit + Bilibili on servers |
297
-
298
- After installation, use upstream tools directly. See SKILL.md for the full command reference:
299
-
300
- | Platform | Upstream Tool | Example |
301
- |----------|---------------|---------|
302
- | Twitter/X | `xreach` | `xreach search "query" --json` |
303
- | YouTube | `yt-dlp` | `yt-dlp --dump-json URL` |
304
- | Bilibili | `yt-dlp` | `yt-dlp --dump-json URL` |
305
- | Reddit | `curl` | `curl -s "https://reddit.com/r/xxx.json"` |
306
- | GitHub | `gh` | `gh search repos "query"` |
307
- | Web | `curl` + Jina | `curl -s "https://r.jina.ai/URL"` |
308
- | Exa Search | `mcporter` | `mcporter call 'exa.web_search_exa(...)'` |
309
- | 小红书 | `mcporter` | `mcporter call 'xiaohongshu.search_feeds(...)'` |
310
- | 抖音 | `mcporter` | `mcporter call 'douyin.parse_douyin_video_info(...)'` |
311
- | LinkedIn | `mcporter` | `mcporter call 'linkedin.get_person_profile(...)'` |
312
- | Boss直聘 | `mcporter` | `mcporter call 'bosszhipin.search_jobs_tool(...)'` |
313
- | RSS | `feedparser` | `python3 -c "import feedparser; ..."` |
1
+ # link-world — Installation Guide
2
+
3
+ ## For Humans
4
+
5
+ Copy this to your AI Agent:
6
+
7
+ ```
8
+ 帮我安装 link-world:https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
9
+ ```
10
+
11
+ > 🛡️ **Security-conscious?** Use safe mode — it won't auto-install system packages:
12
+ > ```
13
+ > 帮我安装 link-world(安全模式):https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
14
+ > 安装时使用 --safe 参数
15
+ > ```
16
+
17
+ ---
18
+
19
+ ## For AI Agents
20
+
21
+ ### Goal
22
+
23
+ Install link-world and all upstream tools so your user's agent has full internet access. After installation, you'll use the upstream tools directly (xreach CLI, yt-dlp, mcporter, gh CLI, etc.) — link-world is just the installer and health checker.
24
+
25
+ ### ⚠️ Boundaries
26
+
27
+ When fixing issues, stay within these limits:
28
+
29
+ - **DO NOT** run commands with `sudo` unless the user explicitly approved
30
+ - **DO NOT** modify system files outside `~/.agent-reach/`
31
+ - **DO NOT** install packages not listed in this guide
32
+ - **DO NOT** disable firewalls, security settings, or system protections
33
+ - **DO NOT** clone repos, create files, or run commands inside the agent workspace / working directory
34
+ - If something requires elevated permissions, **tell the user** what's needed and let them decide
35
+
36
+ ### 📁 Directory Rules
37
+
38
+ All link-world files go in dedicated directories — **never in the agent workspace**:
39
+
40
+ | Purpose | Directory | Example |
41
+ |---------|-----------|---------|
42
+ | Config & tokens | `~/.agent-reach/` | `~/.agent-reach/config.json` |
43
+ | Upstream tool repos | `~/.agent-reach/tools/` | `~/.agent-reach/tools/douyin-mcp-server/` |
44
+ | Temporary files | `/tmp/` | `/tmp/yt-dlp-output/` |
45
+ | Skills | `~/.openclaw/skills/agent-reach/` | SKILL.md |
46
+
47
+ **Why?** If you clone repos or create files in the workspace, it pollutes the user's project directory and can break their agent over time. Keep the workspace clean.
48
+
49
+ ### Step 1: Install
50
+
51
+ **Default (fully automatic):**
52
+
53
+ ```bash
54
+ pip install https://github.com/Panniantong/agent-reach/archive/main.zip
55
+ agent-reach install --env=auto
56
+ ```
57
+
58
+ This auto-installs system dependencies (gh CLI, Node.js, mcporter, xreach), configures Exa search, detects environment, and tests all channels.
59
+
60
+ **Safe mode (no automatic system changes):**
61
+
62
+ If the user asked for safe mode, or you're on a production machine:
63
+
64
+ ```bash
65
+ pip install https://github.com/Panniantong/agent-reach/archive/main.zip
66
+ agent-reach install --env=auto --safe
67
+ ```
68
+
69
+ Safe mode checks what's installed and tells you what's missing, but doesn't auto-install system packages. You can then install each dependency manually.
70
+
71
+ **Dry run (preview only):**
72
+
73
+ ```bash
74
+ agent-reach install --env=auto --dry-run
75
+ ```
76
+
77
+ Shows what would be done without making any changes.
78
+
79
+ **Read the output carefully**, then run:
80
+
81
+ ```bash
82
+ agent-reach doctor
83
+ ```
84
+
85
+ ### Step 2: Fix what's broken
86
+
87
+ `agent-reach doctor` shows you which channels are active and which aren't.
88
+
89
+ Try to get as many channels to ✅ as possible. If something failed during install or shows as ❌/⚠️ in doctor, diagnose the problem and try to fix it — but stay within the boundaries above. If a fix requires elevated permissions or system changes, ask the user first.
90
+
91
+ Only ask the user when you genuinely need their input (credentials, permissions, etc.).
92
+
93
+ ### Step 3: Configure things that need user input
94
+
95
+ Some channels need credentials only the user can provide. Based on the doctor output, ask for what's missing:
96
+
97
+ > 🔒 **Security tip:** For platforms that need cookies (Twitter, XiaoHongShu), we recommend using a **dedicated/secondary account** rather than your main account. Cookie-based auth carries two risks:
98
+ > 1. **Account ban** — platforms may detect non-browser API calls and restrict or ban the account
99
+ > 2. **Credential exposure** — cookies grant full account access; using a secondary account limits the blast radius if credentials are ever compromised
100
+
101
+ > 🍪 **Cookie 导入(所有需要登录的平台通用):**
102
+ >
103
+ > 所有需要 Cookie 的平台(Twitter、小红书等),**优先使用 Cookie-Editor 导入**,这是最简单最可靠的方式:
104
+ > 1. 用户在自己的浏览器上登录对应平台
105
+ > 2. 安装 [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) Chrome 插件
106
+ > 3. 点击插件 → Export → Header String
107
+ > 4. 把导出的字符串发给 Agent
108
+ >
109
+ > **本地电脑用户**也可以用 `agent-reach configure --from-browser chrome` 一键自动提取(支持 Twitter + 小红书)。
110
+
111
+ **Twitter search & posting:**
112
+ > "To unlock Twitter search, I need your Twitter cookies. Install the Cookie-Editor Chrome extension, go to x.com/twitter.com, click the extension → Export → Header String, and paste it to me."
113
+
114
+ ```bash
115
+ agent-reach configure twitter-cookies "PASTED_STRING"
116
+ ```
117
+
118
+ > **代理说明(中国大陆等需要翻墙的网络环境):**
119
+ >
120
+ > xreach CLI 使用 Node.js 原生 `fetch()`,默认不走系统代理(`HTTP_PROXY`/`HTTPS_PROXY`)。link-world 已内置解决方案:安装时会自动安装 `undici`(`npm install -g undici`),运行 xreach 时自动注入 `EnvHttpProxyAgent`,让 fetch 走用户配置的代理。
121
+ >
122
+ > **你(Agent)需要做的:**
123
+ > 1. 确认 `undici` 已全局安装:`npm list -g undici`,没有就装:`npm install -g undici`
124
+ > 2. 确认用户配了代理:`agent-reach configure proxy http://user:pass@ip:port`
125
+ > 3. link-world 会自动处理剩下的,不需要用户做额外操作
126
+ >
127
+ > 如果用户报告 "fetch failed",参考 [troubleshooting.md](troubleshooting.md)
128
+
129
+ **Reddit & Bilibili full access (server users):**
130
+ > "Reddit and Bilibili block server IPs. To unlock full access, I need a residential proxy. You can get one at https://webshare.io ($1/month). Send me the proxy address."
131
+
132
+ ```bash
133
+ agent-reach configure proxy http://user:pass@ip:port
134
+ ```
135
+
136
+ **XiaoHongShu / 小红书 (需要 Docker):**
137
+ > "小红书需要一个 MCP 服务。需要你的机器上有 Docker。安装好 Docker 后我来搞定剩下的。"
138
+
139
+ ```bash
140
+ docker run -d --name xiaohongshu-mcp -p 18060:18060 xpzouying/xiaohongshu-mcp
141
+ mcporter config add xiaohongshu http://localhost:18060/mcp
142
+ ```
143
+
144
+ > 如果在服务器上,建议加代理避免 IP 风控:
145
+ > `docker run -d --name xiaohongshu-mcp -p 18060:18060 -e XHS_PROXY=http://user:pass@ip:port xpzouying/xiaohongshu-mcp`
146
+ >
147
+ > **登录方式(优先用 Cookie-Editor,最简单):**
148
+ > 1. 用户在自己的浏览器登录小红书 (xiaohongshu.com)
149
+ > 2. 用 [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) 插件导出 Cookie(JSON 或 Header String 格式均可)
150
+ > 3. 把 Cookie 字符串发给 Agent
151
+ > 4. Agent 运行命令完成登录:
152
+ >
153
+ > ```bash
154
+ > # JSON 格式(Cookie-Editor → Export → JSON)
155
+ > agent-reach configure xhs-cookies '[{"name":"web_session","value":"xxx","domain":".xiaohongshu.com",...}]'
156
+ >
157
+ > # 或 Header String 格式(Cookie-Editor → Export → Header String)
158
+ > agent-reach configure xhs-cookies "key1=val1; key2=val2; ..."
159
+ > ```
160
+ >
161
+ > **备选:** 本地电脑如果有浏览器,也可以打开 http://localhost:18060 扫码登录。
162
+
163
+ **抖音 / Douyin (douyin-mcp-server):**
164
+ > "抖音视频解析需要一个 MCP 服务。安装 douyin-mcp-server 后即可解析视频、获取无水印下载链接。"
165
+
166
+ ```bash
167
+ # 1. 安装
168
+ pip install douyin-mcp-server
169
+
170
+ # 2. 启动 HTTP 服务(端口 18070)
171
+ # 方式一:用 uv(推荐)
172
+ mkdir -p ~/.agent-reach/tools && cd ~/.agent-reach/tools
173
+ git clone https://github.com/yzfly/douyin-mcp-server.git && cd douyin-mcp-server
174
+ uv sync && uv run python run_http.py
175
+
176
+ # 方式二:直接用 Python 启动
177
+ python -c "
178
+ from douyin_mcp_server.server import mcp
179
+ mcp.settings.host = '127.0.0.1'
180
+ mcp.settings.port = 18070
181
+ mcp.run(transport='streamable-http')
182
+ "
183
+
184
+ # 3. 注册到 mcporter
185
+ mcporter config add douyin http://localhost:18070/mcp
186
+ ```
187
+
188
+ > 无需认证即可解析视频信息和获取下载链接。
189
+ > 如需 AI 语音识别提取文案功能,需要配置硅基流动 API Key(`export API_KEY="sk-xxx"`)。
190
+ >
191
+ > 详见 https://github.com/yzfly/douyin-mcp-server
192
+
193
+ **LinkedIn (可选 — linkedin-scraper-mcp):**
194
+ > "LinkedIn 基本内容可通过 Jina Reader 读取。完整功能(Profile 详情、职位搜索)需要 linkedin-scraper-mcp。"
195
+
196
+ ```bash
197
+ pip install linkedin-scraper-mcp
198
+ ```
199
+
200
+ > **登录方式(需要浏览器界面):**
201
+ >
202
+ > linkedin-scraper-mcp 使用 Chromium 浏览器登录,需要你能看到浏览器窗口。
203
+ >
204
+ > - **本地电脑(有桌面):** 直接运行:
205
+ > ```bash
206
+ > linkedin-scraper-mcp --login --no-headless
207
+ > ```
208
+ > 浏览器会弹出来,手动登录 LinkedIn 即可。
209
+ >
210
+ > - **服务器(无 UI):** 需要通过 VNC 远程桌面操作:
211
+ > ```bash
212
+ > # 1. 服务器上安装并启动 VNC(如已有可跳过)
213
+ > apt install -y tigervnc-standalone-server
214
+ > vncserver :1 -geometry 1280x720
215
+ >
216
+ > # 2. 用 VNC 客户端连接 服务器IP:5901
217
+ >
218
+ > # 3. 在 VNC 桌面的终端里运行:
219
+ > export DISPLAY=:1
220
+ > linkedin-scraper-mcp --login --no-headless
221
+ > ```
222
+ > 在 VNC 里看到浏览器后手动登录。登录成功后 session 会保存到 `~/.linkedin-mcp/profile/`。
223
+ >
224
+ > **登录后启动 MCP 服务:**
225
+ > ```bash
226
+ > linkedin-scraper-mcp --transport streamable-http --port 8001
227
+ > mcporter config add linkedin http://localhost:8001/mcp
228
+ > ```
229
+ >
230
+ > 详见 https://github.com/stickerdaniel/linkedin-mcp-server
231
+
232
+ **Boss直聘 (可选 — mcp-bosszp):**
233
+ > "Boss直聘职位页面可直接读取。完整搜索和打招呼功能需要 mcp-bosszp。"
234
+
235
+ ```bash
236
+ mkdir -p ~/.agent-reach/tools && cd ~/.agent-reach/tools
237
+ git clone https://github.com/mucsbr/mcp-bosszp.git && cd mcp-bosszp
238
+ pip install -r requirements.txt && playwright install chromium
239
+ ```
240
+
241
+ > **登录方式(手机 App 扫码):**
242
+ >
243
+ > mcp-bosszp 使用二维码登录,需要 Boss直聘 App 扫码。
244
+ >
245
+ > ```bash
246
+ > # 1. 启动 MCP 服务
247
+ > python boss_zhipin_fastmcp_v2.py
248
+ >
249
+ > # 2. 通过 MCP 触发登录(会生成二维码图片)
250
+ > mcporter call 'bosszhipin.start_login()'
251
+ >
252
+ > # 3. 浏览器打开二维码图片(服务器上用 http://服务器IP:8000/static/qrcode_xxx.png)
253
+ > # 4. 用 Boss直聘 App 扫码确认
254
+ > ```
255
+ >
256
+ > 扫码成功后 session 自动保存,之后可以搜索职位和自动打招呼。
257
+ >
258
+ > 或用 Docker:`docker-compose up -d`
259
+ >
260
+ > 详见 https://github.com/mucsbr/mcp-bosszp
261
+
262
+ ### Step 4: Final check
263
+
264
+ Run `agent-reach doctor` one final time and report the results to your user.
265
+
266
+ ### Step 5: Set up daily monitoring (OpenClaw only)
267
+
268
+ If you are running inside **OpenClaw**, ask your user:
269
+
270
+ > "link-world 安装好了。要不要我设一个每天自动检查的任务?它会帮你盯着这些渠道是否正常、有没有新版本。有问题才会通知你,没问题不打扰。"
271
+
272
+ If the user agrees, create a **cron job** (daily, `sessionTarget: "isolated"`, `delivery: "announce"`) with this task:
273
+
274
+ ```
275
+ 运行 agent-reach watch 命令。
276
+ 如果输出包含"全部正常",不需要通知用户,静默结束。
277
+ 如果输出包含问题(❌ ⚠️)或新版本(🆕),把完整报告发给用户,并建议修复方案。
278
+ 如果有新版本可用,问用户是否要升级(升级命令:pip install --upgrade https://github.com/Panniantong/agent-reach/archive/main.zip)。
279
+ ```
280
+
281
+ If the user wants a different agent to handle it, let them choose.
282
+
283
+ ---
284
+
285
+ ## Quick Reference
286
+
287
+ | Command | What it does |
288
+ |---------|-------------|
289
+ | `agent-reach install --env=auto` | Full auto-setup (installs deps + configures) |
290
+ | `agent-reach install --env=auto --safe` | Safe setup (no auto system changes) |
291
+ | `agent-reach install --env=auto --dry-run` | Preview what would be done |
292
+ | `agent-reach doctor` | Show channel status |
293
+ | `agent-reach watch` | Quick health + update check (for scheduled tasks) |
294
+ | `agent-reach check-update` | Check for new versions |
295
+ | `agent-reach configure twitter-cookies "..."` | Unlock Twitter search + posting |
296
+ | `agent-reach configure proxy URL` | Unlock Reddit + Bilibili on servers |
297
+
298
+ After installation, use upstream tools directly. See SKILL.md for the full command reference:
299
+
300
+ | Platform | Upstream Tool | Example |
301
+ |----------|---------------|---------|
302
+ | Twitter/X | `xreach` | `xreach search "query" --json` |
303
+ | YouTube | `yt-dlp` | `yt-dlp --dump-json URL` |
304
+ | Bilibili | `yt-dlp` | `yt-dlp --dump-json URL` |
305
+ | Reddit | `curl` | `curl -s "https://reddit.com/r/xxx.json"` |
306
+ | GitHub | `gh` | `gh search repos "query"` |
307
+ | Web | `curl` + Jina | `curl -s "https://r.jina.ai/URL"` |
308
+ | Exa Search | `mcporter` | `mcporter call 'exa.web_search_exa(...)'` |
309
+ | 小红书 | `mcporter` | `mcporter call 'xiaohongshu.search_feeds(...)'` |
310
+ | 抖音 | `mcporter` | `mcporter call 'douyin.parse_douyin_video_info(...)'` |
311
+ | LinkedIn | `mcporter` | `mcporter call 'linkedin.get_person_profile(...)'` |
312
+ | Boss直聘 | `mcporter` | `mcporter call 'bosszhipin.search_jobs_tool(...)'` |
313
+ | RSS | `feedparser` | `python3 -c "import feedparser; ..."` |