Configuration
July 16, 2026 ยท View on GitHub
Configuration controls browser access, strict accessibility execution, and the macOS agent cursor.
Files
Global config:
~/.pi/agent/extensions/pi-computer-use.json
Project config:
.pi/computer-use.json
Project config overrides global config. Environment variables override both.
Example:
{
"browser_use": true,
"managed_browser": "chrome",
"headless": false,
"cursor_overlay": true
}
Run /computer-use in Pi to show the active config and its source.
Options
browser_use
Default: true
When false, the extension refuses known browser windows. This is useful for projects that should not control browsers.
Known browser families include Safari, Chrome and Chromium-family browsers, Firefox, Arc, Brave, Edge, Vivaldi, and Helium.
managed_browser
Default: "chrome"
Selects "helium" or "chrome" for launch_browser. The debugging port is always allocated internally and isn't part of the model-facing contract.
headless
Default: false
When true, actions must remain in the background. Raw pointer events, raw keyboard events, foreground focus fallback, cursor takeover, and the agent cursor overlay are blocked. When false (the default), Pi prefers verified semantic activation when it is credible, preserves the focus established by editable clicks for dependent keyboard input, and may retry keyboard input in the foreground when a background attempt conclusively produced no value change. Ambiguous pointer actions are never replayed blindly.
cursor_overlay
Default: true
When true, macOS pointer actions enqueue a click-through agent cursor animation to the native grounded point during non-headless background delivery. Foreground actions that control the physical cursor don't display the overlay. The overlay doesn't move the system pointer, accept input, or delay the action. Set it to false for invisible automation. headless: true always suppresses it regardless of this setting.
Environment variables
PI_COMPUTER_USE_BROWSER_USE=0
PI_COMPUTER_USE_BROWSER_USE=1
PI_COMPUTER_USE_MANAGED_BROWSER=helium
PI_COMPUTER_USE_MANAGED_BROWSER=chrome
PI_COMPUTER_USE_HEADLESS=0
PI_COMPUTER_USE_HEADLESS=1
PI_COMPUTER_USE_CURSOR_OVERLAY=0
PI_COMPUTER_USE_CURSOR_OVERLAY=1
PI_COMPUTER_USE_DELIVERY_POLICY=default
PI_COMPUTER_USE_DELIVERY_POLICY=foreground
PI_COMPUTER_USE_CDP_PORT=9222
PI_COMPUTER_USE_HEADLESS=1 prohibits foreground fallback. PI_COMPUTER_USE_DELIVERY_POLICY is a debugging input; normal policy belongs in configuration rather than individual model calls.
CDP browser support
PI_COMPUTER_USE_CDP_PORT enables Chrome DevTools Protocol support for Chromium-family browsers. Launch the browser with --remote-debugging-port=<port> and set this variable to the same port.
When CDP is active, discovered pages participate in the same root and state system as desktop UI. launch_browser configures CDP automatically and returns an observed page state. navigate_browser and evaluate_browser accept only CDP browser-page states; native browser windows continue to use the normal desktop observe/act tools.
With the variable unset, CDP is inactive.