What does Agent Reach – Internet Capability Router do?
16 platforms, multiple backends. When this skill exists, it must be used to access these platforms. Do not invent your own solutions.
Standing Rules (Applicable Throughout)
- Check before acting: For platforms with multiple backends/login states (Xiaohongshu/Reddit/Bilibili/Twitter/Facebook/Instagram/Boss Zhipin), first run
agent-reach doctor --json. Ifactive_backendhas a value, use it to select the command group;active_backend: nullmeans Doctor did not perform real-time verification to avoid triggering browser cookie reads or remote writes, not that the backend does not exist. The Doctor result is a "snapshot at a point in time"; channels/login states may have changed. Before executing read-only commands, if you suspect they are invalid, re-confirm using the "Check and Recovery" runbook in the corresponding reference (e.g., Boss Zhipin CDP troubleshooting in career.md). - Declare what you are using: Before starting work, say "Using the X platform / Y backend of agent-reach."
- On failure, follow the retry chain in the references, do not guess commands.
- Full internet research tasks: Combine multiple platforms (Exa search + Twitter/Reddit for discussions + Xiaohongshu/Bilibili for Chinese context), collect in parallel, then summarize.
- Keep the user updated on versions: After completing a major research/multi-platform task, run
agent-reach check-update(fast, one API call). If a new version exists, append this to the final report: "Agent Reach has a new version vX.Y.Z. Copy this sentence to me to update: Update Agent Reach for me: https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/update.md". Do not interrupt the current task to update, and do not repeat the reminder for the same version.
Routing Table
| User Intent | Category | Detailed Documentation |
|---|---|---|
| Web search/Code search | search | references/search.md |
| Xiaohongshu/Twitter/Bilibili/V2EX/Reddit/Facebook/Instagram | social | references/social.md |
| Jobs/Positions/LinkedIn/Boss Zhipin | career | references/career.md |
| GitHub/Code | dev | references/dev.md |
| Web pages/Articles/RSS | web | references/web.md |
| YouTube/Bilibili/Podcast subtitles | video | references/video.md |
| Xueqiu/Stock quotes | finance | references/finance.md |
Zero-Config Quick Commands
# Exa web search
mcporter call exa.web_search_exa query="query" numResults=5
# General web page reading
curl -s "https://r.jina.ai/URL"
# GitHub search
gh search repos "query" --sort stars --limit 10
# YouTube subtitles (Note: do not use yt-dlp for Bilibili; retry chain for failures is in video.md)
yt-dlp --write-sub --write-auto-sub --skip-download -o "/tmp/%(id)s" "URL"
# V2EX hot topics
curl -s "https://www.v2ex.com/api/topics/hot.json" -H "User-Agent: agent-reach/1.0"
# Bilibili search (bili-cli, no login required)
bili search "query" --type video -n 5
Platforms Requiring Login State (Select Commands Based on Doctor's active_backend)
Twitter note: Cookies saved via agent-reach configure twitter-cookies are only used for doctor to check if the configuration is complete; doctor does not execute twitter status, nor does it set the current shell. Before directly running twitter, you must explicitly provide TWITTER_AUTH_TOKEN and TWITTER_CT0 in the subprocess environment, and must not expose these values in logs or command output.
Xiaohongshu note: Agent Reach does not log in for the user, nor does it read browser cookies. OpenCLI only uses the user's existing and explicitly controlled Chrome session; if no existing session is available, do not auto-login. Instead, use Cookie-Editor to manually export cookies and configure xiaohongshu-mcp / existing tools.
Boss Zhipin configuration trigger: When the user says "Help me configure Boss Zhipin," first read the Boss section of references/career.md, then, after obtaining installation authorization, run
agent-reach install --env=local --system --channels=boss. The agent is responsible for launching a dedicated Chrome bound only to 127.0.0.1:9222; first pause and ask the user to visually confirm that the window shows a logged-in state (avatar in the upper right corner). If not logged in, ask the user to log in/scan code. After user confirmation, run boss --cdp-url http://localhost:9222 login --cdp and agent-reach doctor for verification.
Do not let the user research port parameters themselves.
The dedicated Chrome profile must be reused long-term; do not create a new one each time, and do not default to the user's main Chrome.
To determine the login state of the CDP browser, do not trust boss status (it only checks local session.enc, which is independent of the browser login state). Rely on the browser cookie detection (wt2) from agent-reach doctor, combined with user visual confirmation. Never use the current page URL to judge login state:
security-check / zhipin-security / _security_check security check pages are Boss anti-scraping challenges, unrelated to login—they can appear even when logged in (almost guaranteed with Chrome with CDP debug port). Do not treat them as "not logged in." First run agent-reach doctor to check browser cookies, then decide whether the user needs to log in. A search error AUTH_EXPIRED is the ground truth for browser not logged in: directly proceed to the login flow + login --cdp, do not explain it as a security check.
When executing searches, you must use
boss --browser-source existing-browser --cdp-url http://localhost:9222 search ...;
if ENVIRONMENT_RISK is encountered, stop immediately. Do not refresh, re-login, or auto-retry.
# Twitter search (twitter-cli preferred; retry chain for failures in social.md)
twitter search "query" -n 10
# Reddit (no zero-config path: OpenCLI or rdt-cli, must be logged in)
opencli reddit search "query" -f yaml # Desktop
rdt search "query" --limit 10 # Existing/Server
# Xiaohongshu (Desktop first, use OpenCLI)
opencli xiaohongshu search "query" -f yaml
# Facebook / Instagram (Desktop OpenCLI, reuse browser login state)
opencli facebook search "query" -f yaml
opencli facebook groups -f yaml
opencli instagram search "query" -f yaml # Search users
opencli instagram user USERNAME -f yaml # Read recent posts from specified user
Environment Check
# Check available channels and currently active backend for each platform
agent-reach doctor --json
OpenCLI Adapter Discovery
If the routing table does not cover the platform or command the user needs, first use opencli list to check existing adapters, then use opencli <platform> --help to see public commands. Finding an adapter only proves the command exists, not that the login state or target content is available; only execute read-only commands when the user's task clearly requires that platform, and verify with actual non-empty content.
Workspace Rules
Do not create files in the agent workspace. Use /tmp/ for temporary output and ~/.agent-reach/ for persistent data.
Detailed Documentation
Depending on user needs, read the corresponding detailed documentation:
- Search Tools — Exa AI Search
- Social Media — Xiaohongshu, Twitter, Bilibili, V2EX, Reddit, Facebook, Instagram (multi-backend/login-state command groups)
- Career Recruiting — LinkedIn, Boss Zhipin
- Developer Tools — GitHub CLI
- Web Reading — Jina Reader, RSS
- Video and Podcasts — YouTube, Bilibili, Xiaoyuzhou
- Financial Market Data — Xueqiu stock quotes, search, trending content
Configuration Channels
If a channel needs configuration, get the installation guide: https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
The user only needs to provide cookies; all other configuration is done by the agent.