How siva010505/xenon works
Purpose and operating model
XENON is a Windows-focused AI browser assistant for a user-launched Chrome instance. A Chrome side-panel extension collects tasks and settings, then reaches Python automation services that control or inspect the host browser through its debugging-enabled session. Setup scripts provision dependencies, native messaging registration, and the dedicated Chrome launch profile.
Key entry points: setup.bat, Launch_Xenon_Chrome.bat, server.py, and extension/manifest.json.
Chrome extension UI and lifecycle
The extension is the user-facing boundary. Its side panel hosts task interaction and settings/personal-information capture; speech support is a separate extension page. A background/service-worker layer manages extension lifecycle and communication outside the side-panel document.
Core paths:
• extension/sidepanel.html
• extension/sidepanel.js
• extension/service-worker.js
• extension/speech.js
Native messaging bridge
Chrome native messaging provides a local process boundary between the extension and Python. The extension declares a native host, while the bridge reads/writes the native-messaging protocol and can mediate requests to local automation/server processes. Windows installation scripts register the host manifest with Chrome.
Core paths:
• extension/com.xenon.server.json
• extension/host/manifest.json
• extension/host/bridge.py
• native_host.py
Python server and agent orchestration
The Python backend is the control plane for requests originating from the extension/native host. It selects and runs AI-driven browser automation workflows, including general browser-use tasks and deeper research workflows. Agent code is separated from browser primitives so task strategy can evolve independently of Chrome connection details.
Core paths:
• server.py
• src/agent/browser_use/browser_use_agent.py
• src/agent/deep_research/deep_research_agent.py
• src/controller/custom_controller.py
Browser automation boundary
Browser integration is encapsulated in custom browser and context modules. This is the boundary where agent decisions become browser actions—navigation, DOM/vision-based interaction, extraction, and form completion—against the debugging-enabled Chrome session rather than an extension-owned page model.
Core paths:
• src/browser/custom_browser.py
• src/browser/custom_context.py
• Launch_Xenon_Chrome.bat
LLM, configuration, and tool integration
Agent execution is provider-agnostic: LLM provider selection and runtime configuration are centralized in utilities, supporting cloud and local model providers named in the project documentation. An MCP client indicates an additional external-tool/protocol integration boundary available to agents.
Core paths:
• src/utils/llm_provider.py
• src/utils/config.py
• src/utils/mcp_client.py
• requirements.txt
Runtime and deployment assumptions
The material runtime is Python 3.11+ on Windows, Chrome with a dedicated debugging profile, and extension APIs/native messaging. Setup installs Python and browser-automation dependencies, configures a hidden/background launcher, and registers native-host integration. External services are the user-selected LLM APIs or local Ollama endpoint; credentials are supplied through the extension settings flow.
Core paths:
• setup.bat
• setup_helper.py
• register_native_host.bat
• start_xenon_silent.vbs
Main entry points: server.py Automation Server · custom_controller.py Custom Controller · service-worker.js Service Worker · manifest.json Native Host Manifest
Components 21
Windows Setup
- Setup · Provisions dependencies and local integration.
setup.bat - Setup Helper
setup_helper.py - Native Host Registration · Registers the Chrome native-messaging host on Windows.
register_native_host.bat
Chrome Extension
- Side Panel UI · Collects tasks, settings, and personal information.
extension/sidepanel.js - Extension Manifest · Declares extension capabilities and native-host access.
extension/manifest.json - Service Worker · Manages background lifecycle and communication.
extension/service-worker.js - Speech Support
extension/speech.js
Native Messaging
- Native Host Manifest · Defines the host executable and allowed Chrome extension.
extension/host/manifest.json - Native Bridge · Translates Chrome native-messaging streams into local requests.
extension/host/bridge.py - Native Host Entrypoint
native_host.py
Python Control Plane
- Automation Server · Control plane for extension-originated automation requests.
server.py - Browser-Use Agent · Runs general AI-driven browser tasks.
src/agent/browser_use/browser_use_agent.py - Deep Research Agent · Runs deeper research workflows.
src/agent/deep_research/deep_research_agent.py - Custom Controller · Coordinates agent actions and task execution.
src/controller/custom_controller.py
Browser Automation
- Debug Chrome Launcher · Launches Chrome with XENON's dedicated debugging profile.
Launch_Xenon_Chrome.bat - Custom Browser · Connects agent actions to the debugging-enabled Chrome session.
src/browser/custom_browser.py - Custom Context · Provides navigation, interaction, extraction, and form-completion context.
src/browser/custom_context.py
Model & Tool Integrations
- Runtime Configuration · Centralizes provider selection and runtime settings.
src/utils/config.py - LLM Provider · Selects cloud or local model providers.
src/utils/llm_provider.py - MCP Client · Connects agents to external MCP tools.
src/utils/mcp_client.py - LLM APIs / Ollama · User-selected cloud APIs or local Ollama endpoint.
Connections 21
- Setup → Setup Helper: runs
- Setup → Native Host Registration: installs
- Native Host Registration → Native Host Manifest: registers
- Extension Manifest → Native Host Manifest: declares host
- Side Panel UI → Service Worker: extension messages
- Speech Support → Service Worker: extension messages
- Service Worker → Native Bridge: native messaging
- Native Host Manifest → Native Host Entrypoint: launches
- Native Host Entrypoint → Native Bridge: hosts
- Native Bridge → Automation Server: local requests
- Automation Server → Browser-Use Agent: dispatches tasks
- Automation Server → Deep Research Agent: dispatches research
- Browser-Use Agent → Custom Controller: uses
- Deep Research Agent → Custom Controller: uses
- Custom Controller → Custom Browser: browser actions
- Custom Browser → Custom Context: creates context
- Debug Chrome Launcher → Custom Browser: debugging session
- Automation Server → Runtime Configuration: loads
- Runtime Configuration → LLM Provider: configures
- LLM Provider → LLM APIs / Ollama: invokes
- Custom Controller → MCP Client: uses tools