Skip to main content

BeeOS DeviceAgent — AI-powered device control agent with ACP, MQTT, and WebRTC

Project description

BeeOS DeviceAgent

AI-powered device control agent supporting ACP, MQTT, and WebRTC channels.

Installation

pip install beeos-device-agent

For AI automation (MobileAgent v3.5):

pip install beeos-device-agent[ai]

Local Development Setup

# Install bridge-client first (local dependency)
cd sdks/bridge-client-python && python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"

# Install device-agent
cd sdks/device-agent && python3 -m venv .venv
.venv/bin/pip install -e ../bridge-client-python
.venv/bin/pip install -e ".[dev]"

# Run tests
.venv/bin/pytest tests/ -v

Usage

CLI (Android via ADB)

python -m device_agent \
    --bridge ws://localhost:18443 \
    --key ~/.beeos/test-device.key \
    --adb <serial> \
    --mqtt-host localhost --mqtt-port 1883 --no-mqtt-tls \
    --http --http-port 9090

CLI (Desktop mode, no ADB needed)

python -m device_agent \
    --bridge ws://localhost:18443 \
    --key ~/.beeos/test-device.key \
    --mode desktop \
    --mqtt-host localhost --mqtt-port 1883 --no-mqtt-tls \
    --http --http-port 9090

CLI Options

Flag Default Description
--bridge (required) Bridge WebSocket URL
--key auto-generated Ed25519 key file path
--mode android Runtime mode: android or desktop
--adb auto-detect ADB device serial (android mode)
--mqtt-host (empty) MQTT broker host (enables MQTT channel)
--mqtt-port 8883 MQTT broker port
--no-mqtt-tls false Disable MQTT TLS (for local dev)
--http false Enable REST API
--http-port 8080 REST API port
--vlm-model gpt-4o VLM model for AI automation

Python API

from device_agent import DeviceAgent, DeviceAgentConfig
from device_agent.runtime.android_adb import AndroidADBRuntime

runtime = AndroidADBRuntime(serial="R5CT1234")
config = DeviceAgentConfig(
    bridge_url="ws://localhost:18443",
    key_file="~/.beeos/test-device.key",
    mqtt_host="localhost",
    mqtt_port=1883,
    mqtt_use_tls=False,
)
agent = DeviceAgent(config, runtime)
await agent.start()

REST API (when --http is enabled)

Endpoint Method Description
/device/info GET Device metadata
/device/screenshot GET PNG screenshot
/device/action POST Touch/key/shell actions
/tasks POST Submit AI task
/tasks/{id} GET Get task status

Docker

The Dockerfile uses the repository root as the build context (because it needs sdks/bridge-client-python at build time).

docker build -f sdks/device-agent/Dockerfile -t beeos-device-agent .

docker run --rm \
  -e BRIDGE_URL=wss://bridge.beeos.ai \
  beeos-device-agent \
  python -m device_agent \
    --bridge wss://bridge.beeos.ai \
    --adb <device-serial> \
    --mqtt-host mqtt.beeos.ai

Architecture

Three independent channels:

  • ACP (via Bridge) — AI chat + device management (JSON-RPC 2.0 over WebSocket)
  • MQTT (via EMQX) — WebRTC signaling + device telemetry
  • WebRTC (P2P/TURN) — on-demand video streaming + DataChannel control

Each DeviceAgent instance represents one device (1 device = 1 process = 1 BeeOS Instance). The agent manages all three channels independently and coordinates them for features like on-demand streaming (auto-start when viewed, auto-cooldown when idle).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beeos_device_agent-0.2.0.tar.gz (71.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beeos_device_agent-0.2.0-py3-none-any.whl (81.3 kB view details)

Uploaded Python 3

File details

Details for the file beeos_device_agent-0.2.0.tar.gz.

File metadata

  • Download URL: beeos_device_agent-0.2.0.tar.gz
  • Upload date:
  • Size: 71.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for beeos_device_agent-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f1873108c2aa244dd41b4f7a6f8cc3bbb311ab34aceb312f5de995ab98719e1a
MD5 ff9de614f5e453ad97dc137730379f30
BLAKE2b-256 26708492284092356786bf963d7449a260389a07cc1df01047d4973ee4a73143

See more details on using hashes here.

File details

Details for the file beeos_device_agent-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for beeos_device_agent-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b4a41991647b9b7f4d6e99454e85f37b5d697c9da16883d712531b5b27e8ec54
MD5 20a630d6e7264f7a9ce3af9bed575fe5
BLAKE2b-256 c416cc4d9d96ab91deed18270e50114f44faa508d9058a7d3b5e0cd43ebd04bf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page