Commit graph

50 commits

Author SHA1 Message Date
Panniantong
064ae75ca6 docs: 30秒 → 几分钟,更符合实际 2026-02-24 14:12:20 +01:00
Panniantong
c67478239e docs: 加上 vibe coding 说明,欢迎提 bug 2026-02-24 14:09:41 +01:00
Panniantong
758002f136 docs: 精简贡献指南,去掉技术细节
- 删掉添加新渠道的代码示例和 3 步教程
- 删掉希望支持的渠道列表
- 简化为:想要新渠道提 Issue/PR,想本地加让 Agent clone 改就行
- 中英文同步
2026-02-24 13:57:48 +01:00
Panniantong
f2f2e19eac docs: 更新 Twitter API 定价 — 已改为按量付费(2026-02)
X 官方 API 2026年2月改版:
- 旧: 固定月费 00/00/000
- 新: 按量付费(读推 /bin/bash.005/条,读用户 /bin/bash.01,发推 /bin/bash.01)
- X 官方示例:中等用量约 15/月
- birdx 仍然免费(Cookie 登录)

中英文 README 同步更新
2026-02-24 13:43:02 +01:00
Panniantong
8b00f73e84 docs: 重写设计理念 — 突出脚手架定位、可插拔架构、新渠道贡献指南
- 设计理念: 明确「脚手架不是框架」定位
- 项目结构: 每个文件标注可替换后端选项
- 添加新渠道: 3 步完整教程 + 代码示例
- 贡献指南: 希望支持的渠道列表(HN/Mastodon/Telegram/arXiv 等)
- 中英文 README 同步更新
2026-02-24 13:41:14 +01:00
Panniantong
7d0da09222 feat: 新增 YouTube/Bilibili/XHS 搜索 CLI 命令 + 修复 B站搜索
- cli.py: 新增 search-youtube / search-bilibili / search-xhs 子命令
- core.py: 新增 search_youtube / search_bilibili / search_xhs 方法
- bilibili.py: 搜索策略改为 yt-dlp → Exa fallback(服务器 IP 被 B站 412)
  - 本地机器走 yt-dlp bilisearch(有 title/uploader)
  - 服务器自动 fallback 到 Exa site:bilibili.com
  - 修复 mcporter 输出解析(Title:/URL: 格式)

测试结果: 15/15 全通(8 read + 7 search)
2026-02-24 13:39:21 +01:00
Panniantong
88eaebe263 refactor: 统一所有渠道后端,对齐 research 技能
GitHub: REST API → gh CLI(官方工具,认证后完整能力)
Bilibili: 自写 API → yt-dlp(和 YouTube 统一后端,支持搜索 bilisearch)
YouTube: 新增搜索功能(ytsearch via yt-dlp)

README 中英文同步更新:
- 平台表格:小红书/Exa/GitHub/YouTube/B站 描述全部更新
- 选型表格:新增 gh CLI、xiaohongshu-mcp,更新 yt-dlp/Exa 描述
- 按需解锁:去掉 Exa Key 注册步骤(已自动配置)
- 配置难度说明:新增「自动配置」「mcporter」级别
2026-02-24 13:25:57 +01:00
Panniantong
bb9ce6f7f1 refactor: XHS + Exa 全面切换到 mcporter MCP 后端
- xiaohongshu.py: 删除网页爬取代码,100% 走 mcporter + xiaohongshu-mcp
- exa_search.py: 删除直接 API 调用,100% 走 mcporter + exa MCP(免 Key)
- cli.py install: 新增 _install_mcporter(),自动装 mcporter + 配置 exa/xhs
- cli.py configure: 移除 exa-key 和 xhs-cookie(不再需要)
- doctor.py: 更新 tier 1 描述

