SkillAgentSearch skills...

oh-my-android

Android emulator & ADB GUI for Mac: dark mode, font size, RTL, TalkBack, network, GPS, Layout Inspector in dp. Built-in MCP server lets Claude Code, Codex and Cursor drive the emulator.

Install / Use

claude mcp add ateymoori -- npx -y github:ateymoori/oh-my-android

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

79/100

Supported Platforms

Claude Code
Claude Desktop
Cursor
OpenAI Codex

Our assessment of oh-my-android

oh-my-android scores 79/100 on our quality scale, 3630th of 4,624 Development & Engineering skills we index.

Its MCP Server is 22 KB long, well organised into 15 sections with 6 code examples: a thorough specification that gives an agent plenty to work with.

It has 47 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
7/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so oh-my-android is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

oh-my-android compared with similar skills

All 4 of these similar skills score higher than oh-my-android; compare them before choosing.

SkillScoreStarsUpdatedFormat
oh-my-android (this skill)by ateymoori7947todayMCP Server
Agent-Reachby Panniantong10091.8k20d agoCLAUDE.md
headroomby headroomlabs-ai10074.5ktodayCLAUDE.md
CowAgentby zhayujie10047.2ktodayCLAUDE.md
ai-job-searchby MadsLorentzen10045.0ktodayCLAUDE.md

Frequently asked questions

How do I install oh-my-android?
Run claude mcp add ateymoori -- npx -y github:ateymoori/oh-my-android. The install tabs above show the steps for each supported agent.
Which AI agents does oh-my-android work with?
It is written for Claude Code, Claude Desktop, Cursor and OpenAI Codex, as a MCP Server file. Other agents that read the same format can often use it too.
Is oh-my-android safe to use?
It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is oh-my-android still maintained?
The repository was last updated today, so oh-my-android is actively maintained.
<p align="center"> <img src="docs/icon.png" width="112" alt="Oh My Android app icon: a surprised Android robot"> </p> <h1 align="center">Oh My Android</h1> <p align="center"> <b>The missing control panel for the Android Emulator on macOS: a free ADB GUI for Mac.</b><br> Dark mode, font size, RTL language, TalkBack, network speed, GPS and more: one click each, no <code>adb</code> commands.<br> Layout Inspector in dp, accessibility audit, and an <b>MCP server</b> so AI agents can drive your emulator. </p> <p align="center"> <a href="https://github.com/ateymoori/oh-my-android/releases/latest"><img src="https://img.shields.io/github/v/release/ateymoori/oh-my-android?label=release&color=3DDC84" alt="Latest release"></a> <a href="https://royan.se/work/oh-my-android/"><img src="https://img.shields.io/badge/website-royan.se-0B7285" alt="Oh My Android website"></a> <a href="#install"><img src="https://img.shields.io/badge/brew-oh--my--android-FBB040?logo=homebrew&logoColor=white" alt="Homebrew cask"></a> <a href="#ai-agents-mcp"><img src="https://img.shields.io/badge/MCP-server-8A2BE2" alt="MCP server for AI agents"></a> <a href="https://github.com/ateymoori/oh-my-android/actions/workflows/build.yml"><img src="https://github.com/ateymoori/oh-my-android/actions/workflows/build.yml/badge.svg" alt="Build status"></a> <img src="https://img.shields.io/badge/macOS-26%2B-000000?logo=apple" alt="macOS 26 or later"> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT license"></a> <a href="https://github.com/ateymoori/oh-my-android/stargazers"><img src="https://img.shields.io/github/stars/ateymoori/oh-my-android?style=social" alt="GitHub stars"></a> </p> <p align="center"> <b>Install:</b> <code>brew install --cask ateymoori/tap/oh-my-android</code> · free and open source<br> <b>Website:</b> <a href="https://royan.se/work/oh-my-android/">royan.se/work/oh-my-android</a> </p> <p align="center"> <img src="docs/demo.gif" width="760" alt="Demo: the Oh My Android panel beside the Android Emulator switches dark mode, font size and language to Arabic RTL, then simulates an incoming SMS and call"> <br><sub>Dark mode, font size, Arabic RTL, incoming SMS and call. Each is one click.</sub> </p> <table align="center"> <tr> <td align="center"><a href="#features"><img src="docs/panel.jpg" height="340" alt="The Oh My Android control panel with appearance, app, capture and network actions"></a></td> <td align="center"><a href="#layout-inspector"><img src="docs/layout-inspector-talkback.jpg" height="340" alt="Layout Inspector with dp measurements and the TalkBack order audit"></a></td> <td align="center"><a href="#ai-agents-mcp"><img src="docs/ai-agents.jpg" height="340" alt="AI Agents settings: access level and one-step MCP setup for Claude Code, Codex, Cursor and VS Code"></a></td> </tr> <tr> <td align="center"><b>Control panel</b></td> <td align="center"><b>Layout Inspector + TalkBack audit</b></td> <td align="center"><b>MCP server for AI agents</b></td> </tr> </table> <p align="center"> <a href="#features">Features</a> · <a href="#no-more-adb-commands">adb cheat sheet</a> · <a href="#layout-inspector">Layout Inspector</a> · <a href="#ai-agents-mcp">AI agents (MCP)</a> · <a href="#troubleshooting">Troubleshooting</a> · <a href="#faq">FAQ</a> · <a href="CONTRIBUTING.md">Contribute</a> · <a href="https://royan.se/work/oh-my-android/">Website</a> </p>

