AI agents see and drive the Android Emulator: screenshots, UI in dp, tap, dark mode, RTL, logcat.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
The missing control panel for the Android Emulator on macOS.
Dark mode, font size, RTL language, TalkBack, network speed, GPS and more: one click each, no adb commands.
Layout Inspector in dp, accessibility audit, and an MCP server so AI agents can drive your emulator.
Install: brew install --cask ateymoori/tap/oh-my-android · free and open source
Dark mode, font size, Arabic RTL, incoming SMS and call. Each is one click.
![]() | ![]() | ![]() |
| Control panel | Layout Inspector + TalkBack audit | MCP server for AI agents |
Features · adb cheat sheet · Layout Inspector · AI agents (MCP) · Troubleshooting · FAQ · Contribute
Testing an Android app means doing the same chores over and over: switch to dark mode, make the
font huge, change the language to Arabic to check RTL, turn on TalkBack, throttle the network to 3G,
clear the app data, take a screenshot. Each one is buried in the emulator's settings or needs an
adb shell command you have to look up again.
Oh My Android puts all of them in a floating panel next to the emulator. Every icon shows the real state of the device, and one click changes it.
adbHow it compares with Android Studio, scrcpy and other tools: docs/COMPARISON.md.
Or download the zip from the latest release, unzip it, and move Oh My Android.app to Applications. The app is signed and notarized by Apple.
Updates: when a new version is out, a dot shows on the menu bar icon. Click Update to … in the
menu, read what's new, and install in one click. The app never updates without asking. It checks once a
day; turn it off in Settings → Updates. brew upgrade --cask oh-my-android works too.
Requirements: macOS 26 Tahoe or later, Apple silicon, and the Android SDK from
Android Studio (or brew install --cask android-commandlinetools).
The app finds the SDK by itself. If yours is in an unusual folder, pick it in Settings → Android SDK.
For Cursor and VS Code, use the install buttons in AI agents (MCP). Then start an emulator and ask your agent: "Take a screenshot of the emulator and check this screen in dark mode."
| What you get | |
|---|---|
| 🎨 Appearance | Dark mode · Font size (0.85× → 2×) · Display size · Language and locale, incl. RTL and pseudo-locales · Rotate |
| 📦 Your app (whatever is on screen) | Restart · Clear data · Open deep link · Install APK (or drag it onto the panel) · App info · Reset permissions · Force stop · Uninstall |
| 📸 Capture | Screenshot saved and copied to the clipboard · Screen recording with audio · Quality presets |
| 🌐 Network | Emulate LTE, HSDPA, 3G, EDGE, GPRS or GSM speed and latency · Airplane mode · Wi‑Fi · Mobile data |
| 📐 Layout & performance | Layout Inspector · Show layout bounds · GPU overdraw · GPU profile bars · Show taps · Pointer location · Animations off (for Espresso / Maestro) · Developer options |
| ♿ Accessibility | TalkBack on/off · Bold text · Invert colors · TalkBack order audit |
| 🧭 Navigation & input | Back · Home · Recents · Type text into the focused field · Hide keyboard |
| 🛰️ Simulate (emulator) | GPS location: city presets or latitude/longitude · Battery level · Charging · Fingerprint · Incoming call · Incoming SMS |
| 💾 Snapshots (emulator) | Save a clean state and restore it in seconds |
Destructive actions (Clear data, Uninstall, Reset permissions) ask before they run.
Every icon replaces a command you would otherwise type or search for:
| Task | The adb way | Oh My Android |
|---|---|---|
| Dark mode on the emulator | adb shell cmd uimode night yes | 🌙 one click |
| Bigger font size | adb shell settings put system font_scale 1.3 | Aa − / + |
| Change the device language | adb shell cmd locale set-device-locale sv-SE | 🌐 pick from a menu |
| Test RTL layout | adb shell cmd locale set-device-locale ar-EG | 🌐 "العربية (RTL)" |
| Slow network (3G / EDGE) | adb emu network speed edge + adb emu network delay edge | pick a profile |
| Mock GPS location | adb emu geo fix 18.0686 59.3293 | pick a city |
| Turn off animations for UI tests | 3 × adb shell settings put global …_scale 0 | one click |
| Show layout bounds | adb shell setprop debug.layout true + a system refresh call | one click |
| Clear app data | find the package, then adb shell pm clear <package> | 🗑 one click |
| Take a screenshot | adb exec-out screencap -p > shot.png | 📷 saved and copied |
| Turn on TalkBack | adb shell settings put secure enabled_accessibility_services … | one click |
| Open a deep link | adb shell am start -a android.intent.action.VIEW -d "myapp://…" | paste and open |
Freeze the screen and measure it like in Figma. Works with Jetpack Compose and classic Views.
Press ⇧⌘A in the Layout Inspector. Every screen-reader stop gets a number in approximate TalkBack order, with what TalkBack announces and a list of problems: unlabeled buttons, images without a content description, and touch targets smaller than 48 × 48 dp.
Browse the SharedPreferences (key, type, value) and SQLite databases (tables, first 500 rows)
of any debuggable app, with search. It uses adb shell run-as, the same access Android Studio uses, so
release builds stay closed. It is read-only: nothing on the device changes.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/oh-my-android)<a href="https://allmcps.com/mcp/oh-my-android"><img src="https://allmcps.com/api/badge/oh-my-android?style=directory" alt="Oh My Android on AllMCPs" /></a>