/install camofox-browser-control
Use the standalone camofox-browser server directly over HTTP.
Default assumptions for this workspace:
- Base URL:
http://127.0.0.1:9377 - The service is already running.
userIdis mandatory on nearly every useful request.sessionKey(or legacylistItemId) groups tabs; default todefault.
Golden workflow
- Check
/health. - Create a tab with
/tabs. - Call
/tabs/:tabId/wait. - Call
/tabs/:tabId/snapshotand read refs. - Act with
/click,/type,/press,/scroll, or/navigate. - Snapshot again after any state-changing action.
Prefer this loop over HTML scraping.
Hard rules
- Always send
userId. - Prefer
POST /tabswithsessionKeyfor raw server use. - Re-snapshot after click, type, press, or navigation.
- If a field ignores
fill, retry withtypeusingmode: "keyboard". - If
/tabsreturns an empty list, check whetheruserIdwas omitted. - Use direct navigation when the target URL is known; do not over-click through search results if a stable URL exists.
- Use VNC/manual login for MFA, CAPTCHAs, or brittle auth flows, then reuse storage state or persistence.
Minimal endpoint map
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_state
Recommended helper script
Use 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 \x3CtabId>
python3 skills/camofox-browser-control/scripts/camofox.py click --user lotfi --tab \x3CtabId> --ref e17
python3 skills/camofox-browser-control/scripts/camofox.py type --user lotfi --tab \x3CtabId> --ref e2 --text 'hello' --mode fill
python3 skills/camofox-browser-control/scripts/camofox.py type --user lotfi --tab \x3CtabId> --text '97304' --mode keyboard --submit
python3 skills/camofox-browser-control/scripts/camofox.py navigate --user lotfi --tab \x3CtabId> --url https://example.com
Known quirks
GET /tabswithoutuserIdcan misleadingly show no tabs even when tabs exist.- Refs go stale after page changes. Snapshot again instead of reusing old refs blindly.
clickalready 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.- Some sites accept direct URL navigation more reliably than UI clicking.
- Some frontend inputs require true keyboard events. Use
mode: "keyboard"plus--submitwhenfilldoes not trigger app logic. - Large multi-step chained calls are more fragile than short calls with verification between them.
Login strategy
For normal forms:
- open → wait → snapshot → type → click/submit → snapshot
For stubborn auth:
- use VNC/noVNC login
- export
storage_state - rely on persistence or restore state on later runs
For cookie bootstrap:
- import Netscape cookies through
/sessions/:userId/cookies - requires
CAMOFOX_API_KEY
Escape hatch
Use /tabs/:tabId/evaluate only when refs/typing/clicking are insufficient. Keep expressions small and targeted.
Local note for this machine
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.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install camofox-browser-control - After installation, invoke the skill by name or use
/camofox-browser-control - Provide required inputs per the skill's parameter spec and get structured output
What is Camofox Browser Control?
Control 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 tab... It is an AI Agent Skill for Claude Code / OpenClaw, with 67 downloads so far.
How do I install Camofox Browser Control?
Run "/install camofox-browser-control" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Camofox Browser Control free?
Yes, Camofox Browser Control is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Camofox Browser Control support?
Camofox Browser Control is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Camofox Browser Control?
It is built and maintained by lotfinity (@lotfinity); the current version is v0.1.0.