Why Oh My Android?

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. It is a native macOS app for Android developers and QA testers: an Android Emulator GUI, an adb GUI for real phones, a Layout Inspector in dp, an accessibility checker, and an Android MCP server for Claude Code, Codex, Cursor and other AI coding agents.

  • ⚡ One click for nearly 50 everyday test actions
  • 📱 Emulators and real phones: USB or Wi‑Fi adb
  • 🔍 Layout Inspector: measure any view in dp, Figma-style, and overlay your design
  • ♿ Accessibility audit: TalkBack order, missing labels, small touch targets
  • 🗄️ Data Inspector: SharedPreferences and SQLite of your debug build
  • 🤖 MCP server for AI agents: your coding agent can see the screen, tap, switch settings and read logs
  • 🪶 Native and light: SwiftUI, Liquid Glass, event-driven (easy on the battery), no Electron, no telemetry
  • 🆓 Free and open source (MIT)

How it compares with Android Studio, scrcpy and other tools: docs/COMPARISON.md.

Install

brew install --cask ateymoori/tap/oh-my-android

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.

Use it from Claude Code, Codex or Cursor

brew install --cask ateymoori/tap/oh-my-android

claude mcp add --scope user oh-my-android -- ohmyandroid-mcp   # Claude Code
codex mcp add oh-my-android -- ohmyandroid-mcp                 # Codex CLI
gemini mcp add --scope user oh-my-android ohmyandroid-mcp      # Gemini CLI

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."

Features

| | 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.

No more adb commands

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 |

Layout Inspector

Freeze the screen and measure it like in Figma. Works with Jetpack Compose and classic Views.

<p align="center"> <img src="docs/layout-inspector.gif" width="820" alt="Layout Inspector: hover views to see their size in dp and the distances between them"> </p>
  • Hover any element to see its size in dp. Click one, hover another, and see the distance between them (gaps between siblings, paddings inside a parent).
  • 8 dp grid, color picker (hex, ⇧⌘C to copy), and an estimated text size in sp.
  • Design overlay: drop a Figma PNG export on the window, choose 1× / 2× / 3× or Fit width, set the opacity or use Difference blend, and nudge it with the arrow keys. Compare design and build pixel by pixel.

Accessibility audit

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.

Data Inspector

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.

AI agents (MCP)

Oh My Android includes an MCP server, so your AI coding agent can see and drive the emulator: screenshot, read the UI tree in dp, tap and type, switch to dark mode or RTL, read logcat and the app's database. The agent can build a screen, run it, look at the result, and fix it by itself.

<p align="center"> <img src="docs/ai-agents.jpg" width="500" alt="AI Agents settings: Off, Read only or Full control, and the setup command for each agent"> </p> <p align="center"> <a href="https://cursor.com/en/install-mcp?name=oh-my-android&config=eyJjb21tYW5kIjoiL29wdC9ob21lYnJldy9iaW4vb2hteWFuZHJvaWQtbWNwIn0="><img src="https://cursor.com/deeplink/mcp-install-dark.svg" height="32" alt="Add Oh My Android MCP server to Cursor"></a> <a href="https://insiders.vscode.dev/redirect/mcp/install?name=oh-my-android&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22%2Fopt%2Fhomebrew%2Fbin%2Fohmyandroid-mcp%22%7D"><img src="https://img.shields.io/badge/VS_Code-Install_MCP_server-0098FF?logo=visualstudiocode&logoColor=white" height="32" alt="Install Oh My Android MCP server in VS Code"></a> </p>

The buttons use the Homebrew path /opt/homebrew/bin/ohmyandroid-mcp. With the zip install, use the menu bar setup below.

Set up in one step: menu bar icon → AI Agents → Set Up…, choose your agent, click Copy (or Add to Cursor / Add to VS Code). Or by hand:

claude mcp add --scope user oh-my-android -- ohmyandroid-mcp   # Claude Code
codex mcp add oh-my-android -- ohmyandroid-mcp                 # Codex CLI
{ "mcpServers": { "oh-my-android": { "command": "/Applications/Oh 

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars47
CategoryDevelopment
Updated5h ago
Forks0

Languages

Swift

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info