-**Give your AI Agent eyes to see the entire internet.**
+
+ Give your AI Agent one-click access to the entire internet
+
-Your AI Agent is smart but blind. It can't browse Reddit, search Twitter, or read Bilibili videos. Agent Reach fixes this โ once installed, your Agent can search and read content across 10+ platforms.
+
+
+
+
+
-> Install once. Superpowers unlocked. Most features work with zero config, zero cost.
+
-[ไธญๆๆๆกฃ](../README.md)
+---
+
+## Why Agent Reach?
+
+AI Agents can already access the internet โ but "can go online" is barely the start.
+
+The most valuable information lives across social and niche platforms: Twitter discussions, Reddit feedback, XiaoHongShu reviews, Bilibili videos, GitHub activityโฆ **These are where information density is highest**, but each platform has its own barriers:
+
+| Pain Point | Reality |
+|------------|---------|
+| Twitter API | Starts at $100/month |
+| Reddit | Server IPs get 403'd |
+| XiaoHongShu | Login required to browse |
+| Bilibili | Blocks overseas/server IPs |
+
+To connect your Agent to these platforms, you'd have to find tools, install dependencies, and debug configs โ one by one.
+
+**Agent Reach turns this into one command:**
+
+```
+Install Agent Reach: https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
+```
+
+Copy that to your Agent. 30 seconds later, it can read tweets, search Reddit, and watch Bilibili.
+
+### โ Before you start, you might want to know
+
+| | |
+|---|---|
+| ๐ฐ **Completely free** | All tools are open source, all APIs are free. The only possible cost is a server proxy ($1/month) โ local computers don't need one |
+| ๐ **Privacy safe** | Cookies stay local. Never uploaded. Fully open source โ audit anytime |
+| ๐ **Kept up to date** | Upstream tools (yt-dlp, birdx, Jina Reader, etc.) are tracked and updated regularly |
+| ๐ค **Works with any Agent** | Claude Code, OpenClaw, Cursor, Windsurfโฆ any Agent that can run commands |
+| ๐ฉบ **Built-in diagnostics** | `agent-reach doctor` โ one command shows what works, what doesn't, and how to fix it |
+
+---
+
+## Supported Platforms
+
+| Platform | Capabilities | Setup | Notes |
+|----------|-------------|:-----:|-------|
+| ๐ **Web** | Read | Zero config | Any URL โ clean Markdown ([Jina Reader](https://github.com/jina-ai/reader) โญ9.8K) |
+| ๐ฆ **Twitter/X** | Read ยท Search | Zero config / Cookie | Single tweets readable out of the box. Cookie unlocks search, timeline, posting ([birdx](https://github.com/runesleo/birdx)) |
+| ๐ **XiaoHongShu** | Read ยท Search ยท **Post ยท Comment ยท Like** | Cookie | Full functionality with browser cookie |
+| ๐ **Web Search** | Search | Free key | One key unlocks web + Reddit + Twitter search ([Exa](https://exa.ai), free 1000/month) |
+| ๐ฆ **GitHub** | Read ยท Search | Zero config | Public repos work immediately. `gh` CLI or token unlocks Fork, Issue, PR |
+| ๐บ **YouTube** | Read | Zero config | Subtitles from 1800+ video sites ([yt-dlp](https://github.com/yt-dlp/yt-dlp) โญ148K) |
+| ๐บ **Bilibili** | Read | Zero config / Proxy | Video info + subtitles. Local works directly, servers need a proxy |
+| ๐ก **RSS** | Read | Zero config | Any RSS/Atom feed ([feedparser](https://github.com/kurtmckee/feedparser) โญ2.3K) |
+| ๐ **Reddit** | Search ยท Read | Free / Proxy | Search via Exa (free). Reading posts needs a proxy on servers. OAuth bot unlocks posting |
+
+> **Setup levels:** Zero config = install and go ยท Free key = 30-second signup ยท Cookie = export from browser ยท Proxy = $1/month
---
@@ -18,7 +77,7 @@ Copy this to your AI Agent (Claude Code, OpenClaw, Cursor, etc.):
Install Agent Reach: https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
```
-Your Agent handles everything. You answer 1-2 questions at most.
+The Agent auto-installs, detects your environment, and tells you what's ready.
Manual install
@@ -26,7 +85,6 @@ Your Agent handles everything. You answer 1-2 questions at most.
```bash
pip install https://github.com/Panniantong/agent-reach/archive/main.zip
agent-reach install --env=auto
-agent-reach doctor
```
@@ -34,97 +92,114 @@ agent-reach doctor
## Works Out of the Box
-No configuration needed:
+No configuration needed โ just tell your Agent:
-- ๐ **Web pages** โ read any URL
-- ๐ฆ **GitHub** โ repos, issues, PRs, code search
-- ๐บ **YouTube** โ video transcripts
-- ๐บ **Bilibili** โ video info + subtitles
-- ๐ก **RSS** โ any feed
-- ๐ฆ **Twitter** โ read individual tweets
+- "Read this link" โ any web page
+- "What's this GitHub repo about?" โ repos, issues, code
+- "What does this video cover?" โ YouTube / Bilibili subtitles
+- "Read this tweet" โ Twitter posts
+- "Subscribe to this RSS" โ RSS / Atom feeds
+- "Search GitHub for LLM frameworks" โ GitHub search
-```bash
-agent-reach read "https://github.com/openai/gpt-4"
-agent-reach search-github "LLM framework"
+**No commands to remember.** The Agent knows what to call.
+
+---
+
+## Unlock on Demand
+
+Don't use it? Don't configure it. Every step is optional.
+
+### ๐ Search โ Free, 30 seconds
+
+Go to [exa.ai](https://exa.ai), sign up for a free key (1000 searches/month), and send it to your Agent. One key unlocks web search + Reddit search + Twitter search.
+
+### ๐ช Cookies โ Free, 2 minutes
+
+Tell your Agent "help me configure Twitter cookies" or "set up XiaoHongShu" โ it'll guide you through exporting from your browser. Local computers can auto-import.
+
+### ๐ Proxy โ $1/month, servers only
+
+Reddit and Bilibili block server IPs. Get a proxy ([Webshare](https://webshare.io) recommended, $1/month) and send the address to your Agent.
+
+> Local computers don't need a proxy. Reddit search works free via Exa even without one.
+
+---
+
+## Status at a Glance
+
+```
+$ agent-reach doctor
+
+๐๏ธ Agent Reach Status
+========================================
+
+โ Ready to use:
+ โ GitHub repos and code โ public repos readable and searchable
+ โ Twitter/X tweets โ readable. Cookie unlocks search and posting
+ โ YouTube video subtitles โ yt-dlp
+ โ ๏ธ Bilibili video info โ server IPs may be blocked, configure proxy
+ โ RSS/Atom feeds โ feedparser
+ โ Web pages (any URL) โ Jina Reader API
+
+๐ Search (free Exa key to unlock):
+ โฌ Web semantic search โ sign up at exa.ai for free key
+
+๐ง Configurable:
+ โฌ Reddit posts and comments โ search via Exa (free). Reading needs proxy
+ โฌ XiaoHongShu notes โ needs cookie. Export from browser
+
+Status: 6/9 channels available
```
---
-## One Key Unlocks Search
+## Design Philosophy
-Sign up at [Exa](https://exa.ai) (free, 1000 searches/month). One key unlocks **web + Reddit + Twitter search**:
+**Agent Reach is a setup scaffold, not a framework.**
+
+Every time you spin up a new Agent, you spend time finding tools, installing deps, and debugging configs โ what reads Twitter? How do you bypass Reddit blocks? How do you extract YouTube subtitles? Every time, you re-do the same work.
+
+Agent Reach does one simple thing: **it makes those tool selection and configuration decisions for you.**
+
+| Scenario | Tool | Why |
+|----------|------|-----|
+| Read web pages | [Jina Reader](https://github.com/jina-ai/reader) | 9.8K stars, free, no API key needed |
+| Read tweets | [birdx](https://github.com/runesleo/birdx) | Cookie auth, no $100/month official API |
+| Extract subtitles | [yt-dlp](https://github.com/yt-dlp/yt-dlp) | 148K stars, 1800+ video sites |
+| Search the web | [Exa](https://exa.ai) | AI semantic search, 1000 free/month |
+| Read RSS | [feedparser](https://github.com/kurtmckee/feedparser) | Python ecosystem standard, 2.3K stars |
+
+One file per platform, ~50 lines each. Swap any backend by editing one file โ everything else stays untouched.
+
+
+Project structure
-```bash
-agent-reach configure exa-key YOUR_KEY
-agent-reach search "best open source LLM 2025"
-agent-reach search-reddit "self-hosted LLM" --sub LocalLLaMA
-agent-reach search-twitter "AI agent"
```
+agent_reach/channels/
+โโโ web.py โ Jina Reader
+โโโ twitter.py โ birdx
+โโโ youtube.py โ yt-dlp
+โโโ github.py โ GitHub API
+โโโ bilibili.py โ Bilibili API
+โโโ reddit.py โ Reddit JSON API
+โโโ xiaohongshu.py โ XHS Web API
+โโโ rss.py โ feedparser
+โโโ exa_search.py โ Exa Search API
+```
+
---
-## Unlock More
+## Contributing
-### ๐ช Cookie-based (free, 2 minutes)
+[Issues](https://github.com/Panniantong/agent-reach/issues) and [PRs](https://github.com/Panniantong/agent-reach/pulls) welcome.
-```bash
-# Local: auto-import all cookies
-agent-reach configure --from-browser chrome
-
-# Server: use Cookie-Editor extension, export Header String
-agent-reach configure twitter-cookies "cookie_string"
-agent-reach configure xhs-cookie "cookie_string"
-```
-
-Unlocks: Twitter deep search, XiaoHongShu notes
-
-### ๐ Proxy ($1/month, servers only)
-
-Reddit and Bilibili block server IPs. Local computers are fine.
-
-```bash
-agent-reach configure proxy http://user:pass@ip:port
-```
-
-Recommend [Webshare](https://webshare.io). One proxy covers both Reddit and Bilibili.
-
----
-
-## Three Ways to Use
-
-**CLI** ยท **Python API** ยท **MCP Server**
-
-```bash
-agent-reach read "URL"
-agent-reach search "query"
-agent-reach doctor
-```
-
-```python
-from agent_reach import AgentReach
-eyes = AgentReach()
-result = asyncio.run(eyes.read("https://example.com"))
-```
-
-```json
-{"mcpServers": {"agent-reach": {"command": "python", "args": ["-m", "agent_reach.integrations.mcp_server"]}}}
-```
-
----
-
-## Why Agent Reach?
-
-Not a framework. Not an SDK. Just glue โ beautifully simple glue.
-
-- Aggregates the best free tools: Jina Reader, birdx, yt-dlp, Exa, feedparser
-- Each channel is ~50 lines. Swap any backend by editing one file.
-- CLI, MCP Server, Python API
-- 99% free. The remaining 1% costs $1/month.
+Want to add a new platform? Copy any channel file, tweak it โ each one is only ~50 lines.
## Credits
-[Jina Reader](https://r.jina.ai) ยท [birdx](https://github.com/runesleo/birdx) ยท [Exa](https://exa.ai) ยท [yt-dlp](https://github.com/yt-dlp/yt-dlp) ยท [feedparser](https://github.com/kurtmckee/feedparser)
+[Jina Reader](https://github.com/jina-ai/reader) ยท [yt-dlp](https://github.com/yt-dlp/yt-dlp) ยท [birdx](https://github.com/runesleo/birdx) ยท [Exa](https://exa.ai) ยท [feedparser](https://github.com/kurtmckee/feedparser)
## License
-MIT
+[MIT](../LICENSE)
diff --git a/docs/assets/logo-1.png b/docs/assets/logo-1.png
new file mode 100644
index 0000000..1b251c8
Binary files /dev/null and b/docs/assets/logo-1.png differ
diff --git a/docs/assets/logo-1.svg b/docs/assets/logo-1.svg
new file mode 100644
index 0000000..dd4fb11
--- /dev/null
+++ b/docs/assets/logo-1.svg
@@ -0,0 +1,34 @@
+
+
\ No newline at end of file
diff --git a/docs/assets/logo-2.png b/docs/assets/logo-2.png
new file mode 100644
index 0000000..bedeb76
Binary files /dev/null and b/docs/assets/logo-2.png differ
diff --git a/docs/assets/logo-2.svg b/docs/assets/logo-2.svg
new file mode 100644
index 0000000..7fc073f
--- /dev/null
+++ b/docs/assets/logo-2.svg
@@ -0,0 +1,51 @@
+
+
\ No newline at end of file
diff --git a/docs/assets/logo-3.png b/docs/assets/logo-3.png
new file mode 100644
index 0000000..be0694e
Binary files /dev/null and b/docs/assets/logo-3.png differ
diff --git a/docs/assets/logo-3.svg b/docs/assets/logo-3.svg
new file mode 100644
index 0000000..dc6c4b5
--- /dev/null
+++ b/docs/assets/logo-3.svg
@@ -0,0 +1,34 @@
+
+
\ No newline at end of file
diff --git a/scripts/sync-upstream.sh b/scripts/sync-upstream.sh
index 1262e87..b5710f3 100755
--- a/scripts/sync-upstream.sh
+++ b/scripts/sync-upstream.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# sync-upstream.sh โ Sync readers from x-reader upstream
+# sync-upstream.sh โ Sync channel implementations from upstream tools
#
# Usage: ./scripts/sync-upstream.sh
#
@@ -12,9 +12,9 @@ set -e
UPSTREAM_REPO="runesleo/x-reader"
UPSTREAM_BRANCH="main"
UPSTREAM_DIR="x_reader/fetchers"
-LOCAL_DIR="agent_eyes/readers"
+LOCAL_DIR="agent_reach/channels"
-echo "๐๏ธ Agent Eyes โ Upstream Sync"
+echo "๐๏ธ Agent Reach โ Upstream Sync"
echo "Checking for updates from $UPSTREAM_REPO..."
echo ""
@@ -48,9 +48,9 @@ for upstream_file in "$TMPDIR/upstream/$UPSTREAM_DIR"/*.py; do
fi
# Compare (ignoring import path differences)
- if ! diff -q <(sed 's/x_reader\.fetchers/agent_eyes.readers/g' "$upstream_file") "$local_file" > /dev/null 2>&1; then
+ if ! diff -q <(sed 's/x_reader\.fetchers/agent_reach.channels/g' "$upstream_file") "$local_file" > /dev/null 2>&1; then
echo "๐ CHANGED: $filename"
- diff --color -u <(sed 's/x_reader\.fetchers/agent_eyes.readers/g' "$upstream_file") "$local_file" | head -20
+ diff --color -u <(sed 's/x_reader\.fetchers/agent_reach.channels/g' "$upstream_file") "$local_file" | head -20
echo " ..."
echo ""
CHANGES=$((CHANGES + 1))
@@ -58,7 +58,7 @@ for upstream_file in "$TMPDIR/upstream/$UPSTREAM_DIR"/*.py; do
done
if [ $CHANGES -eq 0 ]; then
- echo "โ All readers are up to date with upstream!"
+ echo "โ All channels are up to date with upstream!"
else
echo ""
echo "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"
@@ -66,7 +66,7 @@ else
echo ""
echo "To merge a specific file:"
echo " cp $TMPDIR/upstream/$UPSTREAM_DIR/FILENAME.py $LOCAL_DIR/FILENAME.py"
- echo " sed -i 's/x_reader\\.fetchers/agent_eyes.readers/g' $LOCAL_DIR/FILENAME.py"
+ echo " sed -i 's/x_reader\\.fetchers/agent_reach.channels/g' $LOCAL_DIR/FILENAME.py"
echo ""
echo "Then review changes, run tests, and commit."
fi