净减 166 行代码,架构更简单:
之前: 每个渠道两套后端代码(mcporter + fallback)
现在: 每个渠道一套后端(mcporter only)
2026-02-24 13:20:23 +01:00
Panniantong
4e0c008d42 feat: 小红书 + Exa 搜索支持 mcporter MCP 后端
小红书:
- 优先通过 mcporter + xiaohongshu MCP server(内部 API,不受反爬限制)
- Fallback 到 Cookie 网页爬取(原方案,服务器端可能被拦截)
- 新增 search() 方法支持搜索小红书内容
- doctor 检测 MCP 连接状态和登录状态

Exa 搜索:
- 优先通过 mcporter + Exa MCP server(OAuth 免 API Key)
- Fallback 到直接 API 调用(需 EXA_API_KEY)
- 解析 mcporter 输出的 Title/URL/Text 格式

两个渠道都从「必须配置才能用」变成「有 mcporter 就自动能用」
9/9 渠道全部可用
2026-02-24 13:04:55 +01:00
Panniantong
3efc8d1d55 fix: Reddit 子版块列表页支持 + --version 参数
- reddit.py: 新增 _parse_listing() 处理 /r/sub/hot|new|top 等列表页
  之前只能读单个帖子,列表页直接报 ValueError
- cli.py: 添加 --version flag (标准 CLI 惯例)
2026-02-24 12:49:58 +01:00
Panniantong
30f11bb6e4 fix: remove dead code (unreachable return) in twitter.py check() 2026-02-24 12:39:00 +01:00
Panniantong
2d1b8658b6 fix: handle curly quotes in Twitter Jina fallback detection
Jina Reader returns smart/curly quotes (U+2019) instead of ASCII
apostrophes. Use apostrophe-free substrings for detection.
2026-02-24 12:38:25 +01:00
Panniantong
a5b7b93b1f fix: improve error handling for Twitter Jina fallback and invalid URL inputs
- Twitter _read_jina now detects unusable X.com responses (JS-required pages)
  and shows a friendly error instead of garbage HTML
- CLI read command now shows user-friendly messages for invalid URLs
  and connection errors instead of raw HTTP exception traces
2026-02-24 12:36:57 +01:00
Panniantong
ac64f607e0 fix: 开头平台列表补上 YouTube(中英文同步) 2026-02-24 12:19:46 +01:00
Panniantong
94513cf1da fix: Python badge 3.8+ → 3.10+ 对齐 pyproject.toml 2026-02-24 12:19:14 +01:00
Panniantong
ebbb69c372 polish: 全面清理旧名引用 + 英文 README 对齐中文版质量
- .gitignore/.env.example: agent-eyes → agent-reach
- README.md: 暂去掉 logo 图片标签(logo 待定)
- docs/README_en.md: 完全重写,对齐中文版的表格/徽章/结构
- SKILL.md: setup → configure
- sync-upstream.sh: 更新路径到 agent_reach/channels
- 提交 3 个 logo 候选文件(最终选定后改名 logo.png)
2026-02-24 12:15:30 +01:00
Panniantong
5c62a21f32 rename: Agent Eyes → Agent Reach
全局重命名:
- 包名: agent_eyes → agent_reach
- CLI: agent-eyes → agent-reach
- 类名: AgentEyes → AgentReach
- 显示名: Agent Eyes → Agent Reach
- GitHub: Panniantong/agent-eyes → Panniantong/Agent-Reach

所有 36 个测试通过,CLI/doctor/read/search 全部正常。
2026-02-24 10:25:46 +01:00
Panniantong
4b0ae20fd7 README: 对标爆火开源项目标准重写
研究了 Daytona(4K星首周)、yt-dlp(148K)、Jina Reader(9.8K)、OpenClaw 等项目的 README 模式。

