Design Documentation¶
Technical architecture and design details for AutoMobile.
Overview¶
AutoMobile is a mobile UI automation framework built on the Model Context Protocol (MCP). It enables AI agents to interact with Android and iOS devices for testing, exploration, and automation.
flowchart TB
subgraph Clients
Agent["🤖 AI Agent"]
IDE["💻 IDE Plugin"]
CLI["🧪 Test Runner"]
end
subgraph MCP["MCP Server"]
Transport["Transport Layer
(STDIO / HTTP)"]
Registry["Tool & Resource
Registry"]
subgraph Features["Feature Composition"]
Actions["Actions
(tap, swipe, input)"]
Observe["Observation
(hierarchy, screenshot)"]
AppMgmt["App Management
(launch, terminate)"]
DeviceMgmt["Device Management
(list, start, kill)"]
end
end
subgraph External["External Interfaces"]
WS["📡 WebSocket
Clients"]
Socket["🔌 Unix Socket
Commands"]
CLITools["🛠️ CLI Tools
(adb, xcrun)"]
end
subgraph Devices["Devices"]
Android["📱 Android"]
iOS["📱 iOS"]
end
Agent --> Transport
IDE --> Transport
CLI --> Transport
Transport --> Registry
Registry --> Features
Actions --> WS
Observe --> WS
AppMgmt --> CLITools
DeviceMgmt --> CLITools
DeviceMgmt --> Socket
WS --> Android
WS --> iOS
CLITools --> Android
CLITools --> iOS
classDef client fill:#FF3300,stroke-width:0px,color:white;
classDef mcp fill:#525FE1,stroke-width:0px,color:white;
classDef external fill:#00AA55,stroke-width:0px,color:white;
classDef device fill:#666666,stroke-width:0px,color:white;
class Agent,IDE,CLI client;
class Transport,Registry,Actions,Observe,AppMgmt,DeviceMgmt mcp;
class WS,Socket,CLITools external;
class Android,iOS device;
Core Components¶
| Component | Description |
|---|---|
| MCP Server | Protocol server enabling AI agent interaction |
| Interaction Loop | Observe-act-observe cycle with idle detection |
| Observation | Real-time UI hierarchy and screen capture |
| Actions | Touch, swipe, input, and app management |
| Navigation Graph | Automatic screen flow mapping |
| Daemon | Device pooling and test execution |
Design Principles¶
High quality, performant, and accessible workflows are necessary to creating good software.
- Fast & Accurate - Mobile UX can change instantly so slow observations translate to lower quality analysis.
- Reliable Element Search - Multiple strategies with integrated vision fallback.
- Autonomous Operation - AI agents explore without human guidance or intervention.
- CI/CD Ready - Built for automated testing pipelines, dogfooding the tool to test itself.
- Accessible - You shouldn’t need to be a build engineer or AI expert to use AutoMobile.
Platform Support¶
Android¶
| Component | Purpose |
|---|---|
| Accessibility Service | Real-time view hierarchy access |
| JUnitRunner | Test execution framework |
| IDE Plugin | Android Studio integration |
| Work Profiles | Enterprise device support |
iOS (Planned)¶
| Component | Purpose |
|---|---|
| iOS Overview | Architecture and roadmap |
| XCTestService | WebSocket automation server |
| XCTestRunner | Test execution framework |
| Xcode Integration | Editor extension |