Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Caspian EmulatorNew to Visual Studio Code? Get it now.
Caspian Emulator

Caspian Emulator

CaspianTools

|
1,680 installs
| (1) | Free
Android emulator management for VS Code — no Android Studio required. AVD control, store screenshot capture, locale and accessibility sweeps, embedded screen, ADB tools, logcat viewer, and automatic SDK setup.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Caspian Emulator

Android emulator management for VS Code — no Android Studio required.

Launch emulators, manage AVDs, install APKs, view logcat, mirror screens, manage apps, and browse device files — all without leaving your editor. Capture Play Store screenshots and sweep your app across languages, font scales, and display sizes in one command. The extension can download and set up the entire Android SDK automatically.

VS Code Marketplace Installs License: MIT


Zero-Setup Android Development

Don't have the Android SDK installed? No problem. Caspian Emulator can download and configure everything for you:

  1. Click "Download & Install Android SDK" when prompted
  2. The extension downloads the SDK command-line tools, installs adb, the emulator, and a system image
  3. A default virtual device is created automatically — ready to launch

No Android Studio. No manual path configuration. Just install the extension and go.

Features

Automatic SDK Setup

  • Downloads Android SDK command-line tools from Google
  • Installs platform-tools (adb), emulator, and system images via sdkmanager
  • Accepts SDK licenses automatically
  • Creates a default AVD (Pixel 6, Android 35) ready to launch
  • Detects existing SDK installations via ANDROID_HOME and common paths
  • Requires only Java 17+ — everything else is handled

AVD Management

  • Create virtual devices by name — 37 presets grouped as Google Pixel, Samsung Galaxy, Other phones, Foldables and Tablets: the Pixel 10 and 9 lines, Galaxy S25 Ultra, Galaxy Z Fold 6, Galaxy Z Flip 6, OnePlus 13, Xiaomi 14, Galaxy Tab S10 Ultra, OnePlus Pad 2, and more. Search by manufacturer or resolution as well as by name
  • System image downloaded automatically if not installed (~1 GB) — and if you already have a newer one, that is used instead of downloading an older one
  • Launch, stop, delete, clone, and edit AVDs from the sidebar
  • Cold boot option — launch without loading snapshots
  • Clone AVD — duplicate an existing virtual device for testing variations
  • Boot progress notification — shows progress while emulator starts
  • See running/stopped status at a glance with color-coded icons
  • Correct hardware, always — presets carry the real resolution, density, and RAM of the device they name, even when your SDK's command-line tools predate that device profile. For Samsung, OnePlus and Xiaomi devices, which no Android SDK has ever carried a definition for, Caspian configures the display itself — with densities chosen so the dp size matches the real hardware, since dp is what your layouts respond to
  • Resolution shown in the sidebar, with a warning icon and one-click repair for any misconfigured virtual device
  • Low-memory pre-flight — warns before a launch that would hang, names the processes eating your RAM, and offers to stop the build daemons holding it. If gradlew --stop frees nothing (it cannot stop the Kotlin compile daemon, usually the larger of the two) Caspian says so and offers to stop what is left, rather than going quiet and letting you assume it worked
  • Acceleration check — tells you when WHPX/HAXM/KVM is missing instead of letting the emulator hang in software mode
  • Launch failures are reported with a link to the emulator log, rather than a progress bar that spins and gives up
  • Boot is tracked properly — Caspian waits for Android itself (sys.boot_completed plus a working package manager), not just for the device to appear in adb devices, and tells you whether it is waiting, booting, or stalled
  • A wedged boot is named as one — a guest that finishes its boot animation but never comes up is detected, the launch log opens automatically, and Repair is one click away
  • Repair Virtual Device — stop cleanly, cold boot, or wipe data, each rung stating its cost before you commit to it
  • Stopping is verified, and a force kill warns you that it costs the snapshot before it happens
  • Guest RAM check — flags a virtual device with too little RAM for its system image, the cause of an emulator that boots and then stops responding
  • Host memory is watched while the emulator runs, so a build started alongside it warns you before the guest starts thrashing
  • GPU mode is a setting (caspian.emulator.gpuMode), not something to hand-type into launch arguments — and when a launch dies with a graphics error, Caspian retries in software automatically, names the mode that worked, and offers to save it
  • Custom emulator launch arguments via settings

