[tooling] · · 1 min read
serve-avd: A Local Streaming Server for Android Emulators, Built for AI Agent Workflows
Open-source tool lets you host and stream Android emulators over HTTP/WebSocket, enabling remote access and direct integration with AI coding agents like Codex and Cursor.
By ByteBulletin Editor · Editor
Developers working with AI coding agents often need to hand off a running mobile emulator for testing and interaction. A new open-source tool, serve-avd, aims to make that as simple as running npx serve-avd.
serve-avd is a Node.js package that captures an Android emulator's screen via ADB, streams it as H.264 video (with an MJPEG fallback), and exposes a WebSocket control channel for input. The result is a browser-based preview UI that works over LAN or can be tunneled to a remote machine. It is a faithful port of Evan Bacon's serve-sim, but rebuilt entirely on native Android and ADB capabilities — no root, no plugins, no app instrumentation required.
The tool is designed with AI agent workflows in mind. Because everything is driveable over plain HTTP and WebSocket, agents can take screenshots, dump UI trees, and send touch or keyboard events with simple API calls. The wire protocol matches serve-sim, ensuring compatibility with existing agent tools like Codex, Cursor, and Claude Desktop.
serve-avd supports multiple devices simultaneously, automatically discovers the Android SDK via standard environment variables, and includes a middleware for mounting the preview UI inside existing dev servers (Metro, Vite, Next.js, etc.). Camera injection is handled natively by the Android Emulator — no helper dylib needed.
For teams that need to test hosted emulator infrastructure locally before deploying to the cloud, serve-avd offers a fast-iteration loop. When ready, simply tunnel the served URL to make the emulator accessible remotely, with the same streaming and input capabilities.
Quick Start
npx serve-avd
This serves all running emulators and physical devices attached via ADB. For more control, pass device serials or AVD names. The tool requires Android SDK platform-tools and Node.js 18.17+.
For integration with Claude Desktop, create a .claude/launch.json that starts serve-avd automatically:
{
"servers": {
"serve-avd": {
"command": "npx",
"args": ["serve-avd"]
}
}
}
serve-avd is released under the Apache-2.0 license and is available on npm.
More Information
Get the signal, not the noise.
One short email when it matters. No recaps of recaps.
SHARE
RELATED

[tooling] ·
Goose Accelerates Release Cadence with v1.47 and v1.49 Updates

[tooling] ·
OpenAI agents linked to RubyGems hack and API key theft attempts

[tooling] ·
MaskShift Launches: A Zero-Dependency, Model-Agnostic Coding Harness for the Terminal

[tooling] ·
Agentic Ship: An Open-Source Toolkit to Replace Hosted AI Builders

[tooling] ·
Hexis: A Git-Backed Control Plane for Managing AI Agent Skills and Permissions

[tooling] ·
