Skip to content
| Marketplace
Sign in
Visual Studio Code>Debuggers>EmbeDroid - Embedded Android EmulatorNew to Visual Studio Code? Get it now.
EmbeDroid - Embedded Android Emulator

EmbeDroid - Embedded Android Emulator

Utpal Barman

|
5 installs
| (0) | Free
Run Android emulation inside VS Code — where it belongs. Mirror and control an Android emulator or device in an editor tab, with no separate window. Built for Flutter & React Native, powered by scrcpy: touch, keyboard, rotate and screenshots.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

EmbeDroid — Android Emulator Inside VS Code

Run and control your Android emulator in a VS Code tab — no separate window.

Tired of the Android emulator floating over your editor in its own window? EmbeDroid puts the emulator screen inside VS Code, right next to your code — just like Android Studio's "Running Devices" panel, but for VS Code.

EmbeDroid demo — boot an AVD and control it inside a VS Code tab

What it does

  • 📱 Boots your Android emulator inside VS Code — pick a virtual device from the sidebar and its screen opens in an editor tab.
  • 🖱️ Fully interactive — click to tap, drag to swipe, type with your keyboard, scroll with your mouse wheel.
  • 🧰 Device controls in the toolbar — Back, Home, Recents, Volume, Power, Rotate, and Screenshot.
  • 🚀 Perfect for Flutter & React Native — keep your app, your code, and your hot-reload all in one window.

How to use it

  1. Click the Android robot icon in the Activity Bar (left sidebar).
  2. Under Available AVDs, click a virtual device — it boots in the background (no popup window).
  3. Under Running Devices, click the device — its screen opens in a VS Code tab.
  4. Use it like a real phone: tap, swipe, type, rotate, take screenshots.

What you need

  • Android SDK with the emulator and platform-tools packages — you already have this if Android Studio is installed.
  • At least one virtual device (AVD) created in Android Studio's Device Manager (AVD Manager). EmbeDroid boots and displays your existing AVDs — it doesn't create them.
  • VS Code 1.85+ on macOS, Windows, or Linux.

That's it. The scrcpy streaming engine is bundled with the extension — nothing else to install on your machine or the device (Android 5.0+).

Install

From the VS Code Marketplace — search "EmbeDroid" in the Extensions view, or:

code --install-extension utpalbarman.embedroid

For contributors

Built spec-first — the specs in spec/ are the source of truth: 00 overview · 01 requirements · 02 feasibility · 03 design · 04 tasks · ADRs. Agents start at CLAUDE.md.

Architecture (short)

emulator (-no-window) ──adb──▶ scrcpy-server ──socket──▶ ScrcpyStream (host)
                                                              │
                                       LocalBridge (ws://127.0.0.1 + token)
                                                              │
                                     Webview: WebCodecs decode → <canvas>,
                                     pointer/keyboard/scroll → control messages

Key modules: src/sdk/SdkLocator, src/services/{Avd,Device}Service, src/lifecycle/EmulatorLifecycle, src/stream/ScrcpyStream, src/bridge/LocalBridge, src/webview/{WebviewManager, main}.

Develop & run locally

Prereqs: Android SDK (emulator + platform-tools), Node ≥ 18. The scrcpy server is bundled (media/vendor/scrcpy-server-v3.2.jar) — no system scrcpy needed.

npm install
npm run build          # bundles dist/extension.js + media/webview.js

Then open this folder in VS Code and press F5 ("Run Extension").

Package a .vsix:

npm run package        # → embedroid-<version>.vsix

Releasing

Releases are automated: push a vX.Y.Z tag and CI publishes to the Marketplace and creates a GitHub Release with the .vsix.

npm version X.Y.Z --no-git-tag-version
git commit -am "chore(release): X.Y.Z" && git push origin main
git tag vX.Y.Z && git push origin vX.Y.Z   # ← triggers publish

Full runbook, one-time secret setup, and troubleshooting: RELEASE.md.

Not yet done

  • Broadway.js software-decode fallback (for builds without WebCodecs).
  • Coordinate-transform unit tests (T-404); full rotation reflection.
  • Clipboard sync, APK drag-drop (FR-25/26); gRPC transport (Approach B).

License

MIT — see LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft