Override HTTP worker entry (pair with browser override)
OCCAM_BROWSER_EXTRACT_SCRIPT
auto
Override browser worker entry
OCCAM_NODE_BIN
stamped by launcher from install record / process.execPath; else {OCCAM_HOME}/bin/node / well-known paths / PATH
Absolute Node used to spawn all workers. Advanced override only — GUI MCP host configs should not set this. Install writes {OCCAM_HOME}/runtime/node-bin; scripts/launch-mcp-host.mjs and occam-wrapper.sh stamp OCCAM_NODE_BIN for Core.
chrome | msedge | chromium | unset. Unset (default): prefer an installed system Chrome/Edge when found, else bundled Playwright Chromium. Set chromium to force the bundled browser.
OCCAM_BROWSER_PREFER_SYSTEM
on
When OCCAM_BROWSER_CHANNEL is unset, prefer system Chrome/Edge if present. Set 0 to always use bundled Chromium unless a channel/path is explicit.
OCCAM_BROWSER_AUTOINSTALL
on
On first genuine browser need with no browser installed, occam provisions the user-level Chromium itself and reports browser_provisioned. Set 0 to instead return a typed browser_required failure to run manually. System libraries (root) are never auto-installed. Auto-provision is skipped when a system browser is configured or auto-detected.
Optional absolute path to a local donsetch binary (OCCAM_SEARCH_PROVIDER=donsetch). Otherwise donsetch must be on PATH. Never bundled (AGPL).
Occam does not index the web. The DuckDuckGo default is disclosed discovery for
first-run Research; operators who want a dedicated backend set SearXNG/Brave/Tavily
(or off for air-gap). DuckDuckGo may soft-block automated egress with an anomaly
challenge — Occam returns search_http_202 and does not solve CAPTCHAs.
Off by default. After pdf_no_text_layer, the HTTP worker may call a local helper:
Variable
Purpose
OCCAM_PDF_OCR
1 / true enables the OCR attempt
OCCAM_PDF_OCR_BIN
Executable (or node) that accepts the PDF path as the last argv and prints text to stdout
OCCAM_PDF_OCR_ARGS
Optional extra argv before the PDF path (e.g. path to a .mjs helper)
OCCAM_PDF_OCR_TIMEOUT_MS
Default 60000 (1k–300k)
Honest notes on failure: pdf_ocr_unconfigured, pdf_ocr_timeout, pdf_ocr_failed, pdf_ocr_empty. Occam does not ship an OCR engine.
Evaluation and implementation-budget decision:
PDF/OCR capability eval.
Narrows which core tools appear in tools/list (and in server instructions). Default reader
keeps the day-to-day read surface (8 tools). Set OCCAM_PROFILE=full for all fifteen (including
playbook heal/save). Opt-in tools above are independent — still require their own flags.
After configure, occam_transcode / occam_digest that omitmax_tokens / per_url_max_tokens use ~20% of the context (clamped 512–16384). Explicit max_tokens always wins. Response includes suggestedProfile (reader / researcher / full) as advisory only — it does not change OCCAM_PROFILE.
Maximum local/remote WebSocket MCP text message (65536–16777216)
Remote startup requires either an HTTPS OCCAM_JWT_ISSUER suitable for OpenID Connect discovery or
an explicit OCCAM_JWT_METADATA_URI. The deprecated OCCAM_JWT_JWKS_URI alias is still read as a
metadata-document URI; do not point it directly at raw JWKS JSON. Access tokens belong only in the
WebSocket handshake's Authorization: Bearer header. URI query tokens are rejected.
Override for update-check — default https://api.github.com/repos/ContextForgeAI/occam/releases/latest (stable-only; set OCCAM_LATEST_VERSION during prerelease)