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.
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.
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.
- 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)