新增/改进:
1. 居中 Logo + 标题 + 徽章区(License、Python、Stars)
2. 顶部导航链接
3. '为什么需要' → 痛点表格化(Twitter 00/月、Reddit 403...)
4. 安心清单改成表格,更整齐
5. 设计理念里选型理由改成表格
6. 加了 贡献 section(降低参与门槛)
7. 加了 LICENSE 文件
8. logo 占位(待设计)
2026-02-24 10:17:52 +01:00
Panniantong
06a729e5a7 README: 加用户安心清单——免费、安全、持续更新、兼容所有 Agent
在开头加了'你可能关心的几件事':
- 完全免费(唯一可能花钱的是代理,本地不需要)
- Cookie 只存本地,代码开源可审查
- 持续跟进上游工具更新
- 适配所有主流 Agent 平台
- 出问题 doctor 一眼可知
2026-02-24 10:12:10 +01:00
Panniantong
e6f6eff9d4 README: 重写开头和设计理念
开头:从'Agent 是瞎子'改为精确描述真实痛点——Agent 能上网,但社媒和私域平台(信息密度最高的地方)各有门槛,一个个踩坑很烦。

设计理念:从'胶水不是框架'改为'Agent 初始化脚手架'——
帮你做完选型和配置,每个平台选了社区最好的开源工具,
每个文件 ~50 行,后端随时可换。列出每个选型的理由。
2026-02-24 10:09:57 +01:00
Panniantong
3fe0948e6d README: 去掉 CLI/Python/MCP,全部改成用户视角
用户不需要知道命令、API、MCP Server。
整个 README 只讲一件事:复制一句话给 Agent → 装好 → 用自然语言跟 Agent 说话。

删掉:接入方式(CLI/Python/MCP)、速查表(命令列表)
合并:'装好就能用' + '你的 Agent 能做什么' → 统一为场景示例
简化:'按需解锁' 从代码块改为自然语言引导
2026-02-24 10:05:43 +01:00
Panniantong
38bf407c3a 精确描述每个渠道的能力层次
核心修改:
- GitHub: 零配置=公开仓库可读可搜,配置 gh/token 后=Fork、Issue、PR、Review 全部可用
- Reddit: 三层能力——Exa 搜索(免费)→代理读帖子→OAuth Bot 高级操作(发帖等)
- 小红书: 必须配 Cookie,没有降级方案,明确说明
- B站: 本地可用/服务器需代理,区分清楚
- Twitter: 零配置可读推文,birdx+Cookie 解锁搜索发推

每个渠道的 check() 方法都改为自定义逻辑,精确反映当前环境的实际能力。
2026-02-24 09:25:46 +01:00
Panniantong
2098dacd37 全中文输出 + 积极正向的状态提示
所有 doctor 输出和渠道描述改为中文。
状态提示从'不支持/需要配置'的语气改为'配置一下就能用'。

Before:  Reddit posts — Need config: reddit_proxy
After:   Reddit 帖子和评论 — 配个代理就能用

Before:  XiaoHongShu — Need config: xhs_cookie
After:   小红书笔记 — 导入浏览器 Cookie 就能用
2026-02-24 09:14:41 +01:00
Panniantong
904f8dfb49 fix: doctor status must be honest — show real capability per channel
Before: everything under tier 0 showed  with vague descriptions
After: each channel shows its actual capability and limitations

Changes:
- GitHub: 'Public repos only. Set github_token for private repos'
- Twitter: shows 'Full access' vs 'Read-only' depending on birdx
- Bilibili: ⚠️ warning on servers about potential IP blocks
- XiaoHongShu: friendly message when no cookie (was showing Jina 451)
- Doctor format: tier 0 items now show detailed status messages, not just 
- README: platform table updated to match reality (removed exaggerated claims)
- README: doctor example updated to show new honest format
2026-02-24 09:00:34 +01:00
Panniantong
07c6efbc7e fix: 4 bugs found in full E2E usage testing
Bug 1: Reddit 403 due to short User-Agent in proxy test
  Root cause: configure proxy test used 'Mozilla/5.0' (too short, Reddit rejects)
  Fix: use full UA string matching the channel implementation

Bug 2: Reddit URL parsing broke on trailing slashes
  Root cause: url.rstrip('/') + '.json' mangled URLs with query params
  Fix: properly parse URL, clean path, reconstruct json URL