Store Screenshots & Release Assets

  • Screenshot mode — one toggle for a clean status bar: fixed clock, full battery, full signal, no notification icons. No more hand-typing seven am broadcast commands
  • Capture Store Screenshots — portrait and landscape in one command, saved to a named run folder
  • Every capture is validated against Play Console rules (320-3840 px per side, aspect limits) so you learn about a rejection here, not in the Play Console
  • A blank capture fails loudly. An emulator can boot, run your app, and still hand back a perfectly formed, entirely black PNG — correct size, correct aspect, correct format, and worthless. Caspian measures the image itself and tells you the emulator is not rendering, instead of letting black rectangles reach your store listing
  • Each run writes a Markdown report with the images inline, plus a manifest.json for scripting
  • Orientation is labelled from the captured image, so tablets and foldables are correct, and an orientation-locked app is reported rather than silently duplicated
  • A rotation that did not happen fails validation instead of being quietly filed under whichever orientation it measured
  • Display cutout emulation — corner, double, punch-hole, tall, waterfall, or none, for checking edge-to-edge layout against a real notch inset
  • Navigation mode emulation — gesture, 2-button, or 3-button, without creating a virtual device per shape
  • Landscape home-screen and widget shots (opt-in) — works around the launcher refusing to rotate on a phone profile, and marks any shot taken that way in the report

Locale & Accessibility Matrix

  • Run your app across languages x font scales x display sizes x orientations, capturing every combination
  • Language switching uses the official per-app locale API (Android 13+) — no root, no reboot, works on Play system images
  • Built-in pseudolocales: en-XA (accented, ~30% longer text) finds truncation, ar-XB (bidi) finds RTL layout bugs — both without a translator
  • Your device is always put back, including when you cancel the run or VS Code crashes mid-sweep
  • Reset Device Display & Language Overrides — a panic button if a device is ever left in a modified state

Physical Phone Support

  • Guided USB setup — step-by-step walkthrough: Developer Options → USB Debugging → authorize connection
  • Wireless ADB — connect devices over Wi-Fi via TCP/IP or Android 11+ wireless debugging with pairing code
  • QR code pairing — scan a QR code to pair instantly (Android 11+), no manual IP/port entry needed
  • Unauthorized phones appear in the sidebar with a one-click "How to Connect" guide
  • Auto-notification when a phone is plugged in without USB debugging enabled

App Management

  • List installed apps with interactive action menu (launch, stop, clear data, uninstall)
  • Launch App — start any installed app by package name
  • Force Stop — kill a running app
  • Clear App Data — wipe app storage, cache, and login state
  • Uninstall — remove apps from the device
  • App Logcat — open a logcat panel filtered to a specific app's logs

Connected Devices

  • Live-updating list of all connected devices (emulators + physical USB + Wi-Fi devices)
  • Active device selector — click the status bar to switch the active device
  • Shows unauthorized and offline devices with contextual status messages
  • Configurable polling interval (default: 3 seconds)

ADB Controls

  • Install APK — select and install .apk files with one click
  • Screenshot — capture and save device screenshots as PNG
  • Screen Recording — record device screen to MP4
  • ADB Shell — open an integrated terminal with full shell access

Logcat Viewer

Real-time log viewer in a dedicated webview panel:

  • Package filtering — show logs from a specific app only
  • Regex search — filter with /regex/ patterns or plain text
  • Priority filtering (Verbose, Debug, Info, Warning, Error, Fatal)
  • Export logs to file for bug reports and sharing
  • Pause / resume streaming
  • Color-coded output by log level with highlighted stack traces
  • Auto-scroll with manual override
  • Configurable max line count, font size, and line wrapping

Screen Mirror

Live device display inside VS Code — works for emulators and physical devices:

  • scrcpy integration — if installed, launches with 30+ FPS, full touch and keyboard support
  • Swipe gestures — click-and-drag to scroll, fling, and swipe
  • Touch input forwarding — click to tap
  • Navigation buttons (Back, Home, Recents)
  • FPS counter for monitoring performance
  • Optimized screencap fallback (~3 FPS when scrcpy is unavailable)

Device File Explorer

