Commit Graph

98 Commits

Author SHA1 Message Date
Pnant 7015b08063 refactor: remove Douyin, Weibo and WeChat channels (#347)
All three had rotted past honest usability:
- Douyin's upstream (yzfly/douyin-mcp-server) is archived and required a
  4-step manual local-server setup nobody could complete
- Weibo depended on an unmaintained personal fork (mcp-server-weibo)
- WeChat full-article reading was increasingly blocked by anti-bot
  (#339) while doctor still advertised it as zero-config

Removes the channel files, installers, skill routing/trigger entries,
reference sections and README rows (zh+en). Honest counts: 13 platforms,
6 zero-config. They can return when maintained upstreams exist.

Follows the v1.4.0 precedent of removing Discord/Toutiao (#234).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 15:57:05 +08:00
Andrew Barnes 9045fee67e fix(reddit): install rdt-cli from GitHub source pinned to 0.4.2 (#326)
PyPI still only has rdt-cli 0.4.1 while the doctor hint required >=0.4.2, so the suggested install command always failed. Installs from the upstream GitHub repo pinned to the 0.4.2 commit instead, and syncs all four docs that still taught the PyPI path. Verified locally: clean-venv install from the pinned source yields rdt 0.4.2 and rdt status works. 86 tests pass. Fixes #294.
2026-06-10 14:59:16 +08:00
nyxst4ck bdf692c391 docs(en): document safe mode and OpenClaw exec requirement (#330)
The English README was missing two things present in the Chinese README: the OpenClaw 'exec' permission prerequisite (without it the Agent silently can't run install commands) and the --safe install mode. Both refer to real, supported features (cli.py exposes --safe; install.md documents it). Also align the Chinese README's Python badge alt-text (3.8+ -> 3.10+) with requires-python and the badge image.

Co-authored-by: nyxst4ck <289980115+nyxst4ck@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 14:12:15 +08:00
Pnant 17624268a0 docs: update Reddit auth requirement and fix architecture diagrams across all READMEs
Reddit requires authentication since 2024 (all API requests return 403
without a valid session cookie). Updated all 4 language versions (zh, en,
ja, ko) to reflect this: platform tables, tool choice tables, architecture
diagrams, and FAQ sections.

Also fixed Chinese README architecture diagram: reddit.py backend corrected
from Exa to rdt-cli, wechat.py backend corrected from camoufox+miku to Exa.
Fixed Japanese README reddit.py swap suggestions (removed outdated PRAW/Pushshift).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 17:45:43 +08:00
Hak Lee 575cd3b479 docs: add Korean README translation (docs/README_ko.md) (#251)
docs: add Korean README translation (closes #250)
2026-04-13 17:17:28 +08:00
Pnant def2ce932e docs: update all remaining files for v1.4.0 upstream migrations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:27:32 +08:00
Pnant a1cc229239 docs: update README for v1.4.0 upstream migrations
Update all tool references across both Chinese and English READMEs:
- bird CLI → twitter-cli
- Exa Reddit → rdt-cli
- Docker xiaohongshu-mcp → xhs-cli (pipx)
- miku_ai → Exa (WeChat)
- Add bili-cli to Bilibili
- Update stars counts, install commands, FAQ answers, credits

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:13:38 +08:00
Jerrys d7c8ac81e9 docs: add alternative Douyin/XHS MCP option (social-post-extractor-mcp)
Co-authored-by: JNHFlow21 <JNHFlow21@users.noreply.github.com>
2026-03-31 14:57:32 +08:00
Ikko Eltociear Ashimine 1e0e6d1ae7 docs: add Japanese README (ja)
* docs: add Japanese README

* docs: update README.md
2026-03-31 14:56:50 +08:00
Pnant 5d046ecb61 fix(reddit): switch to Exa-only for search and read, remove proxy dependency
Reddit blocks nearly all non-browser access at IP level (including ISP proxies).
Switch Reddit channel to use Exa exclusively:
- Search: web_search_exa with includeDomains: ["reddit.com"]
- Read: crawling_exa for full post + comments
- check() now verifies Exa availability instead of probing Reddit API
- tier changed from 1 (needs config) to 0 (zero config)
- Removed reddit_proxy from config, CLI, and setup guide
- Updated all docs (README, README_en, install.md, SKILL.md, references)
- Fixed xreach→bird references in references/social.md

Fixes #218, Fixes #222, Fixes #221

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:21:31 +08:00
fernando_jacob d793afaba6 fix(xueqiu): fix 400 errors by using browser cookies and correct headers
The Xueqiu stock API requires a login session token (xq_a_token) that
is generated by Xueqiu's frontend JavaScript and cannot be obtained by
simply visiting the homepage. This caused persistent HTTP 400 (error
code 400016) for all users.

Changes:
- _ensure_cookies(): add three-level priority — config file (saved by
  --from-browser) → live Chrome cookies via browser_cookie3 → homepage
  fallback. The homepage-only approach only ever got acw_tc (anti-DDoS
  token), never xq_a_token.
- _get_json(): switch User-Agent from "agent-reach/1.0" to a real Chrome
  UA, and add Referer: https://xueqiu.com/ to all API requests.
- get_hot_posts(): replace the defunct /statuses/hot/listV3.json endpoint
  (returns empty body) with the v4 public timeline endpoint; correctly
  parse item.data as a JSON string to extract author, text, and likes.
- cookie_extract.py: add Xueqiu to PLATFORM_SPECS and configure_from_browser
  so that `agent-reach configure --from-browser chrome` now also saves
  Xueqiu cookies (only when xq_a_token is present).
- check(): improve error message to direct users to --from-browser instead
  of suggesting a proxy.
- Fix urllib.parse.quote usage (was using urllib.request.quote).
- Update tier and backends description to reflect cookie requirement.
- Add 2 new tests: cookie loading from config, Referer/UA header verification.
- Update docs: README, install guide, troubleshooting, SKILL.md, CHANGELOG.
2026-03-27 11:55:14 +08:00
Pnant ca2e85520b docs: add Tencent Cloud OpenClaw to友情链接/Friends section (#209)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-26 11:15:16 +08:00
Pnant 470c1288d0 feat: add Xueqiu (雪球) channel (#198)
* feat: add Xueqiu (雪球) channel for stock quotes and community posts

Add a Tier 0 (zero-config) channel for Xueqiu, China's popular stock
market and investment community platform. Uses auto-generated session
cookies via http.cookiejar — no login required.

Supported methods:
- get_stock_quote(symbol) — real-time quotes (A/HK/US markets)
- search_stock(query) — search by name or code
- get_hot_posts(limit) — trending community posts
- get_hot_stocks(limit, stock_type) — popular stocks leaderboard

Inspired by https://github.com/jackwener/opencli xueqiu implementation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add Xueqiu to README platform tables, remove stale Instagram ref

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: fernando_jacob <f.jacob1996@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 18:44:13 +08:00
Panniantong 7ae0cd8c0a feat(twitter): migrate from xreach to bird CLI
- Replace xreach CLI with bird (@steipete/bird) as Twitter/X backend
- bird uses AUTH_TOKEN/CT0 env vars (simpler than xreach's session.json)
- Accept both 'bird' and 'birdx' binary names
- Remove version detection logic (bird v0.8.0 is the baseline)
- Write credentials.env to ~/.config/bird/ for easy sourcing
- Keep xfetch session.json sync for backward compatibility
- Update SKILL.md commands: bird search/read/user-tweets/thread
- Update install/uninstall to use npm @steipete/bird
- All 52 tests pass
2026-03-23 08:51:22 +01:00
Panniantong be9f9ab838 docs: replace WeChat group QR with personal QR, update copy 2026-03-16 12:02:41 +01:00
Kada Liao f52fb67232 docs: add V2EX channel to README and CHANGELOG (v1.3.0) 2026-03-12 21:55:26 +08:00
Pnant ba565bd096 fix: switch wechat-article-for-ai to Panniantong fork (BS4 4.12 fix) (#150)
Upstream bzd6661/wechat-article-for-ai has a bug where Tag.new_tag
is None in BS4 4.12+. Our fork fixes this.

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-11 17:34:20 +08:00
Pnant 70a0bb8af8 fix(docs): correct OpenClaw exec permission instructions (#142)
- Replace invalid `/config set exec.allow true` with correct
  `openclaw config set tools.profile "coding"`
- Fix config filename: config.json → openclaw.json
- Update explanation to reference tools.profile system

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-10 14:38:46 +08:00
Pnant f5f4dea075 docs: add OpenClaw for Enterprise to friendly links (#141)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-10 14:20:31 +08:00
Pnant 233cc6fba8 docs: add friendly links section (FluxNode) (#140)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-10 14:18:06 +08:00
Pnant ae5812cf7f docs: remove personal WeChat QR, keep group QR only (#138)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-10 10:42:46 +08:00
Pnant 6af00ce4da Update README.md 2026-03-10 10:41:20 +08:00
Pnant 3321bf7d34 docs: add WeChat community group QR code (#137)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-10 10:39:40 +08:00
Pnant 00d80d2169 remove: drop Boss直聘 channel (non-functional) (#135)
Boss直聘 channel removed entirely — upstream mcp-bosszp
triggers account-level bans, making it unusable in practice.

Removed from: channel registry, README (CN/EN), install.md,
SKILL.md, tests, credits.

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-10 10:14:59 +08:00
Pnant 16733df4fc fix: bust Star History chart cache (v=20260309, 7.5K+ stars) (#131)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-09 20:29:53 +08:00
Pnant 6ddcfe2b57 Update contact information in README.md 2026-03-09 17:01:44 +08:00
Pnant 0d91d6834a Update README.md 2026-03-09 17:01:18 +08:00
Pnant c912051173 feat: 新增小宇宙播客转文字渠道 (#124)
* feat: add Xiaoyuzhou podcast transcription channel

- New channel: 小宇宙播客 (xiaoyuzhoufm.com) → full text transcript
- Uses Groq Whisper API (free, no credit card needed)
- Auto-downloads audio, converts to low-bitrate MP3, splits by 25MB limit
- Supports any length podcast with automatic chunking
- Script installed to ~/.agent-reach/tools/xiaoyuzhou/transcribe.sh
- User just needs: agent-reach configure groq-key gsk_xxxxx
- Updated README (CN/EN), install.md, pyproject.toml

* docs: clarify Xiaoyuzhou setup — free key, limitations, step-by-step

---------

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-09 00:34:22 +08:00
Pnant 22d7ad766a docs: add Twitter/X to contact section (#122)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-09 00:20:07 +08:00
Pnant 5895f3992d docs: add email to contact section (#121)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-09 00:19:02 +08:00
Pnant 9129fc5f27 Update README.md 2026-03-09 00:15:20 +08:00
Pnant 3fe100cd9a docs: add contact section with WeChat QR code (#120)
Add author contact section to both Chinese and English READMEs.
Placed after Credits, before License — clean and non-intrusive.

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-08 22:51:00 +08:00
Pnant 0a5c06633c docs: add OpenClaw exec permission prerequisite to README (#117)
Fixes #110 and #115. Since OpenClaw 2026-01 disabled the exec tool by
default, users on OpenClaw can't run any agent-reach commands unless
exec is explicitly enabled.

Added:
- Warning callout before '快速上手' explaining exec requirement for
  OpenClaw users with the exact config command to use
- Note in the FAQ 'Compatible with Claude Code / OpenClaw...' entry
  with the same fix instructions

Closes #110
Closes #115

Co-authored-by: neo-minion1 <bot@openclaw.ai>
2026-03-08 22:25:52 +08:00
Pnant fedbf95f61 feat: add Weibo as default-install channel via Panniantong fork (#118)
- Weibo now auto-installs during 'agent-reach install' (no login needed)
- Uses Panniantong/mcp-server-weibo fork with visitor passport auth fix
- Works from overseas servers without proxy or cookies
- Updated README (CN/EN), install.md, and channel check to point to fork
- 10 tools: trending, search content/users/topics, profile, feeds, comments

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-08 22:25:40 +08:00
Pnant df34436942 docs: add Star History chart to README (#81)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-05 21:33:40 +08:00
Pnant cd94706d3b feat: auto-install WeChat article tools during install (#80)
* feat: auto-install WeChat article tools during agent-reach install

WeChat (微信公众号) deps are now auto-installed during 'agent-reach install':
- Python packages: camoufox[geoip], markdownify, beautifulsoup4, httpx, miku_ai
- Tool repo: wechat-article-for-ai cloned to ~/.agent-reach/tools/

No login or configuration needed — works out of the box like YouTube/RSS.
Updated README tables to reflect zero-config status.
Also covers safe mode and dry-run.

* feat: auto-install WeChat + add channel-setup reference to SKILL.md

1. WeChat auto-install during 'agent-reach install':
   - pip install camoufox[geoip], markdownify, bs4, httpx, miku_ai
   - clone wechat-article-for-ai to ~/.agent-reach/tools/
   - covers safe mode and dry-run
   - README tables: WeChat → zero-config

2. SKILL.md improvements:
   - Added 'configure' triggers to description
   - Added references/channel-setup.md with install steps for all
     login-required platforms (Twitter, XHS, Douyin, LinkedIn, Boss)
   - Principle: user only provides cookies, agent does everything else

* simplify: point to install.md URL instead of bundled reference

No need to maintain a separate channel-setup.md. Just tell agents
to fetch install.md when they need setup instructions.

---------

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-05 18:29:33 +08:00
Pnant 35073aed54 docs: make WeChat row consistent with other channels (#79)
Changed '怎么配' column from raw pip command to '告诉 Agent「帮我配微信公众号」',
matching the pattern of all other channels. Updated both Chinese and English READMEs.

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-05 18:08:35 +08:00
Pnant 27d3d545e6 docs: add one-line update guide (#71)
- New docs/update.md for AI agents to follow
- README: add update one-liner next to install one-liner
- Same pattern: copy one line to your agent, it handles the rest

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-04 18:25:17 +08:00
Pnant 49d05b7023 docs: add WeChat channel to README (zh + en) (#69)
Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-03-04 18:06:47 +08:00
Panniantong 62aacf38b5 feat: migrate Twitter backend from bird CLI to xreach CLI
bird CLI (@steipete/bird) is deprecated and no longer maintained.
xreach CLI (xreach-cli on npm) is our maintained fork with:
- Fixed SearchTimeline (POST + updated query ID)
- Built-in proxy rotation support
- Additional features (DMs, notifications, lists)

Changes across 11 files:
- channels/twitter.py: detect xreach instead of bird/birdx
- cli.py: install/doctor/uninstall all reference xreach-cli
- SKILL.md: updated command examples (bird read → xreach tweet)
- guides/setup-twitter.md: rewritten for xreach
- docs/troubleshooting.md: updated proxy guidance
- README.md + README_en.md: all references updated
- config.py: twitter_bird → twitter_xreach
- core.py, mcp_server.py: comment updates

npm package: https://www.npmjs.com/package/xreach-cli
Source: https://github.com/Panniantong/xfetch
2026-02-27 08:17:51 +01:00
Pnant dc4d7cd7a5 Merge pull request #24 from Daiyimo/main
feat: add uninstall command; fix utf-8 encoding and minor cleanups
2026-02-27 13:24:21 +08:00
Panniantong f269667a34 docs: 添加 Cookie 登录封号风险提醒,强调使用小号
- README: Cookie 安全建议新增封号风险说明
- install.md: Security tip 补充 account ban 风险
- SKILL.md: Cookie 导入段落加封号提醒
2026-02-26 15:13:25 +01:00
Panniantong 50f2181fcc feat: 新增抖音(Douyin)渠道 - 基于 douyin-mcp-server
- 新增 agent_reach/channels/douyin.py
- 更新 doctor 检测逻辑
- 更新 install.md/SKILL.md/README 文档
- 通过 mcporter 调用 douyin-mcp-server
- 支持视频解析、下载链接获取
- 无需登录即可使用
2026-02-26 13:25:57 +01:00
Panniantong a96c5cda14 docs: Cookie-Editor 作为首选登录方式,统一所有 cookie 平台
- install.md: 新增通用 Cookie 导入说明,所有平台统一流程
- install.md: 小红书登录方式改为 Cookie-Editor 优先,扫码降级为备选
- SKILL.md: Cookie 导入独立成段,明确优先级
- README.md: 更新 Cookie 说明,强调 Cookie-Editor 比扫码更简单可靠
2026-02-26 12:16:34 +01:00
Daiyimo 9c6c04c800 feat: add uninstall command; fix utf-8 encoding and minor cleanups 2026-02-26 16:01:22 +08:00
Panniantong 80a08c8c10 docs: update all remaining references to use upstream tools directly
- docs/README_en.md: update FAQ, Works Out of the Box, Design Philosophy
- docs/troubleshooting.md: Exa fallback uses mcporter directly
- agent_reach/guides/setup-exa.md: test with mcporter call
- agent_reach/guides/setup-wechat.md: test with Jina Reader
2026-02-26 08:25:06 +01:00
Panniantong a37e9aa190 refactor: strip to installer + doctor + docs, remove read/search wrapper layer
BREAKING CHANGE: Remove all `agent-reach read` and `agent-reach search-*` commands.

Agent Reach is now an installer, configuration tool, and doctor —
not a wrapper layer. After installation, agents call upstream tools
directly (bird CLI, yt-dlp, mcporter, gh CLI, Jina Reader, etc.).

What's kept:
- agent-reach install: one-shot installer
- agent-reach doctor: channel status overview
- agent-reach configure: cookies, proxy, credentials
- agent-reach setup: interactive wizard
- SKILL.md: complete guide for agents to use upstream tools directly

What's removed:
- agent-reach read URL (and all channel read() methods)
- agent-reach search-* commands (and all channel search() methods)
- ReadResult / SearchResult data classes
- URL routing system (get_channel_for_url)
- All parsing/conversion logic (VTT, Reddit JSON, bird text parser, etc.)
- MCP server read/search tools (kept only get_status)

Net change: -1790 lines. Less code = fewer bugs.
2026-02-26 08:15:56 +01:00
Panniantong f70711e75e remove(instagram): 移除 Instagram 渠道
Instagram 反爬封杀导致所有开源工具(instaloader 等)失效,
无论有无 cookies 都无法正常使用。

- 删除 instagram.py 渠道文件
- 移除 CLI 中 search-instagram、configure instagram-cookies 等命令
- 移除 setup/doctor 中 instaloader 依赖检查
- 更新 README、docs、SKILL.md、pyproject.toml

上游 issue: instaloader#2585, instaloader#2648
Relates to: #13
2026-02-26 07:20:13 +01:00
Panniantong c3a9813b1c seo: GitHub SEO + GEO 优化,提升项目可发现性
1. 新增 llms.txt — 让 AI 搜索引擎(ChatGPT/Claude/Perplexity)理解项目
2. README 中英文加 FAQ 区块 — AI 搜索友好的常见问题解答
3. pyproject.toml keywords 扩展到 21 个 — 覆盖更多搜索词
2026-02-25 22:32:22 +01:00
Panniantong b6d135c977 docs: 小红书配置方式统一为「告诉 Agent 帮我配」 2026-02-25 16:03:50 +01:00