Commit graph

102 commits

Author SHA1 Message Date
Pnant
b387a67b51
Merge pull request #27 from Panniantong/docs/cookie-editor-first
docs: Cookie-Editor 作为所有 cookie 平台的首选登录方式
2026-02-26 19:17:35 +08: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
Pnant
cf70302e92
Merge pull request #23 from Panniantong/refactor/simplify-to-installer
refactor: 回归安装器+文档定位,砍掉 read/search 包装层
2026-02-26 15:29:44 +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
606e8900ce docs: update install.md — remove read/search references, add upstream tools table 2026-02-26 08:20:20 +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
Pnant
1cbf6a7b9c
fix(xiaohongshu): 修复 xsec_token 丢失导致无法读取笔记详情 (#17)
问题:搜索结果包含 xsecToken 但被丢弃,read() 只从首页 feed
查找 token,几乎不可能匹配到目标笔记。

修复:
1. search() 返回的 URL 携带 xsec_token 查询参数
2. read() 三级 token 查找:URL 参数 → 首页 feed → 搜索反查
3. 全部失败时回退到 Jina Reader

Fixes #15

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
2026-02-26 14:36:36 +08:00
Pnant
68319ec683
Merge pull request #16 from Panniantong/remove/instagram
remove(instagram): 移除 Instagram 渠道(上游反爬封杀)
2026-02-26 14:23:26 +08: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
d291d27664 docs: install.md 和 SKILL.md 补充 Twitter 代理方案说明
让 Agent 在配置 Twitter 时知道:
- undici 需要安装(npm install -g undici)
- 代理注入是自动的,不需要用户额外操作
- fetch failed 的排查步骤
2026-02-25 21:45:40 +01:00
Pnant
0be4f097d0
Merge pull request #10 from Panniantong/fix/twitter-fetch-failed
fix: Twitter bird CLI fetch failed — 自动 fallback + 连通性检测
2026-02-26 04:44:39 +08:00
Panniantong
12bd727e30 fix: Twitter bird CLI fetch failed — 自动代理注入 + 连通性检测 + Exa fallback
问题:bird CLI 用 Node.js 原生 fetch(),不走 HTTP_PROXY,
导致需要代理的用户(如 Windows + 本地代理)完全无法使用。

修复:
1. 自动代理注入:检测到 HTTP_PROXY/HTTPS_PROXY 时,通过 undici 的
   EnvHttpProxyAgent 让 Node.js fetch 自动走代理,用户无需任何额外配置
2. doctor 检测:实际跑 bird whoami 测连通性,失败时给出具体原因
3. search fallback:bird 搜索失败时自动 fallback 到 Exa
4. install:自动安装 undici(npm install -g undici)
5. 新增 troubleshooting.md:常见问题解决方案

Fixes #9
2026-02-25 21:35:21 +01:00
Panniantong
b6d135c977 docs: 小红书配置方式统一为「告诉 Agent 帮我配」 2026-02-25 16:03:50 +01:00
Pnant
291d073223
Merge pull request #8 from Panniantong/refactor/skill-consolidate
refactor: 合并 SKILL.md 为单一来源,更新为 12 渠道
2026-02-25 22:32:31 +08:00
Pnant
ef0889dd69
Merge pull request #7 from Panniantong/docs/channel-limitations
docs: 补充新渠道使用限制说明
2026-02-25 22:32:27 +08:00
Panniantong
545a6c5761 docs: 新渠道配置方式统一为「告诉 Agent 帮我配」
跟其他渠道风格一致,不单独列限制说明。
具体配置步骤都在 install.md 里,Agent 会自动引导。
2026-02-25 15:27:51 +01:00
Panniantong
00f3edd9cc refactor: 合并 SKILL.md 为单一来源,更新为 12 个渠道
- 删除 agent-reach/SKILL.md(重复)
- 删除 agent_reach/integrations/skill/SKILL.md(重复)
- 保留并更新 agent_reach/skill/SKILL.md 为唯一来源
- 新增 Instagram/LinkedIn/Boss直聘 搜索命令
- 新增渠道配置引导流程说明
- 描述从 9+ 更新为 12+
2026-02-25 15:11:51 +01:00
Panniantong
2f674f1e45 security: doctor warns if config.yaml permissions are too open
Adds a check in 'agent-reach doctor' that warns when ~/.agent-reach/config.yaml
is readable by other users (group/world). Suggests chmod 600 to fix.

Ref: #6
2026-02-25 14:16:08 +01:00
Panniantong
c642e18e1f release: v1.1.0 — 新增 Instagram、LinkedIn、Boss直聘 三个渠道
🆕 新渠道:
- 📷 Instagram — instaloader 读取帖子和 Profile
- 💼 LinkedIn — linkedin-scraper-mcp 读取 Profile、公司、职位
- 🏢 Boss直聘 — mcp-bosszp 搜索职位、向 HR 打招呼

📈 改进:
- 渠道数量 9 → 12
- 新增 CHANGELOG.md
- CLI 新增 search-instagram / search-linkedin / search-bosszhipin
- 安装指南更新
- 致谢列表更新
2026-02-25 14:14:30 +01:00
Panniantong
31eb6db537 fix: use encoding='utf-8' with errors='replace' for bird subprocess calls
Fixes non-UTF-8 character handling in Twitter content.
Replaces text=True with explicit encoding parameters.

Co-authored-by: dev-starlight <dev-starlight@users.noreply.github.com>
Closes #3
2026-02-25 13:44:47 +01:00
Panniantong
fe7ed1656b merge: 解决与 main 分支的冲突 2026-02-25 13:16:45 +01:00
Panniantong
5906d4ee3f fix: LinkedIn MCP 参数适配 — 用 company_name/linkedin_username 替代 url
linkedin-scraper-mcp 的 API 参数是 company_name 和 linkedin_username,
不是 url。从 URL 中提取 slug 传给 MCP。
timeout 增加到 60 秒(浏览器自动化需要时间)。
search 去掉不支持的 limit 参数。
2026-02-25 13:16:00 +01:00
Panniantong
823f239a54 docs: 完善三个新渠道的登录说明
- Instagram: Cookie-Editor 导入(推荐)或 instaloader --login
- LinkedIn: linkedin-scraper-mcp --login(服务器需 VNC 远程桌面)
- Boss直聘: 启动 MCP 后 App 扫码

README 平台表格更新登录方式说明
2026-02-25 11:49:51 +01:00
Panniantong
e8fe33c80c feat: Instagram 支持 Cookie-Editor 导入 + 超时 fallback 优化
- agent-reach configure instagram-cookies 支持 Cookie-Editor Header String
- Instagram cookie 保存到 ~/.agent-reach/instagram-cookies.txt
- instaloader 429 限速时 15 秒自动超时 fallback 到 Jina Reader
- LinkedIn/Boss直聘 保持使用各自 MCP 的原生登录流程(不侵入)
- doctor 提示信息更新
2026-02-25 11:13:52 +01:00
Pnant
284479eec9
Merge pull request #4 from Panniantong/docs/server-cookie-login 2026-02-25 17:59:04 +08:00
Panniantong
aafd6839e9 fix: Instagram 429 限速时 15 秒超时后自动 fallback 到 Jina
instaloader 遇到 429 会自动等 30 分钟重试导致卡住。
改为在 executor 里跑,15 秒超时后自动切 Jina Reader fallback。
2026-02-25 10:32:51 +01:00
Panniantong
e3804108fe feat: 新增 Instagram、LinkedIn、Boss直聘 三个渠道
新增渠道:
- Instagram: 基于 instaloader (9.8K),读取帖子/Profile,Cookie 登录
- LinkedIn: 基于 linkedin-scraper-mcp (900+) MCP 服务,Jina Reader fallback
- Boss直聘: 基于 mcp-bosszp MCP 服务,Jina Reader fallback

代码改动:
- 新建 channels/instagram.py, linkedin.py, bosszhipin.py
- 注册到 channels/__init__.py
- cli.py 添加 search-instagram/linkedin/bosszhipin 子命令
- cli.py 安装逻辑添加 instaloader 自动安装
- core.py 添加 search_instagram/linkedin/bosszhipin 方法
- README.md + docs/README_en.md 更新平台表格和选型表格
- docs/install.md 添加三个新渠道的配置说明和 Quick Reference
2026-02-25 10:25:30 +01:00
Panniantong
cc9c90c228 docs: 补充服务器用户小红书登录方式说明
服务器(无 UI 界面)用户无法直接扫码登录小红书,补充说明最方便的方式:
在自己电脑登录后用 Cookie-Editor 导出 Cookie 发给 Agent 配置。

- install.md: 小红书登录方式分本地/服务器两种场景说明
- README.md: Cookie 提示补充服务器用户指引
2026-02-25 09:54:18 +01:00
Panniantong
c0a0518c01 fix: 修复 README 中 2 个 404 链接
- bird: github.com/steipete/bird (已删除) → npmjs.com/package/@steipete/bird
- mcporter: github.com/nicepkg/mcporter (404) → github.com/steipete/mcporter (正确地址)
- 致谢增加 mcporter 和 xiaohongshu-mcp
2026-02-25 05:19:25 +01:00
Panniantong
008811bf87 docs: 简化安装入口,只保留一种方式 + 展开说明背后做了什么
- 去掉手动安装和 Skill 安装的独立入口
- 只保留'复制一句话给 Agent'
- 用 details 展开解释安装过程(CLI → 依赖 → 搜索引擎 → Skill 注册)
2026-02-25 05:15:34 +01:00
Panniantong
a0ecd438ee fix: 完善所有渠道安装指引,修复文档错误
- 小红书: 添加 Docker 安装命令 (xpzouying/xiaohongshu-mcp),替换模糊的 'install xiaohongshu-mcp'
- Exa: 修正文档错误(实际免费无需 API Key,之前写要 Key)
- CLI: install 命令输出添加小红书 Docker 安装指引
- channel: xiaohongshu.py 所有错误信息添加完整安装步骤
- install.md: 添加小红书配置段落
- README: 修正小红书 GitHub 链接,Exa 描述改为免费无需 Key

Fixes user-reported issue: 安装后不知道怎么装小红书 MCP
2026-02-25 05:10:56 +01:00
Panniantong
868822e2ed fix: Skill 加 Setup 引导,纯 Skill 安装也能自动触发 pip install
SKILL.md 增加 Setup 段:Agent 读到 skill 后先检测 agent-reach CLI
是否存在,不存在则自动 pip install + agent-reach install。
README 说明同步更新。
2026-02-25 04:35:35 +01:00
Panniantong
25d869d3fe feat: Agent Reach 作为 Skill 安装
- 新增 agent-reach/SKILL.md — skills.sh 兼容格式
  安装: npx skills add Panniantong/Agent-Reach@agent-reach
- agent-reach install 自动检测 OpenClaw / Claude Code / 通用 Agent
  并在对应 skill 目录注册 SKILL.md
- SKILL.md 打包进 pip 包(agent_reach/skill/SKILL.md)
- README 中英文都加了 Skill 安装方式
2026-02-25 04:24:16 +01:00
Panniantong
93ad9c5722 fix: birdx → bird CLI (npm @steipete/bird)
birdx 从来不是 PyPI 包,pip install birdx 必然失败。
实际工具是 npm 包 @steipete/bird,一个 Twitter GraphQL CLI。

变更:
- 安装器改用 npm install -g @steipete/bird
- twitter.py 直接调 bird,通过环境变量传 AUTH_TOKEN/CT0
- 兼容已有的 birdx wrapper(shutil.which 回退)
- 更新所有文档引用
- 重写 setup-twitter.md 指南
2026-02-25 04:02:42 +01:00
Panniantong
17970b2789 feat: 添加 watch 和 check-update 命令 + OpenClaw 每日监控
- agent-reach check-update: 检查 GitHub 最新版本,展示更新内容
- agent-reach watch: 快速健康检查+版本检查,为定时任务设计
  - 全部正常只输出一行
  - 有问题才展开详情
- install.md 新增 Step 5: OpenClaw 用户可设置每日自动监控
  - Agent 主动问用户要不要设定时任务
  - 有问题才通知,没问题不打扰
2026-02-25 03:41:42 +01:00
Panniantong
0f4a59fdfc fix: Windows 控制台 emoji 编码崩溃
Windows 默认控制台编码是 cp936(中文)或 cp1252(西文),
print() 输出 emoji 字符时直接 UnicodeEncodeError 崩溃。

在 cli.py 入口处添加 UTF-8 encoding wrapper,
用 errors='replace' 确保不会因为编码问题导致整个程序崩溃。
2026-02-25 02:41:14 +01:00
Panniantong
a860873237 docs: 补充 Cookie-Editor 插件推荐 2026-02-24 16:10:37 +01:00
Panniantong
8089022683 docs: 全网搜索改为需配置免费 Key,移到配置后解锁列 2026-02-24 16:07:25 +01:00
Pnant
e99acaa524
Update README.md 2026-02-24 22:59:52 +08:00
Panniantong
4223f1cfe9 docs: 加 Web 4.0 基建愿景 2026-02-24 15:59:18 +01:00
Panniantong
7ae45ac0a3 docs: Star 段落改为真诚口吻,不过度承诺 2026-02-24 15:57:41 +01:00
Panniantong
afd23e35d7 docs: 表格改为「装好即用 / 配置后解锁」双列,清晰表达功能层次 2026-02-24 15:56:58 +01:00
Panniantong
d42ebea4ff docs: 表格按配置难度排序 + 简化配置说明 + 加 Star 价值说明
- 平台表格从易到难排列(零配置→Cookie→代理→MCP)
- 删除第二个操作表格,配置说明统一写在'你需要做什么'列
- 统一口吻:不知道怎么配就告诉 Agent,它会引导你
- 删除'状态一目了然'段落(信息已在表格覆盖)
- 开头和结尾加 Star 价值说明:持续更新、新渠道、平台封了我们修
2026-02-24 15:52:26 +01:00
Pnant
fcd747ae4f
Update README.md 2026-02-24 22:45:43 +08:00
Panniantong
ac63a5dc55 docs: install.md 恢复有用细节,保留简洁指令
保留:
- Cookie 配置步骤(需要用户操作,Agent 做不了)
- 代理配置说明(含推荐服务商)
- 完整命令参考表(12 条命令)
- 自动安装说明

去掉的只有:9 行排错对照表(Agent 自己能搞定)
2026-02-24 15:38:57 +01:00
Panniantong
27847cd68b docs: 重写痛点场景 + 平台表格改为用户视角
- 痛点从4条技术描述扩展为9条真实用户场景
- 平台表格按阅读/搜索/发布拆列,标注用户需要做什么
- 新增配置操作指南表(跟Agent说什么/花多久/花多少钱)
- 删除重复的'按需解锁'段落,信息已整合到平台表格
2026-02-24 15:36:02 +01:00
Panniantong
05452e5b54 simplify: install.md 只说目标,不说怎么修——Agent 自己会
install.md 核心指令:
- 目标:所有渠道都 
- 遇到问题自己修,不要停
- 只有需要用户提供的东西(密码/cookie/key)才问用户
- 最后跑 doctor 汇报结果
2026-02-24 15:34:50 +01:00
Panniantong
db3f292228 feat: 添加 Agent 自修复提示——让用户的 Agent 自己解决安装问题
核心改动:
1. install.md 加入 Agent 指令:'You are a capable AI Agent. If a tool
   fails, try another method. Don't give up after one attempt.'
2. install.md 加入常见问题自修复表(9 种场景 + 对应解法)
3. CLI 错误输出改为 Agent-friendly 语气,给出替代方案而非只说失败
4. install 结束时如果有未激活渠道,提示 Agent 自行修复
2026-02-24 15:32:25 +01:00
Panniantong
d52520a17e fix: 修复 _install_mcporter 函数丢失 + browser-cookie3 硬依赖 + 自动装 birdx
关键修复:
1. _install_mcporter() 函数定义被上次编辑误删(NameError 崩溃)
   → 恢复为独立函数
2. browser-cookie3 作为硬依赖在服务器上安装失败(缺 dbus/secretstorage)
   → 改为 optional[cookies]
3. birdx 不在自动安装流程中
   → _install_system_deps 增加自动 pip install birdx

install 流程现在完整覆盖:
  gh CLI → Node.js → birdx → mcporter → Exa → XHS → cookies → test
2026-02-24 15:25:38 +01:00