Browse the device filesystem from the sidebar:

  • Lazy-loading directory tree with configurable root path
  • Create folders on the device
  • Rename files and folders
  • Open text files directly in VS Code
  • Download files from device to local machine
  • Upload files from local machine to device
  • Delete files and directories on device
  • Toggle hidden file visibility

Getting Started

Prerequisites

  • VS Code 1.85 or later
  • Java 17+ (JDK) — required by Android SDK tools
    • Install from Eclipse Adoptium if not already present
  • Android Studio is NOT required — the extension handles SDK setup

Install

Search "Caspian Emulator" in the VS Code Extensions panel, or:

code --install-extension caspian-emulator-1.4.0.vsix

First Launch

  1. Click the phone icon in the Activity Bar (left sidebar)
  2. If no Android SDK is detected, you'll see two options:
    • Download & Install Android SDK — fully automated setup (~5 GB download)
    • Configure Existing SDK — point to an existing SDK installation
  3. After setup, your virtual devices appear in the sidebar — click play to launch

Keyboard Shortcuts

Shortcut Command
Ctrl+Shift+L Show Logcat
Ctrl+Shift+D Select Active Device
Ctrl+Shift+O Show Output Log

Settings

All settings are under the caspian namespace. Open VS Code Settings and search "caspian".

Setting Type Default Description
caspian.androidSdkPath string "" Android SDK root path. Leave empty for auto-detection.
caspian.emulatorArgs string[] [] Extra arguments passed to emulator on launch.
caspian.logcat.maxLines number 10000 Maximum lines retained in the logcat viewer.
caspian.logcat.fontSize number 13 Font size in the logcat viewer (pixels).
caspian.logcat.wrapLines boolean false Wrap long lines in the logcat viewer.
caspian.scrcpyPath string "" Path to scrcpy binary. Leave empty for auto-detection.
caspian.deviceTracker.interval number 3 Device polling interval in seconds (1–30).
caspian.fileExplorer.showHidden boolean true Show hidden files (dotfiles) in file explorer.
caspian.fileExplorer.defaultPath string "/" Default root path when browsing device files.
caspian.autoSelectDevice boolean true Auto-select newly connected devices.
caspian.emulator.coldBoot boolean false Always cold boot emulators (ignore snapshots).
caspian.emulator.checkHostMemory boolean true Warn when the host has less free memory than the AVD needs.
caspian.emulator.memoryHeadroomMb number 1024 Memory to leave for the host beyond the emulator's requirement.
caspian.emulator.checkAcceleration boolean true Check for WHPX/HAXM/KVM before the first launch of a session.
caspian.emulator.captureLog boolean true Capture emulator output so startup failures can be reported.
caspian.emulator.bootTimeoutSec number 180 How long to wait for Android to finish booting before reporting a stall (30–900).
caspian.emulator.watchHostMemory boolean true Warn when host memory runs low while an emulator is running.
caspian.emulator.lowMemoryFloorMb number 512 Free memory below which the running-emulator warning fires. 0 disables it.
caspian.avd.checkGuestRam boolean true Flag virtual devices with less RAM than their system image needs.
caspian.avd.playStoreStrictAspect boolean false Enforce Play's documented 16:9 rule. Most modern phones are taller.
caspian.captureDirectory string "${workspaceFolder}/.caspian/captures" Where capture runs are saved. Supports ${workspaceFolder} and ~.
caspian.capture.openAfterCapture boolean true Open the report when a capture run finishes.
caspian.emulator.gpuMode string "auto" GPU rendering mode passed as -gpu. Use swiftshader if screenshots come out black.
caspian.emulator.gpuFallback boolean true Retry with software rendering when a launch fails with a graphics error.
caspian.avd.preferInstalledSystemImage boolean true Use the newest installed system image at or above a preset's API level instead of downloading the exact one.
caspian.capture.useDemoMode boolean true Use screenshot mode during capture runs.
caspian.capture.settleDelayMs number 500 Extra delay after the screen stops changing, before capturing.
caspian.capture.maxAspectRatio number 2 Maximum long/short ratio accepted when validating captures.
caspian.capture.fontScales number[] [1, 1.3] Font scales preselected in the matrix.
caspian.capture.locales string[] [] Locale tags offered in the matrix, e.g. en-US, ar.
caspian.capture.tabletTrickForLandscape boolean false Lower the density to force a landscape home-screen shot. Marked in the report.
caspian.capture.detectLeftoverOverrides boolean true Check connecting devices for overrides left by an interrupted run.
caspian.demoMode.clock string "1000" Clock shown in screenshot mode (24-hour HHMM).
caspian.demoMode.batteryLevel number 100 Battery percentage shown in screenshot mode.
caspian.demoMode.signalLevel number 4 Signal bars shown in screenshot mode (0-4).
caspian.demoMode.hideNotifications boolean true Hide notification icons in screenshot mode.
caspian.demoMode.hideStatusIcons boolean true Hide alarm, Bluetooth, location, and other status icons.

