agent-reach by panniantong/agent-reach
npx skills add https://github.com/panniantong/agent-reach --skill agent-reach覆盖 13+ 平台的工具链。直接调用它们。
运行 agent-reach doctor 检查哪些渠道可用。
切勿在 agent 工作区创建文件。 使用 /tmp/ 存放临时输出,使用 ~/.agent-reach/ 存放持久化数据。
curl -s "https://r.jina.ai/URL"
mcporter call 'exa.web_search_exa(query: "query", numResults: 5)'
mcporter call 'exa.get_code_context_exa(query: "code question", tokensNum: 3000)'
bird search "query" -n 10 # 搜索
bird read URL_OR_ID # 读取推文(支持 /status/ 和 /article/ 链接)
bird user-tweets @username -n 20 # 用户时间线
bird thread URL_OR_ID # 完整对话链
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
yt-dlp --dump-json "URL" # 视频元数据
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --skip-download -o "/tmp/%(id)s" "URL"
# 下载字幕,然后读取 .vtt 文件
yt-dlp --dump-json "ytsearch5:query" # 搜索
yt-dlp --dump-json "https://www.bilibili.com/video/BVxxx"
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --convert-subs vtt --skip-download -o "/tmp/%(id)s" "URL"
服务器 IP 可能遇到 412 错误。使用
--cookies-from-browser chrome或配置代理。
curl -s "https://www.reddit.com/r/SUBREDDIT/hot.json?limit=10" -H "User-Agent: agent-reach/1.0"
curl -s "https://www.reddit.com/search.json?q=QUERY&limit=10" -H "User-Agent: agent-reach/1.0"
服务器 IP 可能遇到 403 错误。请改用 Exa 搜索,或配置代理。
gh search repos "query" --sort stars --limit 10
gh repo view owner/repo
gh search code "query" --language python
gh issue list -R owner/repo --state open
gh issue view 123 -R owner/repo
mcporter call 'xiaohongshu.search_feeds(keyword: "query")'
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy")'
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy", load_all_comments: true)'
mcporter call 'xiaohongshu.publish_content(title: "标题", content: "正文", images: ["/path/img.jpg"], tags: ["tag"])'
需要登录。使用 Cookie-Editor 导入 cookies。
提示:清理冗余输出。 XHS API 返回的 JSON 数据庞大,包含许多未使用的字段。通过格式化器管道传输以节省上下文:
mcporter call 'xiaohongshu.search_feeds(keyword: "query")' | agent-reach format xhs此操作仅保留:标题、内容、作者、互动数据、图片 URL 和标签。
mcporter call 'douyin.parse_douyin_video_info(share_link: "https://v.douyin.com/xxx/")'
mcporter call 'douyin.get_douyin_download_link(share_link: "https://v.douyin.com/xxx/")'
无需登录。
搜索 (miku_ai):
# miku_ai 安装在 agent-reach Python 环境内部。
# 使用运行 agent-reach 的相同解释器(处理 pipx / venv 安装):
AGENT_REACH_PYTHON=$(python3 -c "import agent_reach, sys; print(sys.executable)" 2>/dev/null || echo python3)
$AGENT_REACH_PYTHON -c "
import asyncio
from miku_ai import get_wexin_article
async def s():
for a in await get_wexin_article(\'query\', 5):
print(f\'{a[\"title\"]} | {a[\"url\"]}\')
asyncio.run(s())
"
阅读 (Camoufox — 绕过微信反爬虫):
cd ~/.agent-reach/tools/wechat-article-for-ai && python3 main.py "https://mp.weixin.qq.com/s/ARTICLE_ID"
微信公众号文章无法使用 Jina Reader 或 curl 读取。必须使用 Camoufox。
# 热搜榜
mcporter call 'weibo.get_trendings(limit: 20)'
# 搜索用户
mcporter call 'weibo.search_users(keyword: "雷军", limit: 10)'
# 获取用户资料
mcporter call 'weibo.get_profile(uid: "1195230310")'
# 获取用户微博动态
mcporter call 'weibo.get_feeds(uid: "1195230310", limit: 20)'
# 获取用户热门微博
mcporter call 'weibo.get_hot_feeds(uid: "1195230310", limit: 10)'
# 搜索微博内容
mcporter call 'weibo.search_content(keyword: "人工智能", limit: 20)'
# 搜索话题
mcporter call 'weibo.search_topics(keyword: "AI", limit: 10)'
# 获取微博评论
mcporter call 'weibo.get_comments(mid: "5099916367123456", limit: 50)'
# 获取粉丝列表
mcporter call 'weibo.get_fans(uid: "1195230310", limit: 20)'
# 获取关注列表
mcporter call 'weibo.get_followers(uid: "1195230310", limit: 20)'
零配置。无需登录。使用移动端 API 并自动获取访客 cookies。
# 转录单集播客(输出文本到 /tmp/)
~/.agent-reach/tools/xiaoyuzhou/transcribe.sh "https://www.xiaoyuzhoufm.com/episode/EPISODE_ID"
需要 ffmpeg + Groq API Key(免费)。
配置 Key:agent-reach configure groq-key YOUR_KEY
首次运行需安装工具:agent-reach install --env=auto
运行agent-reach doctor检查状态。
输出 Markdown 文件默认保存到/tmp/。
mcporter call 'linkedin.get_person_profile(linkedin_url: "https://linkedin.com/in/username")'
mcporter call 'linkedin.search_people(keyword: "AI engineer", limit: 10)'
备用方案:curl -s "https://r.jina.ai/https://linkedin.com/in/username"
# 热门主题
curl -s "https://www.v2ex.com/api/topics/hot.json" -H "User-Agent: agent-reach/1.0"
# 节点主题(node_name 如 python、tech、jobs、qna)
curl -s "https://www.v2ex.com/api/topics/show.json?node_name=python&page=1" -H "User-Agent: agent-reach/1.0"
# 主题详情(topic_id 从 URL 获取,如 https://www.v2ex.com/t/1234567)
curl -s "https://www.v2ex.com/api/topics/show.json?id=TOPIC_ID" -H "User-Agent: agent-reach/1.0"
# 主题回复
curl -s "https://www.v2ex.com/api/replies/show.json?topic_id=TOPIC_ID&page=1" -H "User-Agent: agent-reach/1.0"
# 用户信息
curl -s "https://www.v2ex.com/api/members/show.json?username=USERNAME" -H "User-Agent: agent-reach/1.0"
Python 调用示例(V2EXChannel):
from agent_reach.channels.v2ex import V2EXChannel
ch = V2EXChannel()
# 获取热门帖子(默认 20 条)
# 返回字段:id, title, url, replies, node_name, node_title, content(前200字), created
topics = ch.get_hot_topics(limit=10)
for t in topics:
print(f"[{t['node_title']}] {t['title']} ({t['replies']} 回复) {t['url']}")
print(f" id={t['id']} created={t['created']}")
# 获取指定节点的最新帖子
# 返回字段:id, title, url, replies, node_name, node_title, content(前200字), created
node_topics = ch.get_node_topics("python", limit=5)
for t in node_topics:
print(t["id"], t["title"], t["url"])
# 获取单个帖子详情 + 回复列表
# 返回字段:id, title, url, content, replies_count, node_name, node_title,
# author, created, replies (list of {author, content, created})
topic = ch.get_topic(1234567)
print(topic["title"], "—", topic["author"])
for r in topic["replies"]:
print(f" {r['author']}: {r['content'][:80]}")
# 获取用户信息
# 返回字段:id, username, url, website, twitter, psn, github, btc, location, bio, avatar, created
user = ch.get_user("Livid")
print(user["username"], user["bio"], user["github"])
# 搜索(V2EX 公开 API 不支持,会返回说明信息)
result = ch.search("asyncio")
print(result[0]["error"]) # 提示使用站内搜索或 Exa channel
无需认证。结果为公开 JSON。V2EX 节点名见 https://www.v2ex.com/planes
from agent_reach.channels.xueqiu import XueqiuChannel
ch = XueqiuChannel()
# 获取股票行情(符号格式:SH600519 沪市、SZ000858 深市、AAPL 美股、00700 港股)
# 返回字段:symbol, name, current, percent, chg, high, low, open, last_close,
# volume, amount, market_capital, turnover_rate, pe_ttm, timestamp
quote = ch.get_stock_quote("SH600519")
print(f"{quote['name']} ({quote['symbol']}): {quote['current']} ({quote['percent']}%)")
# 搜索股票
# 返回字段:symbol, name, exchange
stocks = ch.search_stock("茅台", limit=5)
for s in stocks:
print(f"{s['name']} ({s['symbol']}) - {s['exchange']}")
# 热门帖子
# 返回字段:id, title, text(前200字), author, likes, url
posts = ch.get_hot_posts(limit=10)
for p in posts:
print(f"{p['author']}: {p['text'][:50]}... ({p['likes']} 赞)")
# 热门股票(stock_type=10 人气榜,stock_type=12 关注榜)
# 返回字段:symbol, name, current, percent, rank
hot = ch.get_hot_stocks(limit=10, stock_type=10)
for s in hot:
print(f"#{s['rank']} {s['name']} ({s['symbol']}): {s['current']} ({s['percent']}%)")
无需登录。自动获取会话 Cookie,所有公开 API 均可直接使用。
python3 -c "
import feedparser
for e in feedparser.parse('FEED_URL').entries[:5]:
print(f'{e.title} — {e.link}')
"
agent-reach doctor — 显示状态和修复说明。undici 已安装:npm install -g undici。配置代理:agent-reach configure proxy URL。如果某个渠道需要设置(cookies、Docker 等),请获取安装指南:https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
用户只需提供 cookies。其他所有事情都由你负责。
每周安装量
2.7K
代码仓库
GitHub Stars
10.7K
首次出现
Feb 25, 2026
安全审计
安装于
opencode2.6K
codex2.6K
gemini-cli2.6K
github-copilot2.6K
cursor2.6K
kimi-cli2.6K
Upstream tools for 13+ platforms. Call them directly.
Run agent-reach doctor to check which channels are available.
Never create files in the agent workspace. Use /tmp/ for temporary output and ~/.agent-reach/ for persistent data.
curl -s "https://r.jina.ai/URL"
mcporter call 'exa.web_search_exa(query: "query", numResults: 5)'
mcporter call 'exa.get_code_context_exa(query: "code question", tokensNum: 3000)'
bird search "query" -n 10 # search
bird read URL_OR_ID # read tweet (supports /status/ and /article/ URLs)
bird user-tweets @username -n 20 # user timeline
bird thread URL_OR_ID # full thread
yt-dlp --dump-json "URL" # video metadata
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --skip-download -o "/tmp/%(id)s" "URL"
# download subtitles, then read the .vtt file
yt-dlp --dump-json "ytsearch5:query" # search
yt-dlp --dump-json "https://www.bilibili.com/video/BVxxx"
yt-dlp --write-sub --write-auto-sub --sub-lang "zh-Hans,zh,en" --convert-subs vtt --skip-download -o "/tmp/%(id)s" "URL"
Server IPs may get 412. Use
--cookies-from-browser chromeor configure proxy.
curl -s "https://www.reddit.com/r/SUBREDDIT/hot.json?limit=10" -H "User-Agent: agent-reach/1.0"
curl -s "https://www.reddit.com/search.json?q=QUERY&limit=10" -H "User-Agent: agent-reach/1.0"
Server IPs may get 403. Search via Exa instead, or configure proxy.
gh search repos "query" --sort stars --limit 10
gh repo view owner/repo
gh search code "query" --language python
gh issue list -R owner/repo --state open
gh issue view 123 -R owner/repo
mcporter call 'xiaohongshu.search_feeds(keyword: "query")'
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy")'
mcporter call 'xiaohongshu.get_feed_detail(feed_id: "xxx", xsec_token: "yyy", load_all_comments: true)'
mcporter call 'xiaohongshu.publish_content(title: "标题", content: "正文", images: ["/path/img.jpg"], tags: ["tag"])'
Requires login. Use Cookie-Editor to import cookies.
Tip: Clean bloated output. XHS API returns large JSON with many unused fields. Pipe through the formatter to save context:
mcporter call 'xiaohongshu.search_feeds(keyword: "query")' | agent-reach format xhsThis keeps only: title, content, author, engagement counts, image URLs, and tags.
mcporter call 'douyin.parse_douyin_video_info(share_link: "https://v.douyin.com/xxx/")'
mcporter call 'douyin.get_douyin_download_link(share_link: "https://v.douyin.com/xxx/")'
No login needed.
Search (miku_ai):
# miku_ai is installed inside the agent-reach Python environment.
# Use the same interpreter that runs agent-reach (handles pipx / venv installs):
AGENT_REACH_PYTHON=$(python3 -c "import agent_reach, sys; print(sys.executable)" 2>/dev/null || echo python3)
$AGENT_REACH_PYTHON -c "
import asyncio
from miku_ai import get_wexin_article
async def s():
for a in await get_wexin_article(\'query\', 5):
print(f\'{a[\"title\"]} | {a[\"url\"]}\')
asyncio.run(s())
"
Read (Camoufox — bypasses WeChat anti-bot):
cd ~/.agent-reach/tools/wechat-article-for-ai && python3 main.py "https://mp.weixin.qq.com/s/ARTICLE_ID"
WeChat articles cannot be read with Jina Reader or curl. Must use Camoufox.
# 热搜榜
mcporter call 'weibo.get_trendings(limit: 20)'
# 搜索用户
mcporter call 'weibo.search_users(keyword: "雷军", limit: 10)'
# 获取用户资料
mcporter call 'weibo.get_profile(uid: "1195230310")'
# 获取用户微博动态
mcporter call 'weibo.get_feeds(uid: "1195230310", limit: 20)'
# 获取用户热门微博
mcporter call 'weibo.get_hot_feeds(uid: "1195230310", limit: 10)'
# 搜索微博内容
mcporter call 'weibo.search_content(keyword: "人工智能", limit: 20)'
# 搜索话题
mcporter call 'weibo.search_topics(keyword: "AI", limit: 10)'
# 获取微博评论
mcporter call 'weibo.get_comments(mid: "5099916367123456", limit: 50)'
# 获取粉丝列表
mcporter call 'weibo.get_fans(uid: "1195230310", limit: 20)'
# 获取关注列表
mcporter call 'weibo.get_followers(uid: "1195230310", limit: 20)'
Zero config. No login needed. Uses mobile API with auto visitor cookies.
# 转录单集播客(输出文本到 /tmp/)
~/.agent-reach/tools/xiaoyuzhou/transcribe.sh "https://www.xiaoyuzhoufm.com/episode/EPISODE_ID"
需要 ffmpeg + Groq API Key(免费)。
配置 Key:agent-reach configure groq-key YOUR_KEY
首次运行需安装工具:agent-reach install --env=auto
运行agent-reach doctor检查状态。
输出 Markdown 文件默认保存到/tmp/。
mcporter call 'linkedin.get_person_profile(linkedin_url: "https://linkedin.com/in/username")'
mcporter call 'linkedin.search_people(keyword: "AI engineer", limit: 10)'
Fallback: curl -s "https://r.jina.ai/https://linkedin.com/in/username"
# 热门主题
curl -s "https://www.v2ex.com/api/topics/hot.json" -H "User-Agent: agent-reach/1.0"
# 节点主题(node_name 如 python、tech、jobs、qna)
curl -s "https://www.v2ex.com/api/topics/show.json?node_name=python&page=1" -H "User-Agent: agent-reach/1.0"
# 主题详情(topic_id 从 URL 获取,如 https://www.v2ex.com/t/1234567)
curl -s "https://www.v2ex.com/api/topics/show.json?id=TOPIC_ID" -H "User-Agent: agent-reach/1.0"
# 主题回复
curl -s "https://www.v2ex.com/api/replies/show.json?topic_id=TOPIC_ID&page=1" -H "User-Agent: agent-reach/1.0"
# 用户信息
curl -s "https://www.v2ex.com/api/members/show.json?username=USERNAME" -H "User-Agent: agent-reach/1.0"
Python 调用示例(V2EXChannel):
from agent_reach.channels.v2ex import V2EXChannel
ch = V2EXChannel()
# 获取热门帖子(默认 20 条)
# 返回字段:id, title, url, replies, node_name, node_title, content(前200字), created
topics = ch.get_hot_topics(limit=10)
for t in topics:
print(f"[{t['node_title']}] {t['title']} ({t['replies']} 回复) {t['url']}")
print(f" id={t['id']} created={t['created']}")
# 获取指定节点的最新帖子
# 返回字段:id, title, url, replies, node_name, node_title, content(前200字), created
node_topics = ch.get_node_topics("python", limit=5)
for t in node_topics:
print(t["id"], t["title"], t["url"])
# 获取单个帖子详情 + 回复列表
# 返回字段:id, title, url, content, replies_count, node_name, node_title,
# author, created, replies (list of {author, content, created})
topic = ch.get_topic(1234567)
print(topic["title"], "—", topic["author"])
for r in topic["replies"]:
print(f" {r['author']}: {r['content'][:80]}")
# 获取用户信息
# 返回字段:id, username, url, website, twitter, psn, github, btc, location, bio, avatar, created
user = ch.get_user("Livid")
print(user["username"], user["bio"], user["github"])
# 搜索(V2EX 公开 API 不支持,会返回说明信息)
result = ch.search("asyncio")
print(result[0]["error"]) # 提示使用站内搜索或 Exa channel
No auth required. Results are public JSON. V2EX 节点名见 https://www.v2ex.com/planes
from agent_reach.channels.xueqiu import XueqiuChannel
ch = XueqiuChannel()
# 获取股票行情(符号格式:SH600519 沪市、SZ000858 深市、AAPL 美股、00700 港股)
# 返回字段:symbol, name, current, percent, chg, high, low, open, last_close,
# volume, amount, market_capital, turnover_rate, pe_ttm, timestamp
quote = ch.get_stock_quote("SH600519")
print(f"{quote['name']} ({quote['symbol']}): {quote['current']} ({quote['percent']}%)")
# 搜索股票
# 返回字段:symbol, name, exchange
stocks = ch.search_stock("茅台", limit=5)
for s in stocks:
print(f"{s['name']} ({s['symbol']}) - {s['exchange']}")
# 热门帖子
# 返回字段:id, title, text(前200字), author, likes, url
posts = ch.get_hot_posts(limit=10)
for p in posts:
print(f"{p['author']}: {p['text'][:50]}... ({p['likes']} 赞)")
# 热门股票(stock_type=10 人气榜,stock_type=12 关注榜)
# 返回字段:symbol, name, current, percent, rank
hot = ch.get_hot_stocks(limit=10, stock_type=10)
for s in hot:
print(f"#{s['rank']} {s['name']} ({s['symbol']}): {s['current']} ({s['percent']}%)")
无需登录。自动获取会话 Cookie,所有公开 API 均可直接使用。
python3 -c "
import feedparser
for e in feedparser.parse('FEED_URL').entries[:5]:
print(f'{e.title} — {e.link}')
"
agent-reach doctor — shows status and fix instructions.undici is installed: npm install -g undici. Configure proxy: agent-reach configure proxy URL.If a channel needs setup (cookies, Docker, etc.), fetch the install guide: https://raw.githubusercontent.com/Panniantong/agent-reach/main/docs/install.md
User only provides cookies. Everything else is your job.
Weekly Installs
2.7K
Repository
GitHub Stars
10.7K
First Seen
Feb 25, 2026
Security Audits
Gen Agent Trust HubPassSocketWarnSnykFail
Installed on
opencode2.6K
codex2.6K
gemini-cli2.6K
github-copilot2.6K
cursor2.6K
kimi-cli2.6K
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
102,200 周安装