Skip to main content

Setup & Requirements

Get your Xenon environment ready for autonomous mobile automation. This guide covers hardware prerequisites, software dependencies, and installation steps for both standalone and distributed deployments.


Prerequisites​

Operating System​

  • Android Automation: macOS or Linux (Ubuntu 20.04+ recommended).
  • iOS Automation: macOS only (required for Xcode and simulator orchestration).

Software Dependencies​

  • Node.js: LTS version (v18.x or v20.x recommended).
  • Appium: version 2.0.0 or higher.
  • Java (JDK): version 11 or higher (required for Android /adb).
  • Drivers:
    • appium-uiautomator2-driver (for Android)
    • appium-xcuitest-driver (for iOS)
  • iOS Utilities (for real device logs):
    • libimobiledevice (specifically idevicesyslog)
    • go-ios (optional high-performance alternative)

Hardware Requirements​

Xenon is engineered for high-density labs. Ensure your host machine meets these minimum specs based on your workload:

WorkloadCPURAMStorage
Local Dev (1-2 devices)4 Cores8 GB20 GB (SSD)
High-Density Lab (8+ devices)16+ Cores32+ GB500 GB (NVMe)
Visual AI / Omni-VisionApple Silicon or discrete GPU16+ GBAdditional 5GB for models

Installation​

Install the Xenon plugin and the Dashboard directly from the NPM registry:

# Install Xenon Plugin
appium plugin install --source=npm appium-xenon

# Install Dashboard (Required for Web UI)
appium plugin install --source=npm appium-dashboard

Activation​

The plugin must be explicitly activated when starting the Appium server.

appium server -ka 800 --use-plugins=xenon,appium-dashboard \
-pa /wd/hub \
--plugin-xenon-platform=both

Accessing the Dashboard​

Once the server is running, the Xenon Dashboard is available at:

http://localhost:4723/xenon

From here, you can:

  • Monitor real-time device health and termals.
  • Triage failed sessions using AI diagnostics.
  • Control devices manually via live MJPEG streaming.
  • Configure maintenance and AI settings.

First Test Run​

To verify your setup, run a test with the following minimal capabilities. Xenon will automatically handle device allocation.

const opts = {
path: '/wd/hub',
port: 4723,
capabilities: {
platformName: "Android", // or 'iOS'
"appium:automationName": "UiAutomator2",
"appium:app": "/path/to/my.apk",
"xe:record_video": true, // Enable Xenon recording
"xe:save_device_logs": true // Enable for AI diagnostics
}
};

Database Setup (Optional)​

By default, Xenon uses a local SQLite database (~/.cache/xenon/xenon.db). For distributed High-Availability deployments, PostgreSQL is recommended.

PostgreSQL Configuration​

# Via Environment Variables
export XENON_DB_PROVIDER=postgresql
export DATABASE_URL="postgresql://user:password@localhost:5432/xenon"

# Via Appium Arguments
appium server ... --plugin-xenon-database-provider=postgresql --plugin-xenon-database-url="postgresql://user:password@localhost:5432/xenon"