Install
openclaw skills install camofox-browser-controlControl a standalone camofox-browser server over its REST API, especially when a local or remote service is already running on port 9377. Use for opening tabs, navigating, snapshotting pages, clicking refs, typing into forms, pressing keys, scrolling, exporting storage state, importing cookies, or debugging browser automation against camofox-browser/Camoufox behavior.
openclaw skills install camofox-browser-controlUse the standalone camofox-browser server directly over HTTP.
Default assumptions for this workspace:
http://127.0.0.1:9377userId is mandatory on nearly every useful request.sessionKey (or legacy listItemId) groups tabs; default to default./health./tabs./tabs/:tabId/wait./tabs/:tabId/snapshot and read refs./click, /type, /press, /scroll, or /navigate.Prefer this loop over HTML scraping.
userId.POST /tabs with sessionKey for raw server use.fill, retry with type using mode: "keyboard"./tabs returns an empty list, check whether userId was omitted.Read references/api-cheatsheet.md when you need request/response shapes.
Most-used endpoints:
GET /healthPOST /tabsGET /tabs?userId=...POST /tabs/:tabId/waitGET /tabs/:tabId/snapshot?userId=...POST /tabs/:tabId/clickPOST /tabs/:tabId/typePOST /tabs/:tabId/pressPOST /tabs/:tabId/scrollPOST /tabs/:tabId/navigatePOST /tabs/:tabId/evaluatePOST /sessions/:userId/cookiesGET /sessions/:userId/storage_stateUse scripts/camofox.py instead of rewriting raw HTTP every time.
Examples:
python3 skills/camofox-browser-control/scripts/camofox.py health
python3 skills/camofox-browser-control/scripts/camofox.py open --user lotfi --session default --url https://github.com
python3 skills/camofox-browser-control/scripts/camofox.py snapshot --user lotfi --tab <tabId>
python3 skills/camofox-browser-control/scripts/camofox.py click --user lotfi --tab <tabId> --ref e17
python3 skills/camofox-browser-control/scripts/camofox.py type --user lotfi --tab <tabId> --ref e2 --text 'hello' --mode fill
python3 skills/camofox-browser-control/scripts/camofox.py type --user lotfi --tab <tabId> --text '97304' --mode keyboard --submit
python3 skills/camofox-browser-control/scripts/camofox.py navigate --user lotfi --tab <tabId> --url https://example.com
GET /tabs without userId can misleadingly show no tabs even when tabs exist.click already retries normal click, force click, and mouse sequence; success does not guarantee the frontend changed the state you expect, so verify with a fresh snapshot.mode: "keyboard" plus --submit when fill does not trigger app logic.For normal forms:
For stubborn auth:
storage_stateFor cookie bootstrap:
/sessions/:userId/cookiesCAMOFOX_API_KEYUse /tabs/:tabId/evaluate only when refs/typing/clicking are insufficient. Keep expressions small and targeted.
The current host already has a live server on 127.0.0.1:9377, with VNC/noVNC exposed by the container. Treat that as the default target unless the task says otherwise.