CLI tool
Panniantong/Agent-Reach avatar
Panniantong/Agent-Reach

Agent Reach gives CLI agents a read-only path into Bilibili, Xiaohongshu, Reddit and other walled platforms

Agent Reach lets an AI agent search and read public content from services such as GitHub, Reddit, YouTube, Bilibili, and Xiaohongshu through one CLI.

111,565 stars9,999 forksPythonMIT

At a glance

What is it?
Agent Reach is an MIT-licensed Python CLI that wraps upstream tools for 14 channels behind one agent-reach command, borrows your Chrome logins for sites that need them, and refuses to post anything. This piece looks at how its fallback routing, login copying and install flow work, and where each one stops.
Who is it for?
Agent Reach suits people running Claude Code, Codex, Hermes Agent or OpenClaw who need their agent to read Chinese platforms, video subtitles or login-gated pages without writing scrapers. It does not suit anyone who needs posting or messaging, or who cannot tolerate an experimental channel such as Twitter or Instagram breaking without notice.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • Panniantong/Agent-Reach111,565 ★ · +50,081
Star history
Repository2026-07-282026-11-13
Panniantong/Agent-Reach61.5k111.6k

50,081 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

One verb grammar: agent-reach, then a channel, then an action

Every capability is exposed through the same shape, agent-reach <channel> <action> [args], so an agent only has to learn one pattern. The project ships these three examples:

bash
agent-reach channels                          # 有哪些渠道、每个渠道能做什么
agent-reach bilibili search "大模型"           # agent-reach <渠道> <动作> [参数]
agent-reach read https://www.v2ex.com/t/123   # 按链接自动选渠道

The first lists every channel and what it can do. The second runs a search inside one channel. The third takes a bare URL and picks the channel from the link. The pyproject description promises JSON output, which is what lets an agent parse results instead of scraping terminal text. The package registers a single entry point, agent_reach.cli:main, and requires Python 3.10 or newer.

Each action is an ordered list of upstream tools, not a scraper of its own

Agent Reach does not reimplement platform access. For each action on each channel it keeps an ordered list of upstream tools and tries them in turn. Reading a Bilibili video goes to bili-cli first and falls back to Bilibili's public API if that fails. Reading a web page goes to Jina Reader first, then Exa. YouTube work rides on yt-dlp, which pyproject pins to exactly version 2026.8.19.

The benefit is that when a platform changes and one tool dies, the maintainer edits the list and the agent's commands stay the same. The cost is that Agent Reach is only as good as the tools in that list. If every entry for an action breaks at once, there is nothing underneath to catch it, and you wait for an upstream fix or a new release. The v1.5.0 release in June 2026 introduced this multi-backend routing together with real health checks and OpenCLI support.

Experimental channels can stop working at any time

Channels come in three tiers. Default channels work right after install: bilibili, v2ex, github, youtube and web. Optional channels are switched on by asking the agent to add them, which installs whatever software they need: xiaohongshu, xueqiu, boss, xiaoyuzhou, linkedin and reddit. Experimental channels are twitter, facebook and instagram, and the project states plainly that they work but face stricter anti-scraping and may fail at any moment.

For a reader this means a pipeline built on tweet search or Instagram profiles has no stability promise behind it. Several capabilities also carry conditions: Bilibili subtitles need a QR-code login, Xueqiu hot posts and hot stocks need a login while quotes do not, and LinkedIn site search needs a login while public job listings do not. A default channel you remove stays removed; later updates will not add it back.

Logins are cloned from your Chrome profile into a separate browser

For sites that need an account, Agent Reach runs its own dedicated browser in the background without popping up windows. The first time you use a site, it copies that one site's login from your Chrome into the dedicated browser. Your original browser is left unchanged and the password store is not read. The dedicated browser only accepts connections from your own machine.

The catch is whose account gets copied. It is whatever you are logged in as in Chrome, which for most people is their main account, and platforms may restrict accounts that show automated access. The project recommends switching to a secondary account, which you do by telling the agent to change accounts; a login window opens and you sign in yourself. Agent Reach never logs in on your behalf and never asks for your password, so an expired session needs you at the keyboard.

Installing means handing your agent a URL, and the PyPI package is someone else's

