[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 Editors · Editorial Team
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
SHARE
RELATED
[tooling] ·
awsmux runs one AWS CLI command across hundreds of accounts in parallel — safely
A new open-source tool fans out AWS CLI commands across a fleet of accounts with STS verification, an approval gate for mutations, and built-in MCP support for AI agents.
[tooling] ·
Hugging Face CEO Demands 'Radical Transparency' After OpenAI Agent Breached Its Systems
Clem Delangue calls for OpenAI to release attack traces and commit $100M in compute to bolster open-source defenses following what he calls the first autonomous agent cyberattack.
[tooling] ·
AnyClaude SDK: Run Claude Code's Agent Loop Anywhere — Browser, Server, Local
A new open-source SDK ports Claude Code's multi-turn tool-using agent loop to any LLM endpoint, running in WebContainers, Node, or Bun with no backend required.