Docker¶
The repository includes a containerized runtime that starts:
- noVNC on port
6080 - Chromium with remote debugging on port
9222 - the browser agent A2A server on port
8001 - the desktop agent A2A server on port
8002
MobileAgent is available in the Python package and can run as an A2A server,
but the default Docker runtime does not start a mobile A2A server or provision an
Android emulator/device. Start mobile_agent --mode a2a separately with an
ADB-reachable device when mobile automation is needed.
Environment File¶
The wrapper script uses .env from the repository root when it exists:
Use a different file:
Example .env¶
GEMINI_API_KEY=your_key_here
UISURF_PROVIDER=gemini
UISURF_MODEL_ID=gemini-3-flash-preview
AGENT_HOST=0.0.0.0
BROWSER_AGENT_PORT=8001
DESKTOP_AGENT_PORT=8002
BROWSER_AGENT_PUBLIC_URL=http://localhost:6080/browser/
DESKTOP_AGENT_PUBLIC_URL=http://localhost:6080/desktop/
BROWSER_FAST_MODE=true
SESSION_CONTROL_MODE=agent
INCLUDE_THOUGHTS=false
DESKTOP_OBSERVATION_DELAY_MS=750
MAX_OBSERVATION_IMAGES=2
OBSERVATION_SCALE=0.75
PASSWORD_REQUIRED=false
Session Control¶
SESSION_CONTROL_MODE controls the default for AUTO_MODE inside the container:
agent: automatic safety approvalmanual: user confirmation required
Per-agent overrides:
BROWSER_AGENT_AUTO_MODEDESKTOP_AGENT_AUTO_MODE
The default container starts only the browser and desktop A2A servers. Mobile
settings such as MOBILE_AGENT_PORT, MOBILE_AGENT_PUBLIC_URL, and
MOBILE_DEVICE_SERIAL apply when you start mobile_agent --mode a2a separately
on a host with an ADB-reachable Android device or emulator.