mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-07-30 09:16:07 -04:00
429 lines
21 KiB
Zig
429 lines
21 KiB
Zig
.{
|
|
// MAX_HELP_LEN|
|
|
.general =
|
|
\\usage: {0s} <command> [arguments]
|
|
\\
|
|
\\The commands are:
|
|
\\ agent starts an interactive AI agent that can browse the web
|
|
\\ fetch fetches the specified URL
|
|
\\ help displays this message
|
|
\\ mcp starts an MCP (Model Context Protocol) server (stdio or HTTP)
|
|
\\ run runs a saved script (no LLM), then exits
|
|
\\ serve starts a WebSocket CDP server
|
|
\\ version displays the version of {0s}
|
|
\\
|
|
\\Use "{0s} help <command>" for more information about a command.
|
|
,
|
|
.serve =
|
|
\\usage: {0s} serve [OPTIONS] [COMMON_OPTIONS]
|
|
\\
|
|
\\Starts a WebSocket CDP server.
|
|
\\
|
|
\\options:
|
|
\\ --advertise-host <HOST>
|
|
\\ The host to advertise, e.g. in the /json/version response. Useful,
|
|
\\ for example, when --host is 0.0.0.0.
|
|
\\ Defaults to --host value.
|
|
\\ --cdp-max-connections <INT>
|
|
\\ Maximum number of simultaneous CDP connections.
|
|
\\ Defaults to 16.
|
|
\\ --cdp-max-http-message-size <INT>
|
|
\\ Maximum allowed HTTP request size
|
|
\\ Defaults to 4096 (maximum allowed: 16383)
|
|
\\ --cdp-max-message-size <INT>
|
|
\\ Maximum allowed incoming websocket message size.
|
|
\\ Defaults to 1048576 (1MB)
|
|
\\ --cdp-max-pending-connections <INT>
|
|
\\ Maximum pending connections in the accept queue.
|
|
\\ Defaults to 128.
|
|
\\ --cookie <PATH>
|
|
\\ Path to a JSON file to load cookies from (read-only).
|
|
\\ Defaults to no cookie loading.
|
|
\\ --disable-metrics
|
|
\\ Disables the /metrics endpoint (Prometheus text format).
|
|
\\ Defaults to false (the endpoint is exposed).
|
|
\\ --host <HOST>
|
|
\\ Host of the CDP server.
|
|
\\ Defaults to "127.0.0.1".
|
|
\\ --port <INT>
|
|
\\ Port of the CDP server.
|
|
\\ Defaults to 9222.
|
|
,
|
|
.fetch =
|
|
\\usage: {0s} fetch <url>... [OPTIONS] [COMMON_OPTIONS]
|
|
\\
|
|
\\Fetches one or more URLs. Each URL is loaded in its own page. Passing more
|
|
\\than one URL requires --json.
|
|
\\
|
|
\\options:
|
|
\\ --cookie <PATH>
|
|
\\ Path to a JSON file to load cookies from (read-only).
|
|
\\ Defaults to no cookie loading.
|
|
\\ --cookie-jar <PATH>
|
|
\\ Path to a JSON file to save cookies to on exit (write-only).
|
|
\\ Defaults to no cookie saving.
|
|
\\ --dump <DUMP>
|
|
\\ Dumps the document to stdout.
|
|
\\ Defaults to no dump.
|
|
\\ Allowed values:
|
|
\\ html Serialized HTML of the DOM.
|
|
\\ markdown Converts content to Markdown.
|
|
\\ semantic_tree JSON-serialized semantic tree.
|
|
\\ semantic_tree_text Pruned plain-text semantic tree.
|
|
\\ --inject-script <EXPR>
|
|
\\ JavaScript to execute as the document's <head> is parsed, before any
|
|
\\ other scripts in the page run. Can be passed multiple times; scripts
|
|
\\ run in order.
|
|
\\ --inject-script-file <PATH>
|
|
\\ Like --inject-script, but reads the script from a file. Can be passed
|
|
\\ multiple times; can be mixed with --inject-script and runs in CLI order.
|
|
\\ --json
|
|
\\ Capture and print the status of the fetch as JSON. A single URL
|
|
\\ prints one object; multiple URLs print {{"results": [ ... ]}} with
|
|
\\ one object per URL. When used with --dump <MODE> the dumped
|
|
\\ content is wrapped within each object.
|
|
\\ --metrics
|
|
\\ Write metrics (Prometheus text format) to stdout on exit, after
|
|
\\ any --dump output.
|
|
\\ Defaults to false.
|
|
\\ --strip-mode <STRIP>
|
|
\\ Comma-separated list of tag groups to remove from dump.
|
|
\\ Defaults to no-strip.
|
|
\\ Allowed values:
|
|
\\ js Script and link[as=script, rel=preload].
|
|
\\ ui Includes img, picture, video, CSS and SVG.
|
|
\\ css Includes style and link[rel=stylesheet].
|
|
\\ invisible Best-effort (e.g. display:none) hidden elements
|
|
\\ full Strip everything.
|
|
\\ --terminate-ms <INT>
|
|
\\ Hard deadline in milliseconds. After this time elapses, JavaScript
|
|
\\ execution is forcibly terminated (e.g. for pages with endless scripts).
|
|
\\ Unlike --wait-ms, which only stops waiting, --terminate-ms aborts the
|
|
\\ page.
|
|
\\ Defaults to no terminate.
|
|
\\ --wait-ms <INT>
|
|
\\ Wait time in milliseconds. Supersedes all other --wait parameters.
|
|
\\ Defaults to 5000.
|
|
\\ --wait-script <EXPR>
|
|
\\ Wait for a JavaScript expression to return truthy. Checked after
|
|
\\ --wait-until condition is met.
|
|
\\ --wait-script-file <PATH>
|
|
\\ Like --wait-script, but reads the script from a file.
|
|
\\ --wait-selector <QUERY>
|
|
\\ Wait for an element matching the CSS selector to appear. Checked after
|
|
\\ --wait-until condition is met.
|
|
\\ --wait-until <UNTIL>
|
|
\\ Wait until the specified event. Checked before other --wait-* options.
|
|
\\ Defaults to 'done'. If --wait-selector, --wait-script or
|
|
\\ --wait-script-file specified, defaults to none.
|
|
\\ Allowed values: "load", "domcontentloaded", "networkalmostidle",
|
|
\\ "networkidle", "done".
|
|
\\ --with-base
|
|
\\ Add a <base> tag in dump.
|
|
\\ Defaults to false.
|
|
\\ --with-frames
|
|
\\ Includes the contents of iframes.
|
|
\\ Defaults to false.
|
|
,
|
|
.mcp =
|
|
\\usage: {0s} mcp [OPTIONS] [COMMON_OPTIONS]
|
|
\\
|
|
\\Starts an MCP (Model Context Protocol) server. Defaults to stdio; pass
|
|
\\--port to serve over HTTP with an independent browsing session per client.
|
|
\\
|
|
\\options:
|
|
\\ --cdp-port <INT>
|
|
\\ Also run a CDP (WebSocket) server on this port. Cannot be
|
|
\\ combined with --port (they share one network listener).
|
|
\\ Defaults to disabled.
|
|
\\ --cookie <PATH>
|
|
\\ Path to a JSON file to load cookies from (read-only).
|
|
\\ Defaults to no cookie loading.
|
|
\\ --cookie-jar <PATH>
|
|
\\ Path to a JSON file to save cookies to on exit (write-only).
|
|
\\ Defaults to no cookie saving.
|
|
\\ --host <HOST>
|
|
\\ Host to bind when --port is set (e.g. 0.0.0.0 for all interfaces).
|
|
\\ Defaults to "127.0.0.1".
|
|
\\ --port <INT>
|
|
\\ Serve MCP over HTTP on this port instead of stdio. Clients POST
|
|
\\ JSON-RPC to /mcp; route requests to a session with the
|
|
\\ Mcp-Session-Id header.
|
|
\\ Defaults to stdio (no HTTP server).
|
|
,
|
|
.agent =
|
|
\\agent command
|
|
\\Starts an interactive AI agent that can browse the web.
|
|
\\
|
|
\\Usage:
|
|
\\ {0s} agent [SCRIPT] [OPTIONS] [COMMON_OPTIONS]
|
|
\\
|
|
\\Examples:
|
|
\\ {0s} agent (auto-detects API key from env)
|
|
\\ {0s} agent --provider anthropic --model claude-sonnet-4-6
|
|
\\ {0s} agent --provider huggingface (HF serverless router, HF_TOKEN)
|
|
\\ {0s} agent --provider ollama --model qwen3.5:latest
|
|
\\ {0s} agent --no-llm (basic slash-command-only REPL)
|
|
\\ {0s} run script.js (replay a saved script; see `run`)
|
|
\\ {0s} agent --task "..." --save out.js (synthesize a replayable script)
|
|
\\
|
|
\\Arguments:
|
|
\\[SCRIPT]
|
|
\\ Optional path to a .js script. Runs the script (no LLM calls) and
|
|
\\ exits; `{0s} run SCRIPT` is the preferred spelling. With no script
|
|
\\ and no --task, the REPL starts; from there /load runs a script and
|
|
\\ /save exports the session to a file.
|
|
\\ Caution: .js files can contain evaluate(...) calls that run
|
|
\\ arbitrary JavaScript in the page. Only run scripts you trust, the
|
|
\\ same way you would a shell script.
|
|
\\
|
|
\\Options:
|
|
\\ -a, --attach <PATH>
|
|
\\ Feed a local file to the model alongside --task. Repeatable, one
|
|
\\ file per flag. Text files are inlined (max 512 KiB each);
|
|
\\ images/audio/pdf are base64-encoded (max 20 MiB each).
|
|
\\ Requires --task.
|
|
\\ --base-url <URL>
|
|
\\ Override the API base URL for the provider. Defaults to the
|
|
\\ provider's standard endpoint.
|
|
\\ Ollama default: http://localhost:11434/v1.
|
|
\\ llama.cpp default: http://localhost:8080/v1.
|
|
\\ Hugging Face default is the serverless router
|
|
\\ (https://router.huggingface.co/v1);
|
|
\\ point this at a dedicated Inference Endpoint to use one.
|
|
\\ --effort <LEVEL>
|
|
\\ Per-turn reasoning budget, mapped to each provider's native
|
|
\\ thinking/reasoning knob. Default: low in the REPL (snappy turns),
|
|
\\ medium in one-shot --task mode, unless the provider sets its own
|
|
\\ default (Mistral defaults to none, as its default model rejects
|
|
\\ effort). In the REPL, use /effort to change it.
|
|
\\ Allowed values: none, minimal, low, medium, high, xhigh.
|
|
\\ --list-models
|
|
\\ Print the model IDs usable with `agent` for --provider, one per
|
|
\\ line, sorted, and exit. Auto-detects the provider from env when
|
|
\\ --provider is omitted.
|
|
\\ --model <MODEL>
|
|
\\ The model name to use. Defaults to a sensible default per
|
|
\\ provider. In the REPL, use /model to list and change models for
|
|
\\ the active provider.
|
|
\\ --no-llm
|
|
\\ Force the basic REPL even when an API key is present or
|
|
\\ --provider is set. Useful for testing slash commands without
|
|
\\ burning tokens, or for disabling the LLM in a saved command
|
|
\\ without editing the existing flags. Wins over --provider.
|
|
\\ --provider <PROVIDER>
|
|
\\ The AI provider. When omitted, lightpanda auto-detects an API
|
|
\\ key from your environment (ANTHROPIC_API_KEY, OPENAI_API_KEY,
|
|
\\ GOOGLE_API_KEY/GEMINI_API_KEY, HF_TOKEN, AI_GATEWAY_API_KEY,
|
|
\\ MISTRAL_API_KEY). With exactly one key set: that provider is
|
|
\\ used. With multiple keys on a TTY: you'll be prompted to pick;
|
|
\\ in non-interactive contexts, pass --provider explicitly. With
|
|
\\ no keys set: falls back to the basic REPL (slash commands only,
|
|
\\ no natural-language input, no LOGIN / ACCEPT_COOKIES keywords).
|
|
\\
|
|
\\ Local servers (ollama, llama_cpp) are never auto-detected (they
|
|
\\ need no key); select them explicitly with --provider ollama /
|
|
\\ --provider llama_cpp.
|
|
\\
|
|
\\ Allowed values: "anthropic", "openai", "gemini", "huggingface",
|
|
\\ "vercel", "mistral", "ollama", "llama_cpp".
|
|
\\ In the REPL, use /provider to list and change providers.
|
|
\\ --save <PATH>
|
|
\\ Synthesize a replayable .js script from the --task run and write
|
|
\\ it to PATH, instead of printing the answer. Replay it later with
|
|
\\ `run PATH` (no LLM calls). Overwrites PATH if it exists.
|
|
\\ Requires --task.
|
|
\\ --system-prompt <STRING>
|
|
\\ Override the default system prompt.
|
|
\\ --task <STRING>
|
|
\\ One-shot mode: run a single user turn, print the final answer
|
|
\\ to stdout, and exit. Conflicts with the positional script. With
|
|
\\ --save, the answer is suppressed and a script is written instead.
|
|
\\ --verbosity <LEVEL>
|
|
\\ Stderr chatter level. Default: high when --task captures stderr
|
|
\\ to a pipe or file; low otherwise. low/medium also raise
|
|
\\ --log-level to err (mutes page-side console.error spam) unless
|
|
\\ --log-level is set explicitly.
|
|
\\ Allowed values:
|
|
\\ low silent in --task mode (final answer to stdout only);
|
|
\\ spinner + summary in REPL.
|
|
\\ medium + one `● [tool: ...]` line per call.
|
|
\\ high + the matching `[result: ...]` body (required by the
|
|
\\ benchmarks harness).
|
|
\\
|
|
\\The provider, model, effort, and verbosity you choose in the REPL are
|
|
\\remembered per-directory in .lp-agent.zon and reused on the next run.
|
|
\\
|
|
\\API keys are read from the environment: ANTHROPIC_API_KEY, OPENAI_API_KEY,
|
|
\\GOOGLE_API_KEY/GEMINI_API_KEY, HF_TOKEN, AI_GATEWAY_API_KEY, or
|
|
\\MISTRAL_API_KEY. The local servers (Ollama, llama.cpp) do not require an
|
|
\\API key.
|
|
,
|
|
.run =
|
|
\\run command
|
|
\\Runs a saved script, then exits. No LLM calls, no API key needed.
|
|
\\
|
|
\\Usage:
|
|
\\ {0s} run <SCRIPT> [COMMON_OPTIONS]
|
|
\\
|
|
\\Examples:
|
|
\\ {0s} run script.js (replay a saved script)
|
|
\\
|
|
\\Arguments:
|
|
\\<SCRIPT>
|
|
\\ Path to a .js script to run, then exit. Produce one with
|
|
\\ `{0s} agent --task "..." --save script.js`, or `/save` from the
|
|
\\ agent REPL.
|
|
\\ Caution: .js files can contain evaluate(...) calls that run
|
|
\\ arbitrary JavaScript in the page. Only run scripts you trust, the
|
|
\\ same way you would a shell script.
|
|
,
|
|
.version =
|
|
\\usage: {0s} version [OPTIONS]
|
|
\\
|
|
\\Displays the version of {0s}.
|
|
\\
|
|
\\options:
|
|
\\ --check
|
|
\\ Checks whether a newer release of {0s} is available. When one is
|
|
\\ found, prints the running version, the latest release, and how to
|
|
\\ update.
|
|
,
|
|
.help =
|
|
\\usage: {0s} help
|
|
\\
|
|
\\Displays help message for a command.
|
|
,
|
|
.common_options =
|
|
\\common options:
|
|
\\ --block-cidrs <LIST>
|
|
\\ Additional CIDR ranges to block, comma-separated.
|
|
\\ Prefix with '-' to allow (exempt from blocking).
|
|
\\ e.g. --block-cidrs 10.0.0.0/8,-10.0.0.42/32
|
|
\\ Can be combined with --block-private-networks.
|
|
\\ --block-urls <LIST>
|
|
\\ URL patterns to block, comma-separated. Patterns are matched
|
|
\\ case-insensitively against the full URL and '*' is a wildcard.
|
|
\\ e.g. --block-urls "*doubleclick*,*://*/*.png"
|
|
\\ --block-private-networks
|
|
\\ Block HTTP requests to private/internal IP addresses after DNS
|
|
\\ resolution.
|
|
\\ Defaults to false.
|
|
\\ --ca-cert <PATH>
|
|
\\ Load TLS root certificates from a PEM file. Can be passed
|
|
\\ multiple times. When any --ca-cert or --ca-path is given, the
|
|
\\ system trust store is replaced by these certificates.
|
|
\\ --ca-path <PATH>
|
|
\\ Load TLS root certificates from every file in a directory. Unlike
|
|
\\ openssl, the directory does not need to be c_rehash'ed. Can be
|
|
\\ passed multiple times. When any --ca-cert or --ca-path is given,
|
|
\\ the system trust store is replaced by these certificates.
|
|
\\ --cookie <PATH>
|
|
\\ Path to a JSON file to load cookies from (read-only).
|
|
\\ Defaults to no cookie loading.
|
|
\\ --cookie-jar <PATH>
|
|
\\ Path to a JSON file to save cookies to on exit (write-only).
|
|
\\ Defaults to no cookie saving.
|
|
\\ --disable-subframes
|
|
\\ Skip loading <iframe> elements. The parser still registers them in the
|
|
\\ DOM, but no child frame or Page.frameAttached events are produced.
|
|
\\ Defaults to false.
|
|
\\ --disable-workers
|
|
\\ Skip loading dedicated Web Workers. The Worker constructor still
|
|
\\ returns a Worker object, but no script fetch is initiated and its scope
|
|
\\ never runs.
|
|
\\ Defaults to false.
|
|
\\ --enable-external-stylesheets
|
|
\\ Fetch external <link rel=stylesheet> resources so their rules
|
|
\\ contribute to computed styles (and therefore to visibility checks like
|
|
\\ display, visibility, opacity, pointer-events).
|
|
\\ Defaults to false, except in agent mode with an LLM, where it is on.
|
|
\\ --http-cache-dir <PATH>
|
|
\\ Directory used as a filesystem cache for network resources. Omitting
|
|
\\ this disables caching.
|
|
\\ Defaults to no caching.
|
|
\\ --http-connect-timeout <INT>
|
|
\\ Time in ms to establish an HTTP connection before timing out. 0 means
|
|
\\ never.
|
|
\\ Defaults to 0.
|
|
\\ --http-max-concurrent <INT>
|
|
\\ Maximum number of concurrent HTTP requests.
|
|
\\ Defaults to 40.
|
|
\\ --http-max-host-open <INT>
|
|
\\ Maximum open connections to a given host:port.
|
|
\\ Defaults to 6.
|
|
\\ --http-max-response-size <INT>
|
|
\\ Limits the acceptable response size for any request
|
|
\\ e.g. XHR, fetch, script loading.
|
|
\\ Defaults to 1 GiB.
|
|
\\ --http-proxy <URL>
|
|
\\ HTTP proxy for all HTTP requests.
|
|
\\ username:password may be included for basic auth.
|
|
\\ Defaults to none.
|
|
\\ --http-timeout <INT>
|
|
\\ Maximum time in ms the transfer is allowed to complete. 0 means never.
|
|
\\ Defaults to 10000.
|
|
\\ --insecure-disable-tls-host-verification
|
|
\\ Disables host verification on all HTTP requests.
|
|
\\ Only set this if you understand and accept the risk.
|
|
\\ --log-filter-scopes <SCOPES>
|
|
\\ Filter logs per scope, comma-separated, applied left-to-right.
|
|
\\ "-X" (or bare "X") filters out a scope, "+X" filters it in, and
|
|
\\ "all" targets every scope. e.g. "http,unknown_prop" hides those
|
|
\\ two; "-all,+cdp" hides everything except cdp.
|
|
\\ --log-format <FORMAT>
|
|
\\ The log format.
|
|
\\ Defaults to {2s}.
|
|
\\ Allowed values: "pretty", "logfmt".
|
|
\\ --log-level <LEVEL>
|
|
\\ The log level.
|
|
\\ Defaults to {1s}.
|
|
\\ Allowed values: "debug", "info", "warn", "error", "fatal".
|
|
\\ --obey-robots
|
|
\\ Fetches and obeys robots.txt of the target page.
|
|
\\ Defaults to false.
|
|
\\ --proxy-bearer-token <TOKEN>
|
|
\\ Token sent for bearer authentication with the proxy:
|
|
\\ Proxy-Authorization: Bearer <token>.
|
|
\\ --storage-engine <ENGINE>
|
|
\\ The storage engine to use.
|
|
\\ Defaults to none.
|
|
\\ Allowed values: "none", "sqlite".
|
|
\\ --storage-sqlite-path <PATH>
|
|
\\ Path to the SQLite database file for persistent storage.
|
|
\\ Use ":memory:" for in-memory storage.
|
|
\\ --user-agent <STRING>
|
|
\\ Override the User-Agent header entirely. Must not impersonate other
|
|
\\ browsers; any value containing "Mozilla" is forbidden. The browser
|
|
\\ still sends Sec-Ch-Ua. Incompatible with --user-agent-suffix.
|
|
\\ --user-agent-suffix <STRING>
|
|
\\ Suffix appended to the Lightpanda/X.Y User-Agent.
|
|
\\ --v8-flags-unsafe <FLAGS>
|
|
\\ Flags passed as-is to the V8 JavaScript engine, space-separated.
|
|
\\ e.g. --v8-flags-unsafe "--expose-gc --stack-size 1000".
|
|
\\ Unsupported escape hatch: V8 does not validate flags against the
|
|
\\ prebuilt snapshot, so an incompatible flag can misbehave or
|
|
\\ crash at any point.
|
|
\\ --v8-max-heap-mb <INT>
|
|
\\ Maximum V8 heap size in megabytes, per browser instance. Values
|
|
\\ below ~16 are clamped by V8 and all behave the same.
|
|
\\ Defaults to the V8 default (based on available memory).
|
|
\\ --watchdog-ms <INT>
|
|
\\ Terminates JavaScript when the browser stalls — stays busy for
|
|
\\ this long without returning to its network poll (e.g. a page
|
|
\\ stuck in an endless script loop). In serve mode the CDP
|
|
\\ connection is then closed. Unlike fetch's --terminate-ms, an idle
|
|
\\ or normally-working page never trips this.
|
|
\\ Defaults to [a very generous] 30000, disable by setting to 0.
|
|
\\ --web-bot-auth-domain <DOMAIN>
|
|
\\ Your domain, e.g. yourdomain.com.
|
|
\\ --web-bot-auth-key-file <PATH>
|
|
\\ Path to the Ed25519 private key PEM file.
|
|
\\ --web-bot-auth-keyid <STRING>
|
|
\\ The JWK thumbprint of your public key.
|
|
\\ --ws-max-concurrent <INT>
|
|
\\ Maximum number of concurrent WebSocket connections.
|
|
\\ Defaults to 8.
|
|
,
|
|
}
|