
모든 웹 앱을 API로 전환하세요. 크롬 확장 프로그램이 브라우저 트래픽을 캡처하고, 스키마를 자동 생성하며, AI가 API를 직접 재생할 수 있게 합니다. 공식 API가 필요 없습니다.
모든 웹 앱을 API로 전환합니다. 공식 API가 필요 없습니다. 브라우저 자동화도 필요 없습니다.
Neo는 브라우저가 만드는 모든 API 호출을 수동적으로 캡처하고, 패턴을 학습하며, AI(또는 사용자)가 직접 재생할 수 있도록 하는 Chrome 확장 프로그램입니다.
현재 AI 에이전트가 웹 앱을 조작하는 방식은 두 가지이며, 둘 다 좋지 않습니다:
| 접근 방식 | 문제점 |
|---|---|
| 공식 API | 대부분의 SaaS에는 API가 없거나 기능의 10%만 노출합니다 |
| 브라우저 자동화 | 스크린샷 → OCR → 클릭. 느리고 깨지기 쉬우며 UI가 변경될 때마다 망가집니다 |
Neo는 세 번째 방법입니다. 모든 웹 앱에는 이미 완전한 내부 API가 있습니다 — 프론트엔드는 무언가를 클릭할 때마다 이를 호출합니다. Neo는 이러한 호출을 캡처하여 재생 가능하게 만듭니다.
v2: 이제 UI 자동화 탑재. Neo v2는 접근성 트리 기반 UI 레이어를 추가합니다 — snapshot, click, fill, type, press, hover, scroll, select, screenshot, get, wait. API가 존재하면 직접 사용하고, 없으면 동일한 CLI를 통해 UI를 구동할 수 있습니다. 하나의 도구, 두 가지 레이어.
Browse normally → Neo records all API traffic → Schema auto-generated → AI replays APIs directly
→ Or drives UI via a11y tree
Chrome 확장 프로그램은 모든 fetch() 및 XMLHttpRequest를 가로챕니다 — URL, 헤더, 요청/응답 본문, 타이밍, 호출을 트리거한 DOM 요소까지 포함합니다.
도메인에서 neo-schema를 실행하면 API 맵(엔드포인트, 필요한 인증 헤더, 쿼리 매개변수, 응답 구조, 오류 코드)이 자동 생성됩니다.
Chrome DevTools Protocol을 통해 브라우저 탭 컨텍스트 내에서 API 호출을 실행합니다. 쿠키, CSRF 토큰, 세션 인증이 모두 자동으로 상속됩니다. 토큰 관리가 필요 없습니다.
| 브라우저 | 유형 | 최적 용도 |
|---|---|---|
| Chrome / Chromium | 전체 브라우저 | API 캡처 + UI 자동화 (기본) |
| Lightpanda | 헤드리스 (Zig) | AI 에이전트, 스크래핑 — 11배 빠름, 9배 적은 메모리 |
git clone https://github.com/4ier/neo.git
cd neo && npm install && npm run build
npm link # makes `neo` available globally
확장 프로그램 로드:
chrome://extensions 열기extension/dist/ 선택# Install Lightpanda
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux
chmod +x lightpanda && sudo mv lightpanda /usr/local/bin/
# Configure Neo to use Lightpanda
# In ~/.neo/config.json:
# { "chromePath": "/usr/local/bin/lightpanda", "browserType": "lightpanda", "cdpPort": 9222 }
neo start # launches Lightpanda CDP server
neo connect # attach to it
neo open https://example.com
neo snapshot # full a11y tree
모든 명령어는 단일 CLI인 neo <command>를 통해 실행됩니다.
CDP(Chrome DevTools Protocol)가 활성화된 브라우저가 필요합니다.
# --- Connection & Sessions ---
neo connect [port] # Connect to CDP, save session
neo connect --electron <app-name> # Auto-discover Electron app's CDP port
neo launch <app> [--port N] # Launch Electron app with CDP enabled
neo discover # Find reachable CDP endpoints on localhost
neo sessions # List saved sessions
neo tab # List CDP targets in active session
neo tab <index> | neo tab --url <pattern> # Switch active tab target
neo inject [--persist] [--tab pattern] # Inject Neo capture script into target
# --- Capture & Traffic ---
neo status # Overview of captured data
neo capture summary # Quick overview
neo capture list github.com --limit 10 # Shows IDs for replay/detail
neo capture list --since 1h # Time-filtered
neo capture domains
neo capture search "CreateTweet" --method POST
neo capture watch x.com # Live tail (like tail -f)
neo capture stats x.com # Method/status/timing breakdown
neo capture export x.com --since 2h > x.json
neo capture export x.com --format har > x.har # HAR 1.2 for Postman/devtools
neo capture import x-captures.json
neo capture prune --older-than 7d
neo capture gc x.com [--dry-run] # Smart dedup
# --- API Replay & Execution ---
neo replay <capture-id> --tab x.com # Replay a captured call
neo exec <url> --method POST --body '{...}' --tab example.com --auto-headers
neo api x.com HomeTimeline # Smart call (schema lookup + auto-auth)
# --- Schema & Analysis ---
neo schema generate x.com # Generate from captures
neo schema generate --all # Batch all domains
neo schema show x.com [--json]
neo schema openapi x.com # Export OpenAPI 3.0 spec
neo schema diff x.com # Changes from previous version
neo schema coverage # Domains with/without schemas
neo label x.com [--dry-run] # Semantic endpoint labels
neo flows x.com [--window 5000] # API call sequence patterns
neo deps x.com [--min-confidence 1] # Response→request data dependencies
neo workflow discover|show|run <name> # Multi-step workflow discovery & replay
neo suggest x.com # AI capability analysis
neo export-skill x.com # Generate agent-ready SKILL.md
# --- UI Automation (v2) ---
neo snapshot [-i] [-C] [--json] # A11y tree with @ref mapping
neo click @ref [--new-tab] # Click element by @ref
neo fill @ref "text" # Clear + fill input
neo type @ref "text" # Append text to input
neo press <key> # Keyboard key (supports Ctrl+a, Enter, etc.)
neo hover @ref # Hover over element
neo scroll <dir> [px] [--selector css] # Scroll by direction
neo select @ref "value" # Set dropdown value
neo screenshot [path] [--full] [--annotate] # Capture screenshot
neo get text @ref | neo get url | neo get title # Extract info
neo wait @ref | neo wait --load networkidle | neo wait <ms> # Wait for element/load/time
# --- Page Interaction ---
neo read github.com # Extract readable text
neo eval "document.title" --tab github.com # Run JS in page
neo open https://example.com # Open URL
# --- Mock & Bridge ---
neo mock x.com [--port 8080 --latency 200] # Mock server from schema
neo bridge [--json] [--interactive] # Real-time WebSocket capture stream
# --- Diagnostics ---
neo doctor # Check Chrome, extension, schemas
neo reload # Reload extension from CLI
neo tabs [filter] # List open Chrome tabs
Neo는 Chrome뿐만 아니라 CDP를 지원하는 모든 앱( Electron 앱 포함)에서 작동합니다:
# Launch VS Code with CDP and connect
neo launch code --port 9230
neo snapshot # See VS Code's accessibility tree
neo click @14 # Click a menu item
# Or connect to an already-running Electron app
neo connect --electron slack
# Inject Neo's capture script into any CDP target
neo inject --persist # Survives page navigation
neo inject --tab slack # Target specific tab
세션은 자동으로 저장됩니다. --session을 사용하여 전환할 수 있습니다:
neo --session vscode snapshot
neo --session chrome api x.com HomeTimeline
Neo v2는 접근성 트리를 기반으로 한 완전한 UI 상호작용 레이어를 추가합니다 — 스크린샷, 좌표, 픽셀 매칭이 필요 없습니다:
# 1. Take a snapshot — each interactive element gets a @ref
neo snapshot
# @1 button "Sign in"
# @2 textbox "Search"
# @3 link "Pricing"
# 2. Interact by @ref
neo click @1
neo fill @2 "AI agents"
neo press Enter
neo screenshot results.png --full
이를 통해 AI 에이전트는 빠르고 의미론적인 방식으로 모든 UI와 상호작용할 수 있습니다. API 캡처와 결합하여 이중 채널 접근 방식을 사용할 수 있습니다: API가 있으면 사용하고, 없으면 UI로 대체합니다.
브리지는 확장 프로그램과 CLI 사이에 지속적인 WebSocket 채널을 생성합니다. 확장 프로그램은 ws://127.0.0.1:9234에 자동으로 연결되고 모든 캡처를 실시간으로 스트리밍합니다. 대화형 모드에서는 확장 프로그램에 직접 쿼리할 수 있습니다: ping, status, capture.count, capture.list, capture.domains, capture.search, capture.clear.