Commands

Open the Command Palette (Ctrl+Shift+P) and type "Caspian" to see all commands:

Command Description
Caspian: Download & Install Android SDK Download SDK tools, emulator, and system image automatically
Caspian: Setup Android SDK Configure or browse for an existing SDK installation
Caspian: Connect Phone via USB Step-by-step guide to enable USB debugging
Caspian: Connect Device via Wi-Fi Connect over TCP/IP or Android 11+ wireless debugging
Caspian: Pair Device with QR Code Scan a QR code to pair wirelessly (Android 11+)
Caspian: Select Active Device Choose the active device for all commands
Caspian: Create AVD Create a virtual device from presets or custom image
Caspian: Clone AVD Duplicate an existing virtual device
Caspian: Launch Emulator Start an emulator for a selected AVD
Caspian: Cold Boot Emulator Launch without loading snapshots
Caspian: Stop Emulator Stop a running emulator
Caspian: Delete AVD Delete a virtual device
Caspian: Edit AVD Configuration Open AVD config.ini in the editor
Caspian: Install APK Install an APK on a connected device
Caspian: List Installed Apps View and manage installed apps
Caspian: Launch App Launch an app by package name
Caspian: Force Stop App Kill a running app
Caspian: Clear App Data Wipe app storage and preferences
Caspian: Uninstall App Remove an app from the device
Caspian: Show Logcat Open the live logcat viewer
Caspian: Show App Logcat Open logcat filtered to a specific app
Caspian: Show Emulator Screen Open the live screen mirror
Caspian: Take Screenshot Capture a device screenshot as PNG
Caspian: Record Screen Record device screen to MP4
Caspian: Open ADB Shell Open an ADB shell terminal
Caspian: Create Folder on Device Create a new directory on the device
Caspian: Rename File on Device Rename a file or folder on the device
Caspian: Open File from Device View a remote text file in the editor
Caspian: Download File from Device Pull a file from device
Caspian: Upload File to Device Push a local file to the device
Caspian: Delete File on Device Delete a file or directory on the device
Caspian: Toggle Screenshot Mode Clean status bar for store screenshots
Caspian: Capture Store Screenshots Capture portrait and landscape into a run folder
Caspian: Run Locale & Accessibility Matrix Sweep languages, font scales, and display sizes
Caspian: Open Capture Folder Reveal the capture directory
Caspian: Set Display Cutout (Notch) Emulate a corner, double, punch-hole, tall, or waterfall cutout
Caspian: Set Navigation Mode Switch between gesture, 2-button, and 3-button navigation
Caspian: Reset Device Display & Language Overrides Undo any leftover device changes
Caspian: Check Device Configuration Diagnose and repair an AVD's display and RAM
Caspian: Repair Virtual Device Stop cleanly, cold boot, or wipe a stuck emulator
Caspian: Check Emulator Acceleration Verify WHPX, HAXM, or KVM is available
Caspian: Show Emulator Launch Log Open the captured emulator output
Caspian: Show Output Log Open the diagnostics output channel

Documentation

Document Description
Quickstart Get running in 2 minutes
Setup Guide SDK setup, configuration, and troubleshooting
Architecture System design and module descriptions
Build from Source Development setup and packaging
Changelog Version history
Discussions Release notes and feature announcements

Requirements

Requirement Details
VS Code 1.85 or later
Java JDK 17+ (Eclipse Adoptium)
Disk Space ~5 GB for SDK auto-download (not needed if SDK already installed)
Android Studio Not required
OS Windows 10+, macOS (Intel & Apple Silicon), Linux (x86_64)

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft