Installation
Install the plugin using the OpenClaw CLI:Auto-start behavior
By default, the Camofox server automatically starts when OpenClaw loads the plugin. This means:- No manual server management required
- Server launches in the background on port 9377
- Health checks confirm server readiness before tool calls
- Server persists across agent sessions
openclaw.json:
autoStart: false, you must manually start the server using CLI commands.
Available tools
The plugin registers 10 tools for browser automation. All tools use thecamofox_ prefix to distinguish them from built-in browser tools.
camofox_create_tab
Create a new browser tab with anti-detection fingerprinting. Returns atabId for subsequent operations.
Parameters:
url(string, required) - Initial URL to navigate to
{ "tabId": "abc123", "url": "...", "title": "..." }
camofox_snapshot
Get an accessibility snapshot of the page with element references (e1, e2, etc.) for interaction, plus an optional screenshot.
Parameters:
tabId(string, required) - Tab identifier from create_taboffset(number, optional) - Character offset for paginated snapshots. UsenextOffsetfrom a previous truncated response to see more content.
- Accessibility tree with clickable element refs
- Optional base64 PNG screenshot
- Pagination info if content is truncated (
hasMore,nextOffset)
hasMore in the response and call again with the nextOffset value to retrieve additional content.
camofox_click
Click an element by reference from a snapshot or CSS selector. Parameters:tabId(string, required) - Tab identifierref(string) - Element ref from snapshot (e.g.,e1)selector(string) - CSS selector (alternative to ref)
ref or selector, not both.
camofox_type
Type text into an input field or editable element. Parameters:tabId(string, required) - Tab identifiertext(string, required) - Text to typeref(string) - Element ref from snapshotselector(string) - CSS selector (alternative to ref)pressEnter(boolean) - Press Enter after typing
camofox_navigate
Navigate to a URL or use a search macro like@google_search.
Parameters:
tabId(string, required) - Tab identifierurl(string) - URL to navigate tomacro(string) - Search macro (e.g.,@google_search)query(string) - Search query when using a macro
@google_search@youtube_search@amazon_search@reddit_search@wikipedia_search@twitter_search@yelp_search@spotify_search@netflix_search@linkedin_search@instagram_search@tiktok_search@twitch_search
camofox_scroll
Scroll the page in a specified direction. Parameters:tabId(string, required) - Tab identifierdirection(string, required) - One of:up,down,left,rightamount(number) - Pixels to scroll (optional)
camofox_screenshot
Take a full-page screenshot. Parameters:tabId(string, required) - Tab identifier
camofox_close_tab
Close a browser tab and free resources. Parameters:tabId(string, required) - Tab identifier
camofox_list_tabs
List all open tabs for the current user. Parameters: None Returns: Array of tab objects withtabId, url, title, and userId
camofox_import_cookies
Import cookies from a Netscape-format cookie file. Use this to authenticate to sites like LinkedIn without interactive login. Parameters:cookiesPath(string, required) - Path to cookie file (relative to~/.camofox/cookies/)domainSuffix(string, optional) - Only import cookies matching this domain suffix
1
Generate API key
Cookie import requires authentication:
2
Set environment variable
3
Export cookies from browser
Use a browser extension like “cookies.txt” to export Netscape-format cookies.
4
Place cookie file
5
Import via agent
Ask your agent:
Import my LinkedIn cookies from linkedin.txt
Configuration options
Configure the plugin inopenclaw.json:
Configuration reference
number
default:"9377"
Server port. Change if 9377 conflicts with another service.
boolean
default:"true"
Auto-start server when plugin loads. Set to
false for manual control.number
default:"5"
Maximum concurrent browser sessions. Each user gets an isolated session with separate cookies and storage.
number
default:"3"
Maximum tabs per user session. Prevents resource exhaustion from runaway agents.
number
default:"600000"
Session inactivity timeout in milliseconds. Sessions close after 10 minutes (600000ms) by default.
number
default:"300000"
Kill the browser process after this many milliseconds with no active sessions. Set to
0 to keep the browser running indefinitely.number
default:"128"
Node.js V8 heap limit in megabytes. Increase if you see out-of-memory errors with many concurrent tabs.
Resource limits in context
The default limits are conservative for shared environments:- 5 sessions = 5 simultaneous users/agents
- 3 tabs per session = 15 total tabs maximum
- 10 min session timeout = automatic cleanup of idle agents
- 5 min idle shutdown = browser stops when not in use, restarts on next request
Health check registration
The plugin registers a health check foropenclaw doctor and openclaw status:
- ok - Server reachable and healthy
- warn - Server starting or temporarily unavailable
- error - Server not reachable (check if auto-start disabled)
CLI commands
The plugin adds theopenclaw camofox command with subcommands:
openclaw camofox status
Show server status and active tabs:openclaw camofox start
Manually start the server:autoStart: false in config.
openclaw camofox stop
Stop the managed server process:autoStart: true.
openclaw camofox tabs
List all active browser tabs:openclaw camofox configure
Display configuration help:openclaw.json snippets.
Agent workflow example
Here’s a typical agent workflow using Camofox tools:1
Create tab
Agent calls Receives
camofox_create_tab with a URL:tabId for subsequent operations.2
Get snapshot
Agent calls Receives accessibility tree with element refs:
camofox_snapshot to see the page content:3
Interact with page
Agent types into search box and submits:
4
Get updated snapshot
After navigation completes, agent calls
camofox_snapshot again to see search results with new refs.5
Extract information
Agent parses snapshot text to extract search results and clicks relevant links using new refs from the updated snapshot.
6
Clean up
Agent calls
camofox_close_tab when done:Troubleshooting
Plugin won’t start
Symptom: Health check shows “error” status- Check auto-start
- Check logs
- Verify installation
Verify If
autoStart is not disabled:autoStart: false, either change to true or manually start:Port conflicts
Symptom: “Address already in use” error on port 93771
Find conflicting process
2
Configure custom port
Update
openclaw.json:3
Restart OpenClaw
Server unreachable during tool calls
Symptom: Tool calls fail with connection errorsThe server may still be starting. Wait 15 seconds after OpenClaw launch before the first tool call.
Cookie import returns 403
Symptom:camofox_import_cookies fails with “Forbidden”
Cause: CAMOFOX_API_KEY is not set.
Solution:
Out of memory errors
Symptom: Server crashes with heap out of memory Solution: Increase Node.js heap limit:Disabling built-in browser tools
To use Camofox as the only browser tool in OpenClaw, disable the built-in browser:camofox_* tools. Useful when you need anti-detection for all browsing tasks.