| name | neo |
| description | Browse websites, read web pages, interact with web apps, call website APIs, and automate web tasks. Use Neo when: user asks to check a website, read a web page, post on social media (Twitter/X), interact with any web app, look up information on a specific site, scrape data from websites, automate browser tasks, or when you need to call any website's API. Keywords: website, web page, browse, URL, http, API, twitter, tweet, post, scrape, web app, open site, check site, read page, social media, online service.
|
| metadata | {"openclaw":{"requires":{"bins":["neo"]},"install":[{"id":"neo","kind":"node","package":"@4ier/neo","bins":["neo"],"label":"Install Neo CLI (npm)"}]}} |
Neo 2.0 — Web App API Discovery & Browser Automation
Neo turns any website into an AI-callable API. Zero extensions required — pure CDP.
⚠️ MANDATORY FIRST STEP
neo doctor
- All ✓ → proceed
- Chrome CDP ✗ →
neo start (launches Chrome with correct profile + CDP)
- Still ✗ → ask the user, then STOP. Don't loop.
Critical Rules
- NEVER start Chrome manually — always
neo start
- NEVER copy Chrome profiles — login sessions live in the real profile
- NEVER
pkill chrome — user may have important tabs open
- If stuck → tell user, STOP. Don't retry in a loop.
Workflows
Read a web page
neo doctor
neo read example.com
neo open https://example.com
neo read example.com
Call a website's API (fast path)
neo doctor
neo schema show x.com
neo api x.com HomeTimeline
neo api x.com CreateTweet --body '{"variables":{"tweet_text":"hello"}}'
Discover APIs for a new website
neo doctor
neo open https://example.com
neo capture list example.com --limit 20
neo schema generate example.com
neo api example.com <keyword>
UI automation (click/fill/type — when no API exists)
neo doctor
neo snapshot
neo click 14
neo fill 7 "search query"
neo type 7 "text"
neo press Enter
neo scroll down 500
neo screenshot
Refs are compact integers: [0] button "Sign in", [1] input "Search".
Use neo click 0, neo fill 1 "query" etc. Legacy @e5 and [5] formats also work.
Cookie management
neo cookies list
neo cookies list github.com
neo cookies export github.com cookies.json
neo cookies import cookies.json
neo cookies clear github.com
neo cookies clear
Use export + import to persist login sessions across browser restarts.
Profile management
neo profile list
neo profile use "Default"
neo start
Clean up — close tabs when done
neo tabs
neo eval "window.close()" --tab example.com
Command Reference
neo open <url>
neo read <tab-pattern>
neo eval "<js>" --tab <pattern>
neo tabs [filter]
neo snapshot [-i] [-C] [--json] [--diff]
neo click <ref> [--new-tab]
neo fill <ref> "text"
neo type <ref> "text"
neo press <key>
neo hover <ref>
neo scroll <dir> [px] [--selector css]
neo select <ref> "value"
neo screenshot [path] [--full]
neo get text <ref> | url | title
neo wait <ref> | --load | <ms>
neo cookies list [domain]
neo cookies export [domain] [file]
neo cookies import <file>
neo cookies clear [domain]
neo profile list
neo profile use <name>
neo status
neo capture start
neo capture stop
neo capture list [domain] [--limit N]
neo capture search <query>
neo capture domains
neo capture detail <id>
neo schema generate <domain>
neo schema show <domain>
neo schema list
neo schema search <query>
neo api <domain> <keyword> [--body '{}']
neo exec <url> [--method POST] [--body] [--tab pattern] [--auto-headers]
neo replay <id> [--tab pattern]
neo setup
neo start [--profile <name>]
neo doctor [--fix]
Decision Tree
Want to interact with a website?
│
├─ FIRST: neo doctor
│ ├─ All ✓ → continue
│ ├─ Chrome ✗ → neo start → retry
│ └─ Still ✗ → ask user, STOP
│
├─ Just read content? → neo read <domain>
│
├─ Need to call an API?
│ ├─ neo schema show <domain> → exists? → neo api
│ └─ No schema? → neo open → browse → neo schema generate → neo api
│
├─ Need to click/fill/type?
│ └─ neo snapshot → neo click 5 / neo fill 3 "text"
│
├─ Need to manage cookies/sessions?
│ └─ neo cookies list/export/import/clear
│
└─ Done? → neo eval "window.close()" --tab <domain>
Key Principles
neo doctor first, always.
- API > UI automation. If schema has it, use
neo api. Don't snapshot+click.
- Auth is automatic. API calls inherit browser cookies/session/CSRF.
- Close tabs after use. Every
neo open creates a new tab.
- If stuck, stop. Don't loop on Chrome startup. Ask the user.