Bug 3: Reddit 403 without proxy showed raw HTTP error
  Root cause: no error handling for 403/429 responses
  Fix: friendly message suggesting proxy setup + Exa search alternative

Bug 4: XiaoHongShu without cookie showed Jina Reader 451 error
  Root cause: fallback to Jina Reader which can't access XHS (legal block)
  Fix: show clear message about needing cookies with setup instructions

Bug 5: Empty search query caused raw 422 API error
  Root cause: no input validation before API call
  Fix: check for empty query, show friendly message

All 36 unit tests passing.
2026-02-24 08:52:37 +01:00
Panniantong
afe3aceb61 fix: 2 real-usage bugs found in end-to-end testing
Bug 1: search-github/search-twitter silently returned empty
  Root cause: result printing code was inside except block (never reached on success)
  Fix: moved result display code outside try/except

Bug 2: Bilibili returned empty content when server IP is blocked
  Root cause: API returns code -404 but code treated it as success with empty data
  Fix: check API response code, show friendly message with proxy setup hint

Also: GitHub search results now correctly show stars/forks/language from extra dict

All found through real-usage E2E testing (not just install/config testing).
2026-02-24 08:44:29 +01:00
Panniantong
c851bd64b9 simplify: auto-everything in install command
Changes:
1. browser-cookie3 now in default deps (no separate pip install)
2. install --env=auto now auto-imports cookies on local computers
3. install auto-detects EXA_API_KEY from environment variables
4. install.md cut from 100 lines to 60 lines — two steps not five

Before: pip install → agent-eyes install → 'want search?' → 'want cookies?' → configure each
After: pip install → agent-eyes install (does everything automatically) → only ask about what's missing

Docker clean-room test: all passing, 0 bugs.
2026-02-24 08:37:55 +01:00
Panniantong
cf5b495ebf docs: GitHub full capabilities via gh CLI
GitHub isn't just read+search — gh CLI enables:
create issues/PRs, comment, review, fork, star, manage releases
2026-02-24 07:57:47 +01:00
Panniantong
d588403669 docs: full channel table upfront with capabilities + difficulty
Major change: README now opens with a complete platform table showing:
- ALL 9 supported platforms
- What each can do (read/search/post/reply/like/collect)
- Configuration difficulty (零配置/免费Key/Cookie/代理)
- Which open-source tool powers each one

Key additions:
- Twitter: not just read — can post tweets and reply (via birdx)
- XiaoHongShu: full operations — post, comment, like, collect, search
- Sorted by importance: Web → Twitter → XHS → Search → GitHub → YouTube → Bilibili → RSS → Reddit
2026-02-24 07:52:21 +01:00
Panniantong
a9f5fd93d7 docs: 4 rounds of Steve Jobs polish on Chinese README
Round 1: Problem-solution structure, showcase underlying tools
Round 2: Too verbose - 4 'can't do' examples is repetitive, tightened
Round 3: Compact doctor output, restored quick-reference table,
         cut code examples to essentials
Round 4: Opening paragraph tighter - one sentence for all pain points

Key: README doesn't say 'we can read URLs' (every tool does that).
It says 'here are the best open-source tools for each platform,
we glued them together so you install once and get everything.'
2026-02-24 07:37:16 +01:00
Panniantong
f8234e3b96 docs: rewrite README — showcase underlying tools, not generic capabilities
Core insight from Neo: 'reading a URL is not a feature — every AI tool does that'

New approach: introduce each underlying project and what makes it special:
- Jina Reader (9.8K): any URL → clean Markdown, handles JS rendering
- yt-dlp (148K): subtitles from 1800+ video sites, not just YouTube
- Exa: neural semantic search, not keyword matching
- birdx: Twitter without expensive API Key, just browser cookies
- feedparser (2.3K): universal RSS/Atom parser

