browser.headless | boolean | Run Chromium headless. Default true. |
browser.noSandbox | boolean | Disable the Chromium sandbox. Default false (sandbox ON). See below. |
browser.cdpEndpoint | string | null | Connect to an existing Chrome (http://, https://, ws://, wss://, channel:). null = launch a fresh browser. |
tools.profile | enum | One of core, browse, interact, develop, audit, full. Takes precedence over groups. |
tools.groups | string[] | Explicit tool groups. Ignored when profile is set. |
snapshot.depth | int > 0 | Snapshot ring-buffer depth. |
snapshot.autoSnapshot | enum | every_action, observe_only, manual. |
rendering.includeIframes | boolean | Include iframe content in page representations. |
rendering.iframeDepth | int > 0 | Max iframe nesting depth. |
dialog.autoDismiss | enum | none, accept_alerts, accept_all, dismiss_all. |
output.dir | string | Directory for large tool output files. |
limits.maxInteractiveElements | int > 0 | Max interactive elements serialized before the list is truncated. Default 2000. |
limits.maxFullContentChars | int > 0 | Max characters of full_content text before truncation. Default 200000. |
limits.maxResponseBytes | int > 0 | Total byte ceiling for a formatted page response; above this the response degrades to a compact summary with an output_file suggestion. Default 1000000. |
limits.maxEvaluateBytes | int > 0 | Byte ceiling for a charlotte_evaluate result before it is truncated. Default 256000. |
http.port | int 1–65535 | Port for --http. Default 3737. CLI: --port. |
http.host | string | Bind address for --http. Default 127.0.0.1 (loopback only). |
http.authToken | string | null | Static bearer token. Required in HTTP mode — no default. CHARLOTTE_AUTH_TOKEN wins over this. |
http.profile | enum | Tool profile served over HTTP, fixed at startup. Default browse. --profile overrides it. |
http.debugRequests | boolean | Diagnostics only, not for production. Logs every request’s method, path, and headers (credentials redacted) plus its response status to stderr. Default false. Env: CHARLOTTE_DEBUG_HTTP=1. |
http.publicOrigin | string | null | The origin claude.ai (or any OAuth client) reaches the server at, e.g. https://charlotte.example.com. Enables the OAuth facade and is added to the Host-header allowlist. null (default) disables the facade — bearer-token clients only. |
http.allowedHosts | string[] | Extra Host header hostnames to accept beyond the always-allowed set (loopback, bind host, publicOrigin’s hostname). Requests with any other Host are rejected (DNS-rebind guard). Default []. |
http.sessionIdleTtlMs | int > 0 | Idle ms with no authorized /mcp activity before the browser is torn down (the next tool call relaunches it). Default 1800000 (30 min). No enforced minimum — a very low value will tear the browser down between (or even during) requests; don’t set it below your slowest expected request. |
http.maxSessions | int > 0 | Reserved. Concurrent sessions; today there is exactly one. Validated, not yet consumed. |
http.allowPrivateNetworks | string[] | CIDR allowlist punching holes in the SSRF guard’s default-deny of loopback / RFC1918 / link-local / cloud-metadata navigation. Empty (default) = all private ranges denied. |
http.enableDevTools | boolean | Reserved. Expose filesystem-serving dev tools over HTTP. Validated, not yet consumed. |
http.artifactDelivery | enum | Reserved. inline or resource. Validated, not yet consumed (inline delivery with a size cap is the live behavior). |