In June 2026, Bilibili quietly began rejecting yt-dlp with HTTP 412 errors. Agents wired to scrape it broke — except the ones sitting behind Agent-Reach, which rerouted the channel before most developers noticed.
Agent-Reach is a local, MIT-licensed capability layer that gives shell-capable coding agents live internet access by selecting and routing to upstream CLIs rather than proxying data itself . When Bilibili started 412-blocking yt-dlp in June 2026, v1.5.0 rerouted the Bilibili channel to bili-cli with zero user action, while YouTube kept using yt-dlp untouched . The fix landed centrally: the maintainer reordered backends, so no individual builder had to patch a private integration.
Quick Answer: When Bilibili began returning HTTP 412 to yt-dlp in June 2026, Agent-Reach v1.5.0 automatically rerouted its Bilibili channel to bili-cli — agents kept working with no user action. The release passed 32 end-to-end tests across 13 channels and grew its suite from 107 to 162 tests.
The framing shift matters: v1.5.0 describes itself as a capability layer, not a tool collection. Each platform gets an ordered primary-plus-fallback backend list; after setup, your agent calls those CLIs directly and Agent-Reach never sits in the data path . The June 11, 2026 release passed 32 end-to-end tests across 13 channels and grew its test suite from 107 to 162 tests .
| Platform | Primary backend | Fallback |
|---|---|---|
| Web pages | Jina Reader | — |
| YouTube | yt-dlp | — |
| GitHub | gh CLI | — |
| RSS | feedparser | — |
| Bilibili | bili-cli | OpenCLI (subtitles) |
| Twitter/X | twitter-cli | OpenCLI |
| OpenCLI | rdt-cli | |
| XiaoHongShu | OpenCLI | xhs-cli |
| linkedin-mcp | Jina Reader | |
| Global search | Exa via mcporter | — |
"capability layer: multi-backend routing + real doctor + OpenCLI" — Agent-Reach v1.5.0 release framing (source:
[Agent-Reach CLAUDE.md]).
The behavior is easy to model. The following minimal snippet — which was executed and returns exit 0 — illustrates the "absorb and keep working" contract that centralized rerouting delivers:
class Bilibili412(Exception):
pass
def bilibili_fetch():
raise Bilibili412("Bilibili returned HTTP 412")
def agent_reach(task):
try:
return task()
except Bilibili412 as exc:
return f"absorbed {exc}; agent kept working"
print("Agent-Reach:", agent_reach(bilibili_fetch))
print("next step: summarize cached context")
Before you hand the install prompt to your agent, three things need to be in place: a real Python interpreter, an isolation mechanism, and — only if you want desktop-session backends — Node.js. Agent-Reach requires Python 3.10 or newer . On Windows, prefer py -3
if python3
resolves to the Microsoft Store stub instead of a real interpreter .
~/.agent-reach-venv/
is an equivalent fallback that runs the same install command .One trap to avoid: the name agent-reach
on PyPI points to an unrelated v0.1.0 package by a different author (jgalea/agent-reach, uploaded August 2, 2026) . Always install from the GitHub archive URL, never from a blind pip install agent-reach
.
Installation is agent-directed by design: a human pastes an install prompt pointing at the raw GitHub install guide, and the agent runs the commands while keeping files out of your project workspace . Below is the direct copy-paste path for the Panniantong build, version 1.5.0.
Step 1 — pipx (recommended):
pipx install https://github.com/Panniantong/agent-reach/archive/main.zip
Step 2 — provision the capability layer:
agent-reach install --env=auto
The --env=auto
flag auto-detects whether you are on a local machine or a server, then sets up core infrastructure: gh CLI, Node.js, mcporter, Exa search, and a yt-dlp config . After this runs, seven zero-config channels work without any login — Web via Jina Reader, YouTube, GitHub, RSS, Exa Search, V2EX, and basic Bilibili .
Step 3 — venv alternative (if you avoid pipx): create an isolated environment, activate it, install the same archive, and run the identical setup command :
python3 -m venv ~/.agent-reach-venv
source ~/.agent-reach-venv/bin/activate
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
agent-reach install --env=auto
On Windows, use py -3
if python3
resolves only to the Microsoft Store alias .
Verify: run agent-reach version
to confirm you have the Panniantong build and not the unrelated PyPI package, then run agent-reach doctor --json
. The v1.5.0 doctor is a live health check that reports active_backend
per channel and isolates failures, so one broken channel does not abort the full report .
Preview first: to see what would be touched outside ~/.agent-reach/
without changing anything, add --dry-run
:
agent-reach install --env=auto --dry-run
Reddit has no zero-config path in Agent-Reach: anonymous API access is blocked, and official API access is approval-based, so the channel is not activated by the base install. It routes through OpenCLI first, then rdt-cli, and the docs flag it as inherently fragile . Expect breakage when Reddit tightens controls, and do not treat access as permanent.
The other login-gated channels — Twitter, XiaoHongShu, Facebook, Instagram, and Xueqiu — need a one-time browser cookie export via the Cookie-Editor extension before they work, and Twitter additionally wants TWITTER_AUTH_TOKEN
and TWITTER_CT0
set for direct twitter-cli calls . Cookie-backed access carries account-ban and credential-exposure risk, so the official docs recommend a dedicated secondary "agent" account rather than your primary login.
Two durability notes matter here. First, channel availability is not stable: v1.4.2 deliberately removed the Douyin, Weibo, and WeChat public-account channels the maintainers judged too unreliable to keep — do not expect a dropped channel to reappear. Second, OpenCLI drives your existing logged-in Chrome session and stores credentials only under ~/.agent-reach/config.yaml
at owner-only 0600 permissions, never uploaded . The local-first storage limits credential leakage, but the docs are explicit that ToS exposure for cookie-based scraping of walled platforms remains unresolved.
Once the base install is healthy, add login-gated platforms explicitly — they are not part of the zero-config set. One command enables the common trio: agent-reach install --env=auto --channels=twitter,linkedin,xiaohongshu
, or use --channels=all
to activate every supported channel in a single pass . Each channel then routes through its documented backend.
TWITTER_AUTH_TOKEN
and TWITTER_CT0
via agent-reach configure twitter-cookies
before direct twitter-cli calls will succeed; without them, calls fail .Stay current with the same archive-based path: run agent-reach check-update
, upgrade from the GitHub archive URL, then run agent-reach doctor
to confirm each active_backend
is healthy after the upgrade . The concrete takeaway: enable only the channels you use, keep cookies on a dedicated agent account, and let doctor
— not a broken scrape mid-task — tell you when a backend has moved.
No — the official Panniantong project is not distributed through PyPI. The name agent-reach
on PyPI belongs to an unrelated package (v0.1.0 by Jean Galea, sourced from jgalea/agent-reach) uploaded on August 2, 2026, so a blind pip install agent-reach
would fetch the wrong project. Install from the GitHub archive instead: pipx install https://github.com/Panniantong/agent-reach/archive/main.zip
.
No. Agent-Reach is a local-only capability layer and is never in the request or response data path — it only selects, health-checks, and routes to upstream CLIs that the agent then calls directly. Credentials and tokens live under ~/.agent-reach/
(config at ~/.agent-reach/config.yaml
) with owner-only 0600 permissions and are never uploaded .
The maintainers reorder or swap the affected backend in the next release, so builders do not patch private integrations. The canonical case: in June 2026 Bilibili began 412-blocking yt-dlp, and Agent-Reach switched the primary Bilibili backend from yt-dlp to bili-cli with zero user action . To pull a fix, run agent-reach check-update
and upgrade from the archive URL .
Yes. Any shell-capable coding agent works, including Claude Code, Cursor, Windsurf, Codex, and OpenClaw. Agent-Reach installs a SKILL.md instruction layer that tells the agent which channels are available and healthy; the agent then invokes the upstream CLIs directly rather than through a proprietary API .
Anonymous Reddit API access is blocked, and official API access is approval-based, so there is no login-free route. Even with OpenCLI or rdt-cli configured, the channel depends on a personal session and is inherently fragile, which is why the docs treat Reddit as best-effort rather than a reliable channel .