Skip to main content

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).

Metadata

Release files for beeos-device-agent 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for beeos-device-agent 0.3.8
File Size Uploaded
beeos_device_agent-0.3.8.tar.gz 80.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beeos-device-agent 0.3.8
File Interpreter ABI Platform
beeos_device_agent-0.3.8-py3-none-any.whl Python 3 none any Details

Total release size: 172.3 kB

Release files / beeos_device_agent-0.3.8.tar.gz

Download URL beeos_device_agent-0.3.8.tar.gz
Size 80.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2c1369bf6dbd55e01329d901f4054bcb1cc3896d70e6c1884ba0a0bb25f948a9
BLAKE2b-256 checksum
How to use checksums
45e71dc35d83d5c47db23bdeee60b7b2d808dbaa3fba30f6eeec2243ecf3a3e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / beeos_device_agent-0.3.8-py3-none-any.whl

Download URL beeos_device_agent-0.3.8-py3-none-any.whl
Size 92.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eaf7ab3e9aba01f5927d7e69083ac08eec79b9e3522b71957632ae75c647c5d0
BLAKE2b-256 checksum
How to use checksums
2eac72751e754d9fbe948add9a1d7110f86a25a6105221e87059c42e16ac5bcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page