v0.4.7 — Android-first AI Agent Framework

it thinks,
it does.

me.things connects AI models to real Android device capabilities — camera, sensors, BLE, USB, audio, and more — with explicit user consent. In v0.4.7, USB-connected microcontrollers can be driven from the agent with MicroPython workflows, including ESP32/M5Stack boards over common USB serial bridges.

162+
Device APIs
16
API Domains
4
P2P Transports

What's New in v0.4.7

The latest release tightens real-device workflows: better USB MCU handling, practical MicroPython support, and smoother agent behavior during long-running sessions.

🔌

USB MCU + MicroPython

Agents can open USB serial devices, recover REPL access, upload files, and run MicroPython on connected boards such as ESP32/M5Stack devices.

🤖

More Decisive Agent Runs

Recent runtime updates reduce unnecessary follow-up prompts, improve permission resume behavior, and keep execution moving without extra turns.

Smoother Long Sessions

UI and event-processing improvements reduce WebView stalls during active agent work and make progress updates feel more stable on-device.

Installation

me.things runs as an Android app with a built-in agent runtime, QuickJS scripting engine, and native Python & Node.js runtimes. No root required. No external dependencies. Works on Android 8.0+.

  1. Download the APK Get the latest release from GitHub Releases.
  2. Install on your device Enable "Install from unknown sources" if prompted, then open the APK.
  3. Launch & grant permissions Open me.things and grant the permissions needed for the features you want to use.
  4. Connect your AI provider Configure your API key (OpenAI, Anthropic, Google, etc.) in Settings > Brain.
# me.things v0.4.7 architecture All built-in (zero-setup) ├─ Agent Runtime # LLM chat + tool dispatch ├─ QuickJS Engine # run_js (always available) ├─ Python Runtime # native, no Termux needed ├─ Node.js Runtime# native, no Termux needed ├─ SSH Server # Dropbear (built-in) ├─ Native HTTP # run_curl (no deps) └─ Scheduler # recurring code execution

me.me — Your Devices, Connected

Encrypted device-to-device communication across four transport layers. Send messages, transfer files, and let agents on different devices collaborate — all end-to-end encrypted.

📶

WiFi Direct

Discover and connect devices on the same local network. Lowest latency for nearby devices.

📡

Bluetooth LE

Works without WiFi infrastructure. Automatic discovery and connection via BLE advertising.

🌐

WebRTC P2P

DataChannel connections across NATs via ICE/STUN. TURN relay ensures connectivity even behind strict firewalls.

Cloud Relay

Gateway-mediated relay via FCM push. Works anywhere with an internet connection as a fallback.

🔓

Sign In to Manage Devices

Sign in with Google or GitHub to link all your devices under one account. Provisioned devices appear in each other's device list and auto-approve connections — no manual pairing needed.

🔒

End-to-End Encryption

Messages encrypted with AES-GCM. Session keys derived from X25519/ECDH key exchange via HKDF-SHA256. WebRTC P2P adds DTLS transport encryption.

📁

File Transfer

Send files between devices over any available transport. Agents can request files from remote devices and receive them automatically.

🔄

me.sync — Device Migration

Migrate your entire setup to a new device with a QR code. Uses Nearby Connections or LAN for fast, secure transfer.

What AI Agents Can Do

Agents interact through a unified device_api(action, payload) tool covering 162+ actions across 16 domains. All actions are permission-gated.

📷

Camera & Vision

Capture photos, stream preview frames, and run on-device TFLite inference on camera or image data.

camera.capture camera.preview.* vision.run vision.model.load
🎤

Audio & Speech

Record audio, play media, stream PCM data, and use Android's built-in TTS/STT engines.

audio.record.* media.audio.play tts.speak stt.record
🎬

Video & Screen

Record video (H.264/H.265), capture screen, stream decoded frames for real-time analysis.

video.record.* screenrec.* media.stream.*
📡

Bluetooth Low Energy

Scan, connect, enumerate GATT services, read/write characteristics, and subscribe to notifications.

ble.scan.* ble.connect ble.gatt.read ble.gatt.write ble.gatt.notify.*
🔌

USB & UVC

Control USB devices directly — bulk/control/isochronous transfers, continuous streaming, serial access, and UVC webcam PTZ.

usb.open serial.open usb.bulk_transfer usb.control_transfer uvc.mjpeg.capture uvc.ptz.*

MCU & MicroPython

Open USB-connected microcontrollers, monitor serial output, recover REPL access, and run MicroPython workflows on boards such as ESP32/M5Stack devices.

mcu.serial_monitor mcu.reset mcu.micropython.exec mcu.micropython.write_file mcu.micropython.soft_reset
🌍

Sensors & Location

Stream real-time sensor data (accelerometer, gyroscope, magnetometer) and get GPS coordinates.

