# Solace Browser Integration for Cursor # Source: solaceagi.com/agents/cursor | Drop in: .cursorrules You have access to Solace Browser for web automation. Solace Hub starts first and exposes the Yinyang runtime at http://localhost:8888 ## Check if available ```bash curl -s http://localhost:8888/api/status | python3 -c "import sys,json; d=json.load(sys.stdin); ready = bool(d.get('running')) or d.get('status') in ('ready','ok','healthy'); print('OK' if ready else 'NOT RUNNING')" ``` ## Auth (OAuth3) Local runtime tokens are minted by the Hub-owned runtime itself: ```bash curl -X POST http://localhost:8888/oauth3/token \ -H "Content-Type: application/json" \ -d '{"user_id":"local-agent","scopes":["browser.navigate","browser.click","browser.fill","browser.screenshot","browser.evaluate"],"ttl_seconds":300}' # Then include: -H "Authorization: Bearer " on action calls. ``` Cloud tokens on solaceagi.com use a separate contract: ```bash # Mint a cloud bearer from your paid API key curl -X POST https://solaceagi.com/api/v1/oauth3/token \ -H "Content-Type: application/json" \ -d '{"api_key":"sw_sk_..."}' # Mint a scoped vault token for sync/storage APIs curl -X POST https://solaceagi.com/api/v1/oauth3/tokens \ -H "Authorization: Bearer sw_sk_..." \ -H "Content-Type: application/json" \ -d '{"scopes":["files.read","files.write"]}' # Response field is "token" — send it back as: X-OAuth3-Token: o3_... ``` ## Core commands Navigate: POST /api/navigate {"url": "..."} Click: POST /api/click {"selector": "..."} Fill: POST /api/fill {"selector": "...", "value": "..."} Screenshot: POST /api/screenshot {} -> {"filepath": "artifacts/screenshot-*.png"} Evaluate JS: POST /api/evaluate {"expression": "..."} Page Snapshot: GET /api/page-snapshot ## Evidence Every action SHA-256 captured automatically. Use `solace evidence verify` to check. ## Response contract Always parse JSON and require `success == true` before proceeding. Do not rely on HTTP status alone. ## Replay cost: $0.001/task after first run