通过类型化的 JSON 接口访问 90+ 真实网站,包括 Google、Amazon、Reddit、YouTube、GitHub、Instagram、Bloomberg、Zillow 等,覆盖搜索、购物、旅行等场景。
Agent-native way to access any website. Bridging agent CLI and web GUI through API.
bash
openweb sites # list all available sites
If the site has no package, do NOT say "unsupported." Route to add-site/guide.md.
bash
openweb <site> # transport, auth, operations list
Requires browser: yes — browser auto-starts when needed; no manual setup requiredRequires login: yes — user must be logged in via their browser sessionPrefer site docs when they exist in your workspace:
src/sites/<site>/SKILL.md for workflows and intent mapping, then src/sites/<site>/DOC.md for internals.DOC.md, specs, manifest, examples, and adapters are guaranteed. Per-site SKILL.md and PROGRESS.md are source-tree docs and are not shipped into $OPENWEB_HOME/sites/<site>/.If only the shipped package is available, rely on openweb <site>, openweb <site> <op>, examples, and DOC.md.
bash
openweb <site> <op> # params, response shape, permission tier
openweb <site> <op> --example # real example params from fixtures
Check the operation's permission tier before executing:
TierDefaultBehaviorreadallowGET-like operations — execute freelywritepromptCreates/updates — ask user before executingdeletepromptDestructive — ask user before executingtransactdenyFinancial/irreversible — always skip
bash
openweb <site> <op> '{"key":"value"}' # stdout=JSON, stderr=JSON error
Auto-spill: responses over 4096 bytes write to a temp file.
openweb <site> exec <op> '{...}' is equivalent — exec can be omitted when the third arg is JSON.
Errors on stderr include failureClass:
failureClassActionneeds_browserBrowser auto-starts; if it fails, check Chrome installation. Fallback: openweb browser start``needs_login``openweb login <site> then openweb browser restart``needs_pageOpen a tab to the site URLbot_blocked``openweb browser restart --no-headless, user solves CAPTCHA in visible browser, then retry. For persistent sites, set "browser": {"headless": false} in configpermission_deniedUpdate permissions in $OPENWEB_HOME/config.json``permission_requiredAsk user for confirmation, then retryretriableWait a few seconds, retry (max 2)fatalDon't retry — fix params or check site name
If the table above doesn't resolve it, read references/troubleshooting.md.
Site doesn't exist or lacks needed operations? Read add-site/guide.md.
Read add-site/guide.md
Read references/troubleshooting.md
All paths relative to skills/openweb/.
FileLoad whenadd-site/guide.mdEntry point for add/expand workflowadd-site/probe.mdProbe step: CDP browser-side discoveryadd-site/capture.mdCapture step: recording browser trafficadd-site/review.mdReview step: reading analysis-summary.jsonadd-site/curate-operations.mdCurate: naming, noise, params, permissionsadd-site/curate-runtime.mdCurate: auth, transport, extractionadd-site/curate-schemas.mdCurate: response schemas, examples, PIIadd-site/verify.mdVerify: runtime + spec + doc loopadd-site/document.mdDocument: per-site SKILL.md + DOC.md + PROGRESS.md, knowledge updates
FileLoad whenreferences/cli.mdCLI command syntax, flags, stdout/stderrreferences/x-openweb.mdFull x-openweb field schemareferences/troubleshooting.mdSomething broke — classify, diagnose, fix
FileLoad whenknowledge/archetypes.mdExpected operations by site categoryknowledge/auth-routing.mdAuth type unknown — signal-to-family lookupknowledge/auth-primitives.mdConfiguring auth — config and gotchasknowledge/bot-detection.mdTransport/capture decisionsknowledge/extraction.mdExtraction signals — SSR/DOM patternsknowledge/graphql.mdGraphQL — persisted queries, batchingknowledge/ws.mdWebSocket — message/connection patternsknowledge/adapter-recipes.mdAdapter patterns, code templates, pitfallsknowledge/transport-upgrade.mdTransport tier decisions, node feasibility, API discovery