Framing: 'We find the best wheel for each job, then attach them all to your Agent'
2026-02-24 07:30:04 +01:00
Panniantong
e96ebdec88 docs: Chinese README as default, English in docs/
Chinese README polished 3 rounds:
- Round 1: direct translation
- Round 2: too dry, too many tables, too technical
- Round 3: conversational tone, scenario-driven, collapsible details

Key improvements:
- Opens with WHY not WHAT ('你的Agent很聪明,但是看不见')
- Install section explains WHERE to paste for newbies
- Features shown as bullet list not tables (better visual scan)
- Architecture hidden in collapsible section (most users don't care)
- 'Why Agent Eyes' section explains positioning clearly
- English version at docs/README_en.md
2026-02-24 07:22:35 +01:00
Panniantong
c40ffbd5ed fix: 3 bugs found in Docker clean-room test
1. Install command: git+... requires git (many envs don't have it)
   → Changed to zip URL: pip install .../archive/main.zip

2. yt-dlp not in dependencies (shows warning in doctor)
   → Added yt-dlp to required dependencies

3. search-twitter/reddit shows raw 401 error without Exa key
   → Now shows friendly 'Exa API key not configured' message
2026-02-24 07:11:22 +01:00
Panniantong
deec966228 polish: reorder steps — search first (highest value), cookies second
Search (Exa) is more valuable to most users than cookie-based channels.
New order: install → search key → cookies → proxy → done
2026-02-24 07:03:12 +01:00
Panniantong
89b3eaf5da polish: cookie header string parsing + Cookie-Editor guide + server user path
Key improvements:
- twitter-cookies now accepts BOTH formats:
  1. Full cookie header string from Cookie-Editor export
  2. Two separate values (auth_token ct0)
  Automatically detects which format was pasted.

- New docs/cookie-export.md guide for server users
  Recommends Cookie-Editor Chrome extension (one-click export)
  Fallback: manual F12 → Network → Cookie header

- Install guide now has two clear paths:
  Path A (local): --from-browser chrome (one command, all cookies)
  Path B (server): Cookie-Editor extension export (30 sec per site)

- Better error messages with accepted format examples
2026-02-24 07:02:44 +01:00
Panniantong
b264070a8d feat: one-click cookie import from browser
New: agent-eyes configure --from-browser chrome
- Extracts Twitter, XiaoHongShu, Bilibili cookies in ONE command
- No F12, no manual copying, no extension needed
- Supports: chrome, firefox, edge, brave, opera
- Uses browser-cookie3 (optional dependency: pip install agent-eyes[cookies])

Install guide now 3x shorter:
1. pip install + agent-eyes install (auto-detect env)
2. agent-eyes configure --from-browser chrome (one-click all cookies)
3. agent-eyes configure exa-key KEY (one API key)
4. Done

User actions reduced from 4 trips to 2:
- Before: go to exa.ai + F12 Twitter + F12 XHS + go to webshare.io
- After: go to exa.ai + say 'yes' to auto-import cookies
2026-02-24 06:55:08 +01:00
Panniantong
f98fc991bc polish round 2: Cookie-Editor shortcut + single-question flow
- Recommend Cookie-Editor browser extension as easiest cookie export method
- Step 1 is now literally ONE command (install + auto-detect combined)
- Only ONE question after install: 'want search? here's a free key'
- Additional channels are 'just ask anytime', not a menu to read through
- YouTube cookies only mentioned if user actually needs age-restricted content
- Cut guide from 100 lines to ~90 lines, much more scannable
2026-02-24 06:44:22 +01:00
Panniantong
1d1484fc16 polish: Steve Jobs pass — simplify install to near-zero friction
Key changes:
1. Auto-detect local vs server (SSH/Docker/cloud/headless detection)
   - User no longer needs to answer 'local or server?'
2. Only ask for ONE thing: Exa API key (the highest-value unlock)
3. Everything else is 'ask later' — user says 'set up Twitter' anytime
4. Install guide cut from 200 lines to 100 lines
5. No more overwhelming channel menu — just show what works + one recommendation

Philosophy: default to everything working, only stop when user action is truly needed.
The lazy user path: paste one line → Agent installs → 'want search? get free key at exa.ai' → done.
2026-02-24 06:43:34 +01:00
Panniantong
1b8b202e1e feat: complete channel menu install flow + XiaoHongShu channel
Major install flow polish:
- Channels organized by setup difficulty:
  🟢 Zero-config (Web, GitHub, RSS) — works immediately
  🔵 Cookie-based (Twitter, YouTube, Bilibili, XiaoHongShu) — free, ~2min
  🟡 Free API key (Exa Search) — one key, 30 seconds
  🟠 Proxy-based (Reddit, Bilibili on server) — $1/month
- Every channel explains: what it does, what's needed, what you miss without it
- Server vs local affects which channels need proxy

New: XiaoHongShu channel (cookie-based, falls back to Jina Reader)
New configure commands: twitter-cookies, xhs-cookie, youtube-cookies
Each command auto-tests after saving.
2026-02-24 06:31:48 +01:00
Panniantong
6b023b6607 polish: rewrite install guide as clear channel menu + decision tree
Installation flow now:
1. pip install (one command)
2. Ask: local or server?
3. Show FULL channel menu with clear explanations:
   - What each channel does
   - What's needed to set it up
   - What you miss without it
   - Pre-selected: zero-config channels
   - Recommended: Exa Search (free)
   - Optional: Reddit/Bilibili proxy, Twitter Advanced, WeChat, XHS
4. Configure selected channels (one command each, auto-tested)
5. Final health check

Key improvements:
- User sees ALL options at once with tradeoffs
- 'Without it' explanations help users decide
- Server users get clear proxy guidance (Reddit + Bilibili share same proxy)
- Reddit clarified: search works FREE via Exa, only full reader needs proxy
2026-02-24 06:24:08 +01:00
Panniantong
62b82c5a52 feat: deterministic install & configure commands
New commands:
- agent-eyes install --env=<local|server> --search=<yes|no> [--proxy=URL] [--exa-key=KEY]
  One-shot installer with explicit flags. No ambiguity.

- agent-eyes configure <key> <value>
  Set exa-key/proxy/github-token/groq-key with auto-testing.
  e.g. 'agent-eyes configure exa-key xxx' → saves + tests API

Rewrote install.md as strict decision tree:
1. Ask 3 questions → get flags
2. pip install
3. Run ONE install command with flags
4. Configure keys with configure command (auto-tests each)
5. Verify with doctor

Inspired by oh-my-opencode's deterministic installer pattern.
2026-02-24 06:16:52 +01:00
Panniantong
83622965d2 feat: add environment detection (local vs server) + Bilibili proxy support
Install guide now asks: local computer or server?
- Server users get proactive guidance on Reddit/Bilibili proxy (/mo Webshare)
- Bilibili channel now supports proxy config (bilibili_proxy)
- Updated step numbering in install guide
2026-02-24 06:12:03 +01:00
Panniantong
33c7b773e0 feat: add Agent-readable install guide (one URL to rule them all)
Users just paste one line to their AI Agent:
'Install Agent Eyes: https://raw.githubusercontent.com/Panniantong/agent-eyes/main/docs/install.md'

The Agent reads the guide, installs, configures, and reports back.
Inspired by oh-my-opencode's installation flow.

Also updated README: new tagline, architecture diagram reflects
pure-glue design, updated credits.
2026-02-24 05:46:03 +01:00
Panniantong
74c3df5c3d v2.0.0 — Pure glue architecture: zero copied code, pluggable channels
BREAKING: Complete architectural rewrite.

Before: Copied x-reader's fetcher code into readers/ (1205 lines of borrowed code)
After: Pluggable channel system where each channel is a thin wrapper (~50 lines)
       around the best external tool for that platform. Zero copied code.

Architecture:
- channels/base.py — Universal Channel interface (read, search, check)
- channels/web.py — Jina Reader API (swappable)
- channels/github.py — GitHub API (swappable)
- channels/twitter.py — birdx + Jina fallback (swappable)
- channels/youtube.py — yt-dlp (swappable)
- channels/reddit.py — Reddit JSON API + proxy (swappable)
- channels/rss.py — feedparser (swappable)
- channels/bilibili.py — Bilibili API (swappable)
- channels/exa_search.py — Exa semantic search (swappable)

Key design: every backend can be swapped by changing ONE file.
YouTube dies? Change youtube.py. Exa sucks? Swap exa_search.py for Tavily.
Nothing else changes.

Removed: reader.py, schema.py, readers/, search/, utils/ (all x-reader code)
Tests: 36/36 passing
2026-02-24 05:38:21 +01:00
Panniantong
7e4cd961ee feat: add upstream sync script for x-reader updates
scripts/sync-upstream.sh checks for changes in x-reader's fetchers/
and shows which reader files have upstream updates. Handles import
path differences (x_reader.fetchers → agent_eyes.readers) automatically.
2026-02-24 05:22:48 +01:00
Panniantong
e7cd04655e fix: suppress loguru noise in CLI, fix birdx text parser
- CLI now suppresses loguru INFO logs by default (use -v/--verbose to show)
- Fixed birdx output parser to correctly extract author, url, date, text
- birdx search now uses plain text output (--json returns empty arrays)
2026-02-24 05:21:57 +01:00
Panniantong
d891af5b7d fix: import paths (fetchers→readers), schema field mismatch, RSS detection
Bugs found during fresh pip install testing:
- readers/*.py still referenced agent_eyes.fetchers → fixed to agent_eyes.readers
- reader.py passed 'author'/'metadata' to UnifiedContent which doesn't have those → use 'extra' field
- RSS URL detection missed domains containing 'rss' (e.g. hnrss.org)
2026-02-24 05:13:52 +01:00
Panniantong
8eab038cb9 v1.0.0 — Agent Eyes: search + read the entire internet
Major restructure from x-reader fork to independent project:

Architecture:
- readers/ — content extraction from 10+ platforms (based on x-reader, MIT)
- search/ — semantic search via Exa, GitHub API, birdx (NEW)
- config.py — configuration management (~/.agent-eyes/config.yaml) (NEW)
- doctor.py — environment health checker (NEW)
- core.py — AgentEyes unified entry point (NEW)
- cli.py — full CLI: read, search, setup, doctor (NEW)
- integrations/mcp_server.py — 8 MCP tools (NEW)
- guides/ — 6 Agent-readable setup guides (NEW)
- integrations/skill/ — OpenClaw Skill package (NEW)

Platforms (zero config):
- Web pages, GitHub, Bilibili, YouTube, RSS, single tweets

Platforms (one free API key):
- Web search, Reddit search, Twitter search (via Exa)

Platforms (optional setup):
- Reddit full reader, Twitter advanced, WeChat, XiaoHongShu

Tests: 34/34 passing

Credits: Built on x-reader by @runes_leo (MIT License)
2026-02-24 04:00:47 +01:00
Panniantong
3a3a0101cf Agent Eyes v1.0.0 — search + read the entire internet
Based on x-reader by @runes_leo (MIT License). Extended with:
- Reddit support (posts + comments, proxy support)
- GitHub support (repos, issues, PRs)
- Web search via Exa semantic search
- Reddit search (bypasses IP blocks via Exa)
- GitHub search (repos by stars)
- Renamed package: x_reader → agent_eyes
- New MCP tools: search, search_reddit, search_github
- Agent-first positioning and documentation
2026-02-24 03:07:50 +01:00
Panniantong
ee2ad83b12 Initial: forked from runesleo/x-reader (MIT License) - thank you @runes_leo! 2026-02-24 03:00:05 +01:00