sensors.list ws:/sensors location.get
🖥

SSH Server & Client

Built-in Dropbear SSH server with key management, and SSH client for remote command execution and SCP.

sshd.config sshd.keys.* ssh.exec ssh.scp
📶

Network & Connectivity

Check Wi-Fi and cellular status, overall connectivity, and make cloud API calls through the broker.

network.status wifi.status mobile.status cloud_request
🔗

me.me Messaging

Discover, connect, and exchange E2E-encrypted messages and files with other me.things devices over WiFi, BLE, WebRTC P2P, or cloud relay.

me.me.scan me.me.connect me.me.message.send me.me.file.send me.me.p2p.*
🔓

Device Provisioning

Sign in with Google or GitHub to link devices under one account. Provisioned siblings auto-approve each other and get P2P + TURN pre-configured.

provision/start provision/claim provision/devices me.me.relay.*
🔒

Security & Vault

Permission broker with per-action consent, Android Keystore-backed credential vault, and full audit trail.

permissions/* vault/credentials brain.config.*
📂

Files & Shell

User-scoped filesystem access, built-in QuickJS (run_js), native HTTP (run_curl), native Python, and native Node.js.

run_js run_python run_node run_curl run_shell filesystem
🎨

Custom HTML GUI

Agents can generate HTML/CSS/JS files and display them as interactive UIs. Files are served locally via /user/www/ and shown in a dedicated WebView activity or as inline cards in chat.

/user/www/* html_path: viewer.open AgentHtmlActivity
💬

Slack & Discord Relay

Receive Slack and Discord events on your device via webhook relay. Messages are normalized and delivered through FCM push, enabling external chat platform integration.

webhook/<token> provider=slack provider=discord FCM push
🧠

Brain Memory & Journal

Persistent agent memory across sessions and automatic session journaling. Agents remember context, record milestones, and build long-term knowledge over time.

brain.memory.get brain.memory.set brain.journal.* brain.config.*
📱

UI & Android Intents

Open fullscreen viewer (with Marp slideshows), navigate settings, and send arbitrary Android Intents.

viewer.open viewer.slideshow intent.send ui.settings.*

Architecture

The app owns the entire control plane, built-in agent runtime, and all language runtimes. Python, Node.js, QuickJS, SSH, and HTTP all run natively inside the app — no external dependencies like Termux required.

System Overview

The app runs as a foreground service with a built-in agent runtime and native language runtimes.

Android App (Foreground Service) ├── Control Plane (always up) │ ├── Local HTTP API 127.0.0.1:33389 │ ├── WebView UI settings + control panel │ ├── Permission Broker consent gating + audit │ ├── Credential Vault AES-GCM via Android Keystore │ └── me.me Engine WiFi · BLE · WebRTC P2P · relay ├── Agent Runtime (built-in) │ ├── LLM Client OpenAI + Anthropic SSE streaming │ ├── Tool Router device APIs · filesystem · cloud │ ├── QuickJS Engine run_js (always available) │ └── Scheduler recurring code execution (1-min resolution) └── Native Runtimes (built-in, on-demand) ├── Python run_python, run_pip (via p4a) ├── Node.js run_node, npm ├── SSH Server Dropbear (built-in) └── Shell run_shell, shell_session
🛡

Consent + Audit

Every sensitive action requires explicit user approval. Permissions can be scoped to once, session, or device-wide.

Native Runtimes

Python and Node.js run natively inside the app sandbox. No external apps, no Termux, no root — just install and go.

📡

Real-time Streaming

8 WebSocket endpoints deliver live camera frames, audio PCM, sensor data, BLE events, and more.

🔒

Offline First

All APIs are local. Cloud access is explicit, goes through the cloud broker, and requires separate consent.

🌐

P2P Mesh Networking

Devices connect over WiFi, BLE, WebRTC DataChannel, or cloud relay. TURN server handles NAT traversal for P2P.

🔓

Sign In & Provision

Link devices with Google or GitHub. Provisioned siblings auto-approve, auto-configure P2P, and appear in each other's device list.

📜

QuickJS Scripting

Built-in QuickJS JavaScript engine for run_js. Agents can execute code instantly with zero setup — no Termux required.

Scheduler

In-process scheduler with 1-minute resolution for recurring code execution. Supports daemon, periodic, and one-time tasks.

📦

Self-Contained

Everything runs inside the app sandbox — Python, Node.js, SSH, and shell. No external dependencies to install or maintain.

🔄

Auto Update

Built-in self-update with no dependency on Google Play or any app store. Checks for new releases, downloads in the background, and prompts installation.

🔋

Always-On Service

Starts automatically on device boot as a foreground service. Your agents and SSH server stay available without manual launch.