Agent Reach — multi-backend internet capability layer
Agent Reach
Repo: https://github.com/Panniantong/Agent-Reach — MIT, Python 3.10+, pip/pipx.
What it is
Capability layer, NOT a wrapper. Selects + installs + health-checks + routes upstream tools per platform. Agent invokes the upstream tools directly (yt-dlp, mcporter, gh, twitter-cli, bili-cli, OpenCLI...).
Free-tier numbers
- CLI + all Python deps: 100% free, MIT.
- Exa search (via mcporter MCP): free, no API key.
- Optional Groq Whisper (for 小宇宙): free, ~2h audio/hour rate limit.
- LinkedIn / Twitter / Reddit / 小红书 / FB / IG: user-supplied cookies or OpenCLI browser session (free).
- ~$1/mo residential proxy only if deploying to a server with region-blocked target.
Install (locked 2026-07-05, corp laptop)
pipx install "https://github.com/Panniantong/agent-reach/archive/main.zip"
agent-reach install --env=auto --safe
npm install -g mcporter
# mcporter config MUST run from user home so config lands in ~/.mcporter/mcporter.json:
cd $env:USERPROFILE ; mcporter config add exa https://mcp.exa.ai/mcp
uv tool install yt-dlp
Zero-config channels active after install: Web (Jina Reader), GitHub, YouTube, RSS, Exa Search, V2EX, Bilibili-basic (6/15).
Optional channels unlock via agent-reach install --channels=<name>: opencli, twitter, xiaoyuzhou, xueqiu, xiaohongshu, reddit, facebook, instagram, bilibili, linkedin, all.
Doctor + status
agent-reach doctor # human-readable
agent-reach doctor --json # for scripting
Skill registration
Auto-writes SKILL.md to ~/.claude/skills/agent-reach/ + ~/.agents/skills/agent-reach/ on install. Discoverable by CC + all skills-aware agents. No workspace pollution.
Known workspace-pollution gotcha (2026-07-05)
mcporter config addwrites to<cwd>/config/mcporter.json(not user home). ALWAYS run from~on Windows or config lands in the umbrella. Fix landed 2026-07-05 (moved to~/.mcporter/mcporter.json).
Known corp-laptop gotcha (2026-07-05)
- Corp AV/EPM blocks
yt-dlp.exe(any location:.local/bin,AppData\Roaming\Python\Scripts, pipx venv). Exit 126 in bash, "Access denied" in PS. Doctor false-negatives yt-dlp. - Workaround:
python -m yt_dlp <args>bypasses the.exelauncher AV signature. Agent invocations should prefer module form on this machine.
Role in fleet
Web-access default for Claude Code + OpenCode + Kilo. Sits alongside the existing MCP search stack (never-use-native-web-tools). Agent-Reach's Exa MCP overlaps mcp__chirag127__keenable-web-search_* — no conflict, both stay; Exa is semantic-search-first, Keenable is generic web search.
Swap cost
Low. Every channel is a small file (channels/*.py), swap = replace one file. Uninstall: agent-reach uninstall && pipx uninstall agent-reach. No data left behind.