/install agent-reach-en
Agent Reach
Install and configure upstream tools for 13+ platforms. After setup, call them directly — no wrapper layer.
Workspace Rules
Never create files, clone repos, or write output in the agent workspace. Use these directories instead:
| Purpose | Directory |
|---|---|
| Temporary output (subtitles, downloads) | /tmp/ |
| Upstream tool repos | ~/.agent-reach/tools/ |
| Config & tokens | ~/.agent-reach/ |
Violating this will pollute the user's workspace and degrade their agent experience over time.
Setup
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
agent-reach install --env=auto
agent-reach doctor
install auto-detects your environment and installs core dependencies (Node.js, mcporter, xreach CLI, gh CLI, yt-dlp, feedparser). Run doctor to see what's active.
Management
agent-reach doctor # channel status overview
agent-reach watch # quick health + update check
agent-reach check-update # check for new versions
Configure channels
agent-reach configure twitter-cookies "auth_token=xxx; ct0=yyy"
agent-reach configure proxy http://user:pass@ip:port
agent-reach configure --from-browser chrome # auto-extract cookies from local browser
Configuring a channel
When a user asks to configure/enable any channel:
- Run
agent-reach doctor - Find the channel — it shows status (✅/⚠️/⬜) and what to do next
- Execute what you can automatically (install packages, start services)
- For human-required steps (paste cookies), tell the user what to do
- Run
agent-reach doctoragain to verify
Do NOT memorize per-channel steps. Always rely on doctor output.
Cookie Import (Universal for all login-required platforms)
Important: Platforms using cookie login have account ban risks. Remind users to use a dedicated secondary account.
For all platforms requiring cookies (Twitter, XiaoHongShu, etc.), prefer Cookie-Editor import:
- User logs into the platform in their browser
- Install Cookie-Editor Chrome extension
- Click extension → Export → Header String
- Send the exported string to the Agent
Local computer users can also use agent-reach configure --from-browser chrome for automatic extraction.
QR code login is a backup option (only for local environments with browser), Cookie-Editor is simpler and more reliable.
Other human actions
- Proxy: Reddit/Bilibili/XiaoHongShu may block server IPs — suggest a residential proxy if on a server
Using Upstream Tools Directly
After agent-reach install, call the upstream tools directly.
Note:
agent-reachis an installer and config tool — it does NOT haveread,search, or content-fetching commands. Use the upstream tools below instead.
Twitter/X (xreach CLI)
# Search tweets
xreach search "query" --json -n 10
# Read a specific tweet
xreach tweet https://x.com/user/status/123 --json
# Read a user's timeline
xreach tweets @username --json -n 20
YouTube (yt-dlp)
yt-dlp requires JS runtime for YouTube downloads.
agent-reach installauto-configures Node.js as runtime. If you see "Sign in to confirm you're not a bot", the IP is blocked by YouTube anti-crawler. Switch proxy or add cookies.
# Get video metadata
yt-dlp --dump-json "https://www.youtube.com/watch?v=xxx"
# Download subtitles only
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --skip-download -o "/tmp/%(id)s" "URL"
# Then read the .vtt file
# Search (yt-dlp ytsearch)
yt-dlp --dump-json "ytsearch5:query"
# If "no JS runtime" warning: ensure Node.js is installed, then run:
# mkdir -p ~/.config/yt-dlp && echo "--js-runtimes node" >> ~/.config/yt-dlp/config
Bilibili (yt-dlp)
Server IPs may be blocked by Bilibili (412 error). Recommend using proxy or add
--cookies-from-browser chrome.
# Get video metadata
yt-dlp --dump-json "https://www.bilibili.com/video/BVxxx"
# Download subtitles
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --convert-subs vtt --skip-download -o "/tmp/%(id)s" "URL"
# If blocked (412 / login required):
yt-dlp --cookies-from-browser chrome --dump-json "URL"
Reddit (JSON API)
# Read a subreddit
curl -s "https://www.reddit.com/r/python/hot.json?limit=10" -H "User-Agent: agent-reach/1.0"
# Read a post with comments
curl -s "https://www.reddit.com/r/python/comments/POST_ID.json" -H "User-Agent: agent-reach/1.0"
# Search
curl -s "https://www.reddit.com/search.json?q=query&limit=10" -H "User-Agent: agent-reach/1.0"
Note: On servers, Reddit may block your IP. Use proxy or search via Exa instead.
XiaoHongShu (mcporter + xiaohongshu-mcp)
Requires login. Import cookies via Cookie-Editor or QR code login.
# Search posts
mcporter call 'xiaohongshu.search_feeds(keyword: "query")'
# Get post details (with comments)
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy")'
# Get all comments
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy", load_all_comments: true)'
# Publish image post
mcporter call 'xiaohongshu.publish_content(title: "Title", content: "Content", images: ["/path/to/img.jpg"], tags: ["food"])'
# Publish video post
mcporter call 'xiaohongshu.publish_with_video(title: "Title", content: "Content", video: "/path/to/video.mp4", tags: ["vlog"])'
Other features (like, collect, comment, user profile, etc.): npx mcporter list xiaohongshu
Douyin (mcporter + douyin-mcp-server)
# Parse Douyin video info (share link -> title, author, watermark-free video URL, etc.)
mcporter call 'douyin.parse_douyin_video_info(share_link: "https://v.douyin.com/xxx/")'
# Get watermark-free video download link
mcporter call 'douyin.get_douyin_download_link(share_link: "https://v.douyin.com/xxx/")'
# AI extract video voice transcript (requires SiliconFlow API Key)
mcporter call 'douyin.extract_douyin_text(share_link: "https://v.douyin.com/xxx/")'
No login required to parse videos. Supports both Douyin share links and direct links.
GitHub (gh CLI)
# Search repos
gh search repos "query" --sort stars --limit 10
# View a repo
gh repo view owner/repo
# Search code
gh search code "query" --language python
# List issues
gh issue list -R owner/repo --state open
# View a specific issue/PR
gh issue view 123 -R owner/repo
Web — Any URL (Jina Reader)
# Read any webpage as markdown
curl -s "https://r.jina.ai/URL" -H "Accept: text/markdown"
# Search the web
curl -s "https://s.jina.ai/query" -H "Accept: text/markdown"
Exa Search (mcporter + exa MCP)
# Web search
mcporter call 'exa.web_search_exa(query: "query", numResults: 5)'
# Code search (GitHub, StackOverflow, docs)
mcporter call 'exa.get_code_context_exa(query: "how to parse JSON in Python", tokensNum: 3000)'
# Company research
mcporter call 'exa.company_research_exa(companyName: "OpenAI")'
LinkedIn (mcporter + linkedin-scraper-mcp)
# View a profile
mcporter call 'linkedin.get_person_profile(linkedin_url: "https://linkedin.com/in/username")'
# Search people
mcporter call 'linkedin.search_people(keyword: "AI engineer", limit: 10)'
# View company
mcporter call 'linkedin.get_company_profile(linkedin_url: "https://linkedin.com/company/xxx")'
Fallback: curl -s "https://r.jina.ai/https://linkedin.com/in/username"
Boss Zhipin (mcporter + mcp-bosszp)
# Browse recommended jobs
mcporter call 'bosszhipin.get_recommend_jobs_tool(page: 1)'
# Search jobs
mcporter call 'bosszhipin.search_jobs_tool(keyword: "Python", city: "Beijing", page: 1)'
# View job details
mcporter call 'bosszhipin.get_job_detail_tool(job_url: "https://www.zhipin.com/job_detail/xxx")'
Fallback: curl -s "https://r.jina.ai/https://www.zhipin.com/job_detail/xxx"
WeChat Official Accounts (wechat-article-for-ai + miku_ai)
Search (miku_ai — Sogou WeChat search):
# Search WeChat articles by keyword
python3 -c "
import asyncio
from miku_ai import get_wexin_article
async def search():
articles = await get_wexin_article('AI Agent', 5)
for a in articles:
print(f'{a[\"title\"]} | {a[\"source\"]} | {a[\"date\"]}')
print(f' {a[\"url\"]}')
asyncio.run(search())
"
Read (Camoufox — stealth Firefox, bypasses WeChat anti-bot):
# Read a WeChat article (returns Markdown with images)
cd ~/.agent-reach/tools/wechat-article-for-ai && python3 main.py "https://mp.weixin.qq.com/s/ARTICLE_ID"
# Run as MCP server (for AI agent integration)
python3 mcp_server.py
Typical agent workflow: search → get URLs → immediately read full content.
Note: WeChat articles require a real browser to render. Jina Reader and curl cannot read them.
RSS (feedparser)
python3 -c "
import feedparser
d = feedparser.parse('https://example.com/feed')
for e in d.entries[:5]:
print(f'{e.title} — {e.link}')
"
Troubleshooting
Twitter "fetch failed"
xreach CLI uses Node.js undici, which doesn't respect HTTP_PROXY. Solutions:
- Ensure
undiciis installed:npm install -g undici - Configure proxy:
agent-reach configure proxy http://user:pass@ip:port - If still failing, use transparent proxy (Clash TUN, Proxifier)
Channel broken?
Run agent-reach doctor — it shows what's wrong and how to fix it.
Changelog
| Version | Date | Changes |
|---|---|---|
| v1.1.0 | 2025-03-15 | Translated to English |
| v1.0.0 | 2025-03-05 | Initial release |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install agent-reach-en - After installation, invoke the skill by name or use
/agent-reach-en - Provide required inputs per the skill's parameter spec and get structured output
What is Agent Reach?
Give your AI agent eyes to see the entire internet. Install and configure upstream tools for Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu, Douyi... It is an AI Agent Skill for Claude Code / OpenClaw, with 413 downloads so far.
How do I install Agent Reach?
Run "/install agent-reach-en" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Agent Reach free?
Yes, Agent Reach is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Agent Reach support?
Agent Reach is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Agent Reach?
It is built and maintained by Never (@neverchenx); the current version is v1.1.0.