Let AI agents test your iOS app in the Simulator — tap, type, swipe and assert, no testIDs needed. CLI + MCP server, zero dependencies.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/valewnrt/testaResumen de MCP Servers
<div align="center">
# Testa
**Let your AI agent test your iOS app.**
[](https://github.com/valewnrt/testa/actions/workflows/ci.yml)
[](https://github.com/valewnrt/testa/actions/workflows/xcode-beta.yml)
[](https://github.com/valewnrt/testa/releases)
[](LICENSE)
</div>
Testa gives Claude Code, Codex, Cursor or any MCP client eyes and hands in the
iOS Simulator. It reads the screen as compact text, taps, types and swipes with
real touch events, and checks the result. It works with React Native, Expo and
SwiftUI apps, and you don't have to add a single `testID`. When the agent is
done, save the run as a flow file and replay it in CI without a model.
<p align="center">
<img src="assets/testa-demo.gif" alt="Terminal running testa tap, pinch, rotate, dragdrop, typein, tapocr and assert next to the iOS Simulator, which reacts to each command" width="720">
</p>
## Install
Requires macOS with Xcode 26 (iOS 26 simulators).
```bash
brew tap valewnrt/testa
brew install testa
testa setup # installs the Claude Code skill and registers the MCP server
```
Or build from source: `git clone https://github.com/valewnrt/testa && cd testa && ./install.sh`.
## Connect your agent
`testa setup` already configures **Claude Code**. For other agents:
```bash
codex mcp add testa -- testa mcp # Codex
```
```json
{ "mcpServers": { "testa": { "command": "testa", "args": ["mcp"] } } }
```
The JSON goes into Cursor's `.cursor/mcp.json` or any other MCP client config.
Then ask your agent something like *"Launch the app in the simulator, sign up
with a test account and check that the welcome screen appears."*
More in [docs/agents.md](docs/agents.md).
## Try it yourself
Testa is a plain CLI, so you can drive it by hand too:
```console
$ testa boot "iPhone 17 Pro"
$ testa install ./MyApp.app && testa launch com.example.myapp
$ testa ui
19 elements (on screen)
e2 StaticText "ready" #status @201,89
e5 Button "Tap me" #tapButton @102,171
e18 TextField #textInput =type here @201,601
…
$ testa tap "Tap me"
tapped e5 Button Tap me
-- ui changes --
~ e2 StaticText "tap:1" #status @201,89
~ e6 StaticText "count: 1" #tapCount @41,208
$ testa assert "#status" label=tap:1
PASS label tap:1
```
The first command starts a background daemon (a few seconds, once). After that,
each command takes about 60 ms.
## What makes it different
- **No app changes needed.** Testa reads the accessibility tree and falls back
to on-device OCR (Apple Vision) for anything that isn't in it: system sheets,
canvas-drawn screens, games, WebViews. [More →](docs/ocr.md)
- **Built for token budgets.** A screen is one line per element, about 200
tokens instead of about 1,500 for a screenshot, and every action replies with
only what changed. [Benchmark →](bench/)
- **Record once, replay in CI.** `testa flow record` turns what the agent did
into a plain-text flow file. `testa flow run` replays it with JUnit output and
failure artifacts, and there's a GitHub Action. [More →](docs/flows-and-ci.md)
- **Real gestures and device control.** Tap, long-press, swipe, drag-and-drop,
pinch, rotate, multi-touch and hardware buttons, plus push notifications,
location, Face ID, dark mode, Dynamic Type and more.
- **One local binary, no dependencies.** Testa talks to Apple's simulator
frameworks directly: no Node, no Python, no WebDriver server. No network, no
telemetry. [How it works →](docs/architecture.md)
## Status
Testa is pre-1.0 and is used against real production apps. It relies on private
Apple frameworks, so a new Xcode can break it; a [weekly job](.github/workflows/xcode-beta.yml)
runs the suite against Xcode betas so breakage shows up early. Verified on Xcode 26.4 with
iOS 26.4 simulators. iOS Simulator only: no real devices, no Android
([why](docs/architecture.md#why-ios-only)).
## Documentation
- [Commands](docs/commands.md): selectors, the observe → act → verify loop, full reference
- [Using Testa from an AI agent](docs/agents.md): MCP setup, tools, token cost
- [Testing apps without testIDs](docs/ocr.md)
- [Flows & CI](docs/flows-and-ci.md): flow files, recording, GitHub Action
- [How it works](docs/architecture.md) · [Security model](docs/security.md)
- [How Testa compares](docs/comparison.md) to Maestro, Appium, idb and Argent
- [Troubleshooting & limitations](docs/troubleshooting.md)
## Contributing
Bug reports, Xcode-compatibility reports and pull requests are welcome. Start
with [CONTRIBUTING.md](CONTRIBUTING.md); questions and ideas go to
[Discussions](https://github.com/valewnrt/testa/discussions). Changes are listed
in the [CHANGELOG](CHANGELOG.md).
## Acknowledgements
Testa's HID and accessibility work was informed by studying Meta's
[idb](https://github.com/facebook/idb) (MIT); no idb code is linked or bundled.
Thanks to everyone who has [contributed](https://github.com/valewnrt/testa/graphs/contributors).
## License
[MIT](LICENSE)
Lo que la gente pregunta sobre testa
¿Qué es valewnrt/testa?
+
valewnrt/testa es mcp servers para el ecosistema de Claude AI. Let AI agents test your iOS app in the Simulator — tap, type, swipe and assert, no testIDs needed. CLI + MCP server, zero dependencies. Tiene 3 estrellas en GitHub y su última actualización registrada es del 2026-10-08.
¿Cómo se instala testa?
+
Puedes instalar testa clonando el repositorio (https://github.com/valewnrt/testa) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar valewnrt/testa?
+
Nuestro agente de seguridad ha analizado valewnrt/testa y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene valewnrt/testa?
+
valewnrt/testa es mantenido por valewnrt. La última actividad registrada en GitHub es del 2026-10-08, con 0 issues abiertos.
¿Hay alternativas a testa?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega testa en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/valewnrt-testa)<a href="https://claudewave.com/repo/valewnrt-testa"><img src="https://claudewave.com/api/badge/valewnrt-testa" alt="Featured on ClaudeWave: valewnrt/testa" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.