There is no pip command in the quick start. You paste this sentence into your agent, and the same line handles both installs and upgrades:

code
帮我安装 Agent Reach:https://raw.githubusercontent.com/Panniantong/Agent-Reach/main/docs/install.md

The agent then does the work. It may need permission to run shell commands, which some agents keep off until you enable it in settings. If uv is missing, the agent installs it first; uv does not need an administrator password. At the end it reports which default channels are ready and which optional ones you can add.

The important warning: a package named agent-reach exists on PyPI and it is not this project. Even though pyproject.toml uses the same name, the maintainer says to install only from the GitHub address in install.md. An agent that reaches for pip install on its own would pull the wrong code.

Read-only by design, so it cannot post, reply or message

Agent Reach only searches and reads. It does not post, comment, like or send direct messages on any platform. If your goal is an agent that replies to Reddit threads, publishes to Xiaohongshu or sends LinkedIn messages, this tool will not do it and has no switch to enable it.

Transcription has its own limits. YouTube speech-to-text needs a Groq or OpenAI key, and Xiaoyuzhou podcast transcription needs a Groq key specifically. Without a key, YouTube still gives you video info, search and subtitles, but not transcripts of videos that lack them. Keys should not be pasted into the agent chat. Run this in your own terminal instead:

bash
agent-reach configure groq-key

That keeps the key out of conversation logs the agent provider may store.

Everything sits in ~/.agent-reach/, managed by plain-language requests

Channel tools, logins and settings all live in one folder, ~/.agent-reach/, rather than spreading across the system. Management happens by talking to the agent. Asking for status reports which channels work now and which worked last time but are broken. Removing a channel clears its login and its dedicated tools. Asking to upgrade updates the program and every channel's tools in one pass. Asking another AI to use it drops a copy of the usage instructions for that agent.

Uninstall lists what will be deleted and waits for your confirmation, touches only what Agent Reach installed, and leaves your browser alone. It does not remove the program itself automatically; the agent tells you how to do that last step. Release cadence is recent: v1.6.0 shipped on 2026-10-23 and v1.6.1 on 2026-11-01, the same day as the last push to main.

Editorial conclusion

Agent Reach suits people running Claude Code, Codex, Hermes Agent or OpenClaw who need their agent to read Chinese platforms, video subtitles or login-gated pages without writing scrapers. It does not suit anyone who needs posting or messaging, or who cannot tolerate an experimental channel such as Twitter or Instagram breaking without notice. Before relying on it, decide which browser account it will copy, switch that site to a secondary account, and install only from the GitHub install.md URL, never from the agent-reach package on PyPI.

Frequently asked questions

What is Agent Reach?

Agent Reach is an MIT-licensed Python CLI that lets AI agents search and read content from Bilibili, V2EX, GitHub, YouTube, Xiaohongshu, Reddit and other platforms through one agent-reach command. It wraps upstream tools for each channel and tries them in order.

How do I install Agent Reach?

Send your agent the sentence pointing to https://raw.githubusercontent.com/Panniantong/Agent-Reach/main/docs/install.md and it performs the install, including uv if missing. Do not install the agent-reach package from PyPI, which is not this project.

How do I add Agent Reach to Claude Code?

Give Claude Code the install.md sentence and allow it to run shell commands. Agent Reach names Claude Code alongside Codex, Hermes Agent and OpenClaw as agents it is built for.

Is Agent Reach safe to use?

Agent Reach is read-only, never asks for passwords, and copies one site's login from Chrome into a dedicated browser that only your machine can reach. The copied session is often your main account, so the maintainer recommends switching to a secondary account.

What channels are available in Agent Reach?

Default channels are bilibili, v2ex, github, youtube and web. Optional channels are xiaohongshu, xueqiu, boss, xiaoyuzhou, linkedin and reddit, and twitter, facebook and instagram are experimental.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/panniantong-agent-reach.svg)](https://hysenlabs.com/projects/panniantong-agent-reach)

Weekly Top 10 badge

markdown
[![Hysen Labs](https://hysenlabs.com/badge/panniantong-agent-reach.svg?metric=rank)](https://hysenlabs.com/projects/panniantong-agent-reach)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/panniantong-agent-reach.svg)](https://hysenlabs.com/projects/panniantong-agent-reach)

Was this useful?