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.8.tar.gz (72.6 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.8-py3-none-any.whl (82.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: beeos_device_agent-0.2.8.tar.gz
  • Upload date:
  • Size: 72.6 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.8.tar.gz
Algorithm Hash digest
SHA256 a85dc5eb0d3d3641a2e52b0d1cb3bf440f4b7e687b3948508325caad3b329f54
MD5 8ca8e75675efb562920304b22ce7d662
BLAKE2b-256 2526e96dcd45bd475067cc425eb041fcd9fbec08e33973cea35dd383185c802d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for beeos_device_agent-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 795cdea81e7c67fff6099235bd861283ed44323be859151d5da143ba96b44978
MD5 a8367f5e8c2775afa382e1198bb62d83
BLAKE2b-256 a2168a7817f6aed33c8102fe16b3bb7ebfb050a6e284f59fa03842e0573d80d3

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