explaingit

dj931567261/app-test-control

21TypeScriptAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

AI driven mobile app testing tool that lets MCP aware clients drive Android or iOS simulators across DevTest, QA, Minimize, and Smart QA modes.

Mindmap

mindmap
  root((app-test-control))
    Inputs
      Git diff
      Product requirements doc
      Crash reproduction steps
    Outputs
      Bug list
      Test session reports
      Minimized repro steps
    Use Cases
      Drive Android tests from Claude Code
      Smoke test changed screens
      Shrink long crash repros
    Tech Stack
      TypeScript
      Node 20
      MCP
      mobile-mcp

Things people build with this

USE CASE 1

Let Claude Code or Cursor drive an Android simulator and verify the screen you just changed in git diff

USE CASE 2

Have an AI explore the app on its own and produce a crash and bug list

USE CASE 3

Shrink a 12 step crash reproduction down to the minimal failing sequence

USE CASE 4

Compare actual app behavior to a product requirements document via Smart QA

Tech stack

TypeScriptNode.jsnpmMCPAndroid SDKXcode

Getting it running

Difficulty · hard Time to first run · 1h+

Needs Node 20 plus npm 10, Android SDK platform tools for adb, and Xcode command line tools for the iOS simulator before any setup command will succeed.

MIT, you can use, modify, and distribute the code commercially as long as you keep the copyright and license notice.

In plain English

This project is a testing tool for mobile apps that is driven by AI assistants. It lets an MCP aware AI coding client such as Claude Code, Cursor, Claude Desktop, Codex CLI, or opencode take control of an Android or iOS simulator or a real device and run tests for you. The README is in Chinese, and the project ships with TypeScript code plus documentation files like PLAN.md, PROGRESS.md, and several setup guides under docs. The tool works in four named modes. DevTest reads the output of git diff, guesses which screen of the app you just changed, runs through it, and reports whether the change still works. QA explores the app on its own, uses a state graph to avoid loops, catches crashes, and produces a bug list. Minimize takes a long crash reproduction, say twelve steps, and uses delta debugging to shrink it to a shorter sequence such as three. Smart QA reads a product requirements document, infers business flows from the source code, then runs the app and compares actual behavior to what the requirements say. Inside the repository there are five custom MCP servers (log, report, ui, analyzer, code-analyzer) and four Skill files (devtest, qa, minimize, smart-qa). It also relies on the upstream mobile-mcp package for the actual device control layer. To use the project, the README suggests pasting a one line instruction into your AI client and letting the AI handle the install, or running npm install, npm run build, and npm run prewarm yourself. After that you pick a setup command per client, for example npm run setup for Claude Code, or the same with a flag like --client cursor or --client codex. The README also documents npm run sessions, which starts a local web page on port 7321 for browsing past test sessions, screenshots, and reports. System requirements are Node.js 20 or newer, npm 10 or newer, Android SDK Platform Tools for adb on Android, and the Xcode command line tools for iOS Simulator. The license is MIT, and the README credits the linux.do community and the mobile-mcp project.

Copy-paste prompts

Prompt 1
Run npm install, npm run build, and npm run prewarm for app-test-control and explain what prewarm caches
Prompt 2
Set up app-test-control with Claude Code by running npm run setup and walk me through the MCP server registration
Prompt 3
Use the DevTest mode to take my latest git diff, find the affected screen on an Android simulator, and report results
Prompt 4
Launch the QA mode against my iOS simulator app and produce a bug list with crash stack traces
Prompt 5
Take this 12 step crash reproduction and run Minimize to give me the shortest failing sequence
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.