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.
This commit is contained in:
parent
cf5b495ebf
commit
c851bd64b9
3 changed files with 69 additions and 74 deletions
|
|
@ -128,6 +128,7 @@ def main():
|
|||
|
||||
def _cmd_install(args):
|
||||
"""One-shot deterministic installer."""
|
||||
import os
|
||||
from agent_eyes.config import Config
|
||||
from agent_eyes.doctor import check_all, format_report
|
||||
|
||||
|
|
@ -146,7 +147,7 @@ def _cmd_install(args):
|
|||
else:
|
||||
print(f"💻 Environment: Local computer (auto-detected)")
|
||||
|
||||
# Apply flags
|
||||
# Apply explicit flags
|
||||
if args.exa_key:
|
||||
config.set("exa_api_key", args.exa_key)
|
||||
print(f"✅ Exa search key configured")
|
||||
|
|
@ -156,8 +157,39 @@ def _cmd_install(args):
|
|||
config.set("bilibili_proxy", args.proxy)
|
||||
print(f"✅ Proxy configured for Reddit + Bilibili")
|
||||
|
||||
# Auto-detect Exa key from environment
|
||||
if not config.get("exa_api_key") and not args.exa_key:
|
||||
env_key = os.environ.get("EXA_API_KEY") or os.environ.get("exa_api_key")
|
||||
if env_key:
|
||||
config.set("exa_api_key", env_key)
|
||||
print(f"✅ Exa key auto-detected from environment")
|
||||
|
||||
# Auto-import cookies on local computers
|
||||
if env == "local":
|
||||
print()
|
||||
print("🍪 Trying to import cookies from browser...")
|
||||
try:
|
||||
from agent_eyes.cookie_extract import configure_from_browser
|
||||
results = configure_from_browser("chrome", config)
|
||||
found = False
|
||||
for platform, success, message in results:
|
||||
if success:
|
||||
print(f" ✅ {platform}: {message}")
|
||||
found = True
|
||||
if not found:
|
||||
# Try firefox
|
||||
results = configure_from_browser("firefox", config)
|
||||
for platform, success, message in results:
|
||||
if success:
|
||||
print(f" ✅ {platform}: {message}")
|
||||
found = True
|
||||
if not found:
|
||||
print(" ⬜ No cookies found (normal if you haven't logged into these sites)")
|
||||
except Exception:
|
||||
print(" ⬜ Could not read browser cookies (browser might be open)")
|
||||
|
||||
# Environment-specific advice
|
||||
if env == "server" and not args.proxy:
|
||||
if env == "server":
|
||||
print()
|
||||
print("💡 Tip: Reddit and Bilibili block server IPs.")
|
||||
print(" Reddit search still works via Exa (free).")
|
||||
|
|
@ -170,10 +202,9 @@ def _cmd_install(args):
|
|||
results = check_all(config)
|
||||
ok = sum(1 for r in results.values() if r["status"] == "ok")
|
||||
total = len(results)
|
||||
print(f"✅ {ok}/{total} channels active")
|
||||
|
||||
# What's missing
|
||||
if args.search == "yes" and not args.exa_key and not config.get("exa_api_key"):
|
||||
# What's missing — only mention Exa if not configured
|
||||
if not config.get("exa_api_key"):
|
||||
print()
|
||||
print("🔍 Recommended: unlock search with a free Exa API key")
|
||||
print(" agent-eyes configure exa-key YOUR_KEY")
|
||||
|
|
@ -183,7 +214,7 @@ def _cmd_install(args):
|
|||
print()
|
||||
print(format_report(results))
|
||||
print()
|
||||
print("✅ Installation complete!")
|
||||
print(f"✅ Installation complete! {ok}/{total} channels active.")
|
||||
|
||||
|
||||
def _detect_environment():
|
||||
|
|
|
|||
|
|
@ -5,100 +5,64 @@
|
|||
Copy this to your AI Agent:
|
||||
|
||||
```
|
||||
Install Agent Eyes: https://raw.githubusercontent.com/Panniantong/agent-eyes/main/docs/install.md
|
||||
帮我安装 Agent Eyes:https://raw.githubusercontent.com/Panniantong/agent-eyes/main/docs/install.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## For AI Agents
|
||||
|
||||
Install Agent Eyes with minimal user effort. Goal: fewest questions, fewest steps.
|
||||
|
||||
### Step 1: Install and detect
|
||||
### Step 1: Install
|
||||
|
||||
```bash
|
||||
pip install https://github.com/Panniantong/agent-eyes/archive/main.zip || pip3 install https://github.com/Panniantong/agent-eyes/archive/main.zip
|
||||
agent-eyes install --env=auto
|
||||
```
|
||||
|
||||
Read the output. It tells you the detected environment (local/server) and what's already working.
|
||||
This single command does everything automatically:
|
||||
- Detects local computer vs server
|
||||
- Auto-imports browser cookies on local (Twitter, XiaoHongShu, Bilibili)
|
||||
- Auto-detects Exa API key if already in environment
|
||||
- Tests all channels
|
||||
- Shows what's working and what needs setup
|
||||
|
||||
### Step 2: Set up search (highest value, free)
|
||||
**Read the output carefully.** It tells you exactly what happened and what's next.
|
||||
|
||||
> "Want to unlock web search? One free API key lets me search the web, Reddit, and Twitter.
|
||||
> Go to https://exa.ai → sign up (free, 1000 searches/month) → send me the key.
|
||||
> Or say 'skip' — I can still read any URL you give me."
|
||||
### Step 2: Only if needed — configure what's missing
|
||||
|
||||
Based on the install output, you may need to configure one or two things.
|
||||
Only ask the user for items the install output says are missing.
|
||||
|
||||
**If search is not configured:**
|
||||
> "Want to unlock web search? Go to https://exa.ai → sign up (free) → send me the API key."
|
||||
|
||||
```bash
|
||||
agent-eyes configure exa-key THE_KEY
|
||||
```
|
||||
|
||||
### Step 3: Set up cookies (the approach depends on environment)
|
||||
**If cookies were not auto-imported (server users):**
|
||||
> "To unlock Twitter and XiaoHongShu, install the Cookie-Editor Chrome extension, go to the site, click Export → Header String, and paste it to me."
|
||||
> Extension: https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm
|
||||
|
||||
#### Path A: Local computer (auto-detected)
|
||||
|
||||
Offer one-click import:
|
||||
|
||||
> "I can grab your browser cookies automatically to unlock Twitter, XiaoHongShu, and Bilibili — all at once. Just close Chrome first, then say 'go'."
|
||||
|
||||
If user agrees:
|
||||
```bash
|
||||
pip install browser-cookie3 2>/dev/null; agent-eyes configure --from-browser chrome
|
||||
agent-eyes configure twitter-cookies "PASTED_STRING"
|
||||
agent-eyes configure xhs-cookie "PASTED_STRING"
|
||||
```
|
||||
|
||||
If user uses another browser: replace `chrome` with `firefox`, `edge`, `brave`, or `opera`.
|
||||
|
||||
If it fails or user declines, fall through to Path B.
|
||||
|
||||
#### Path B: Server, or auto-import didn't work
|
||||
|
||||
Tell the user the easiest manual method:
|
||||
|
||||
> "I need cookies from your browser to unlock some platforms. Here's the fastest way (30 seconds per site):
|
||||
>
|
||||
> 1. Install the **Cookie-Editor** Chrome extension: https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm
|
||||
> 2. Go to the site (e.g. x.com) — make sure you're logged in
|
||||
> 3. Click the Cookie-Editor icon → **Export** → **Header String**
|
||||
> 4. Paste the result to me
|
||||
>
|
||||
> Which platforms do you use? I'll tell you which ones to export."
|
||||
|
||||
For each platform the user wants:
|
||||
|
||||
**Twitter/X** — export from https://x.com :
|
||||
```bash
|
||||
agent-eyes configure twitter-cookies "PASTED_COOKIE_STRING"
|
||||
```
|
||||
(Accepts both: full cookie string OR just `auth_token ct0` as two values)
|
||||
|
||||
**XiaoHongShu** — export from https://www.xiaohongshu.com :
|
||||
```bash
|
||||
agent-eyes configure xhs-cookie "PASTED_COOKIE_STRING"
|
||||
```
|
||||
|
||||
**Bilibili** — export from https://www.bilibili.com :
|
||||
(On local computers Bilibili already works without cookies. On servers it needs a proxy — see Step 4.)
|
||||
|
||||
### Step 4: Server-only — proxy for Reddit/Bilibili
|
||||
|
||||
Only mention if environment was detected as server:
|
||||
|
||||
> "On servers, Reddit and Bilibili block direct access. Reddit *search* still works via Exa (free), but for reading full Reddit posts or using Bilibili, you'd need a residential proxy (~$1/month).
|
||||
> Get one at https://webshare.io if you want. Or skip — not required."
|
||||
**If on server and wants Reddit/Bilibili full access:**
|
||||
> "Reddit and Bilibili block server IPs. Get a proxy at https://webshare.io ($1/month) and send me the address."
|
||||
|
||||
```bash
|
||||
agent-eyes configure proxy http://user:pass@ip:port
|
||||
```
|
||||
|
||||
### Step 5: Done
|
||||
### Step 3: Verify
|
||||
|
||||
```bash
|
||||
agent-eyes doctor
|
||||
```
|
||||
|
||||
> "✅ All set! [list active channels]. Try: 'search Reddit for ...' or 'read this URL'"
|
||||
|
||||
Users can configure more channels anytime — just say "set up Twitter" or "add proxy".
|
||||
Report what's active. Users can configure more anytime by asking.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -106,12 +70,11 @@ Users can configure more channels anytime — just say "set up Twitter" or "add
|
|||
|
||||
| Command | What it does |
|
||||
|---------|-------------|
|
||||
| `agent-eyes configure --from-browser chrome` | Auto-import ALL cookies at once (local only) |
|
||||
| `agent-eyes configure exa-key KEY` | Unlock search (web + Reddit + Twitter) |
|
||||
| `agent-eyes configure twitter-cookies "COOKIE_STRING"` | Unlock Twitter (cookie string or auth_token + ct0) |
|
||||
| `agent-eyes configure xhs-cookie "COOKIE_STRING"` | Unlock XiaoHongShu |
|
||||
| `agent-eyes configure youtube-cookies chrome` | Unlock age-restricted YouTube |
|
||||
| `agent-eyes configure proxy URL` | Unlock Reddit reader + Bilibili (server) |
|
||||
| `agent-eyes doctor` | Show all channels and their status |
|
||||
| `agent-eyes install --env=auto` | Full auto-setup |
|
||||
| `agent-eyes doctor` | Show status |
|
||||
| `agent-eyes configure exa-key KEY` | Unlock search |
|
||||
| `agent-eyes configure twitter-cookies "..."` | Unlock Twitter |
|
||||
| `agent-eyes configure xhs-cookie "..."` | Unlock XiaoHongShu |
|
||||
| `agent-eyes configure proxy URL` | Unlock Reddit + Bilibili (server) |
|
||||
| `agent-eyes read URL` | Read any URL |
|
||||
| `agent-eyes search "query"` | Search the web |
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ dependencies = [
|
|||
"pyyaml>=6.0",
|
||||
"rich>=13.0",
|
||||
"yt-dlp>=2024.0",
|
||||
"browser-cookie3>=0.19",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue