EmuLabZip

Open source · MIT · v0.6

The debugging lab for your Android emulator and iOS simulator

EmuLabZip brings logs, network traffic, performance, memory, storage, crashes and accessibility of your Android emulators and iOS simulators into one fast, native app. Nothing to install on the device.

cargo install --git https://github.com/LuisPeixoto/EmuLabZip emulabzip-cli
  • Rust + Tauri
  • macOS · Windows · Linux
  • Android + iOS
  • MCP for AI assistants
EmuLabZip desktop app showing the overview of an Android emulator: build, hardware, display, battery and a live screen preview

Works with

  • Android Emulator
  • iOS Simulator
  • ADB
  • simctl
  • Perfetto
  • Instruments
  • macOS
  • Windows
  • Linux

Everything in one place

One lab for everything your emulator knows

Stop switching between Logcat, Instruments, Android Studio profilers and a proxy. EmuLabZip reads the public interfaces of the platforms, so it keeps working when Xcode and Android Studio update.

  • Live logs

    logcat and the iOS unified log in one table that stays smooth at thousands of lines per second, with level, tag, text and regex filters.

  • Performance

    CPU, memory, frame rate, janky frames and battery for the app you pick, charted as it runs.

  • Memory

    Snapshots with a diff by category, plus heap dumps (.hprof) and memory graphs (.memgraph) one click away.

  • Storage

    Browse an app's sandbox and open SQLite databases, preferences, property lists, JSON and images in place.

  • Network proxy

    Decrypt HTTPS from your app, read headers and bodies, follow WebSockets and HTTP/3, export HAR, import packet captures.

  • Mocks and breakpoints

    Answer a request yourself, slow it down, block it, or stop it and edit the request or the response.

  • Traces and flame graphs

    Perfetto system traces with SQL, simpleperf and Instruments recordings, shown as flame graphs.

  • Crashes and ANRs

    Crashes, native crashes and ANRs with stacks, the facts the device wrote down and hints for symbolication.

  • Device controls

    Change location, dark mode, the status bar, battery, permissions, notifications and links, each with a way back.

  • Layout and accessibility

    See every view of a screen and audit labels, touch targets and contrast, on Android and the iOS Simulator.

  • Sessions and CI

    Record a whole run into one file, and let emulabzip ci record around your test command in GitHub Actions.

  • Compare devices

    Two emulators side by side: both screens, CPU and memory charts and every fact that differs.

See it working

Real screens from the real app

Every image below is a screenshot of EmuLabZip debugging an Android emulator or an iOS simulator.

Network view listing HTTPS requests from an Android emulator, with HTTP/2 and HTTP/3 shown in the protocol column

Decrypted requests, with the protocol used

Every request of your app with headers, decoded bodies and timing, and which HTTP version each one used.

Rules dialog with a mock that answers with status 418

Change what your app gets back

Mock a response, add a delay, block a request or hold it at a breakpoint, without touching the server.

Layout view with a screenshot of Chrome on an Android emulator and the tree of its views

Every view on the screen

A screenshot with the tree of views beside it: names, sizes, ids and what can be tapped.

Accessibility audit listing small touch targets and low-contrast text found on an Android screen

Find what a screen reader would trip over

Missing labels, small touch targets and low-contrast text, each with the view, the WCAG criterion and a fix.

Sessions view summarizing a recorded run with a crash, repeated errors and slow requests

A whole run in one file

Errors, crashes, requests, CPU and memory of a run, kept as a file you can open later or collect from CI.

Flame graph of a CPU profile of an Android emulator

Where the CPU time goes

A whole-system CPU profile as a flame graph, coloured by whose code it is.

Crashes view showing an ANR with the blocked main thread and hints

Crashes, with what to try next

Stacks grouped by thread, the device's own details and hints for symbolication.

Compare view with an Android emulator and an iOS simulator side by side

Two devices side by side

An Android emulator next to an iPhone simulator, with charts and a table of differences.

For scripts and CI

A command line that prints tables for people and JSON for scripts

The same engine as the app, in one small binary. Run it on your laptop or in your CI pipeline.

  • Mock or block requests from a JSON file with net --rules
  • Fail a build when the screen regresses with a11y --fail-on
  • Record logs, requests, crashes and screenshots around your tests with ci
  • Use it from macOS, Windows and Linux, on Android emulators and iOS simulators

Built for AI assistants

Let your AI assistant look at the emulator

EmuLabZip includes an MCP server. Connect Claude, or any MCP client, and it can read logs and crashes, take screenshots, audit a screen and control the device.

  • 29 tools: logs, crashes, traces, layout, sessions and device controls
  • Speaks on standard input and output only, with no network port
  • Actions are validated, and plugins run only after you enable them

Read how to connect an assistant

Why EmuLabZip

Built to be trusted with your devices

A small, fast and honest tool, made in the open.

  • Open source, MIT

    Read the code, run it, change it. No account, no telemetry, no connections of its own.

  • Public interfaces only

    ADB, simctl, Perfetto and the accessibility tree. No private frameworks and no agent installed on the device.

  • Android and iOS together

    One tool and one habit for both platforms, instead of one tool for each.

  • Native and light

    A Rust core with a Tauri interface: a small download, a fast start and low memory use.

  • Undoes what it changes

    Proxy settings and device overrides are put back when you stop, also after an error.

  • Made to be scripted

    Every feature is in the command line and in the MCP server, with JSON output.

Roadmap

Where EmuLabZip is going

Six phases are done. The next four lead to a stable 1.0.

  1. v0.1 – v0.3

    Observe

    Devices, logs, performance, memory, storage and the network proxy.

  2. v0.4

    Tracing

    Perfetto, simpleperf and Instruments, with flame graphs and SQL.

  3. v0.5

    Crashes and automation

    Crashes, device controls, an MCP server and plugins.

  4. v0.6

    Power tools

    Mocks, breakpoints, WebSockets, HTTP/3, layout, accessibility, sessions and CI.

  5. v0.8

    Inside frameworks

    Flutter, React Native, Compose and SwiftUI; gRPC and GraphQL.

  6. v0.9

    Devices and platforms

    Physical iPhones, Android over Wi-Fi, Wear OS, TV and Apple platforms.

  7. v1.0

    Team and ecosystem

    Shareable reports, rule libraries, a VS Code extension and a stable promise.

Questions

Frequently asked questions

What is EmuLabZip?

EmuLabZip is a free, open-source desktop app and command line tool that lets you inspect, monitor and debug apps running in Android emulators and iOS simulators: logs, network traffic, performance, memory, storage, crashes, layout and accessibility.

Is EmuLabZip free?

Yes. EmuLabZip is open source under the MIT license. There is no account, no paid plan and no telemetry.

Which operating systems does it run on?

macOS, Windows and Linux. iOS simulators need a Mac with Xcode, because Apple only provides them there. Android emulators work on all three systems.

Do I need to install anything on the emulator?

No. EmuLabZip uses the public tools of each platform (ADB and simctl), so nothing is installed on the device or inside your app.

Can it see my app's HTTPS traffic?

Yes. The built-in proxy decrypts HTTPS once the emulator trusts the EmuLabZip certificate, which the app installs for you. Apps that pin their certificate are passed through unchanged.

Does it work with AI assistants?

Yes. EmuLabZip includes an MCP server, so assistants such as Claude can read logs and crashes, take screenshots, audit accessibility and control the device.

Can I use it in CI?

Yes. The emulabzip ci command records a session around your test command, keeps its exit code, and can fail the run when the app crashes or the screen has accessibility problems.

Does it support physical devices?

Not yet. Android emulators and iOS simulators are supported today. Physical iPhones and Android over Wi-Fi are planned for v0.9.

Start debugging your emulators in a minute

Download the app, boot an emulator or a simulator, and it shows up on its own.

Made by Luis Peixoto

EmuLabZip is created and maintained by Luis Peixoto, a software engineer working on mobile apps with React Native and Flutter, who built the lab he wanted for debugging emulators and simulators.

GitHub · luispeixoto.dev