whatisgithub

What is serve-avd?

hsandhu/serve-avd — explained in plain English

Analysis updated 2026-05-18

4TypeScriptAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A CLI tool that streams and controls an Android Emulator in the browser over H.264, built for both manual use and AI coding agents.

Mindmap

mindmap
  root((serve-avd))
    What it does
      Streams emulator screen to browser
      Sends taps and gestures back
      Exposes agent friendly commands
    Tech stack
      TypeScript
      Node.js
      Android adb
    Use cases
      Test hosted emulator infra locally
      Let AI agents drive an emulator
      Control multiple emulators at once
    Audience
      Developer
    Setup
      Needs Android SDK platform tools
      Needs Node.js 18.17+
      Run with npx serve-avd

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Stream a running Android Emulator into a browser tab and interact with it like a real device.

USE CASE 2

Let an AI coding agent like Cursor or Claude Desktop take screenshots and tap through an app under test.

USE CASE 3

Test hosted emulator infrastructure locally before tunneling it to remote users.

USE CASE 4

Dump the current screen's UI hierarchy as JSON for automated testing.

What is it built with?

TypeScriptNode.jsAndroid SDK

How does it compare?

hsandhu/serve-avd0labs-in/vision-linkadarsh-me/image-sdk
Stars444
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderateeasy
Complexity3/53/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 5min

Requires Android SDK platform tools (adb) and Node.js 18.17 or newer, finds the SDK via ANDROID_HOME or default locations.

So what is it?

serve-avd is a command line tool that lets someone stream and control an Android Emulator from a web browser, similar to how the well known npx serve command quickly hosts a folder of files as a website. Running one command starts a local preview server showing the emulator's screen live in the browser, ready to click, type into, and interact with as if it were physically in front of you. Under the hood, it captures the emulator's screen through Android's own screen recording tools and streams it into the browser as smooth H.264 video, falling back to a simpler screenshot based stream if H.264 is not supported. A WebSocket connection sends control messages back, so a person can tap, drag, scroll, and type directly into the emulator through the browser, along with buttons for navigation actions like Back, Home, and Recents. It works with any already running Android Emulator, and with most physical Android devices connected through Android's adb tool, without needing root access or any special app installed on the device. Beyond letting a person drive an emulator by hand, the tool is built with AI coding agents in mind. Everything, including taking screenshots, dumping the current screen's structure as JSON, sending gestures, and typing text, is available as a simple command or HTTP call, so tools like Codex, Cursor, or Claude Desktop can operate an Android emulator the same way a person would from the browser. It can also run several emulators side by side and forwards the emulator's log output into the browser console. It requires the Android SDK's platform tools, particularly adb, along with a recent Node.js version, and it looks for an existing Android SDK installation automatically. The project describes itself as a faithful Android equivalent of an existing tool built for Apple's simulator, rebuilt to use whatever adb and the Android Emulator already provide rather than requiring extra plugins or instrumentation.

Copy-paste prompts

Prompt 1
Explain how serve-avd streams an Android Emulator's screen as H.264 video to a browser.
Prompt 2
Help me write a script that uses serve-avd's CLI to tap through a login flow and take a screenshot.
Prompt 3
Show me how an AI coding agent could use serve-avd's HTTP API to control an Android emulator.
Prompt 4
Walk me through setting up adb and the Android SDK platform tools so serve-avd can find my emulator.

Frequently asked questions

What is serve-avd?

A CLI tool that streams and controls an Android Emulator in the browser over H.264, built for both manual use and AI coding agents.

What language is serve-avd written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, Android SDK.

How hard is serve-avd to set up?

Setup difficulty is rated moderate, with roughly 5min to a first successful run.

Who is serve-avd for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.