Metadata-Version: 2.4
Name: appilot
Version: 0.1.3
Summary: Autopilot for mobile apps - MCP server for AI-driven Android and iOS automation
Project-URL: Homepage, https://github.com/anthropics/appilot
Project-URL: Documentation, https://appilot.dev/docs
Project-URL: Repository, https://github.com/anthropics/appilot
Project-URL: Issues, https://github.com/anthropics/appilot/issues
Author: Appilot Team
License-Expression: MIT
License-File: LICENSE
Keywords: ai-testing,android,appilot,appium,automation,claude,ios,mcp,mobile-testing
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.0
Requires-Dist: anyio>=4.0
Requires-Dist: appium-python-client>=4.0
Requires-Dist: click>=8.0
Requires-Dist: httpx>=0.27
Requires-Dist: mcp>=1.0.0
Requires-Dist: packaging>=23.0
Requires-Dist: pillow>=10.0
Requires-Dist: pydantic-settings>=2.0
Requires-Dist: pydantic>=2.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: rich>=13.0
Requires-Dist: selenium>=4.0
Requires-Dist: structlog>=24.0
Requires-Dist: toml>=0.10
Provides-Extra: all
Requires-Dist: mitmproxy>=10.0; extra == 'all'
Requires-Dist: mypy>=1.10; extra == 'all'
Requires-Dist: opencv-python>=4.9; extra == 'all'
Requires-Dist: pre-commit>=3.0; extra == 'all'
Requires-Dist: pytest-asyncio>=0.23; extra == 'all'
Requires-Dist: pytest-cov>=4.0; extra == 'all'
Requires-Dist: pytest>=8.0; extra == 'all'
Requires-Dist: ruff>=0.4; extra == 'all'
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pre-commit>=3.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: security
Requires-Dist: mitmproxy>=10.0; extra == 'security'
Provides-Extra: visual
Requires-Dist: opencv-python>=4.9; extra == 'visual'
Description-Content-Type: text/markdown

# Appilot

[![PyPI version](https://badge.fury.io/py/appilot.svg)](https://badge.fury.io/py/appilot)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io/)

**Autopilot for mobile apps** - An MCP server that lets AI agents like Claude automate Android and iOS apps.

## Why Appilot?

Appilot bridges AI assistants and mobile devices:

- **Natural language automation** - "Tap login and enter credentials"
- **Multi-step workflows** - Complex tasks across apps
- **Performance monitoring** - Memory leaks, CPU spikes, battery drain
- **Security scanning** - Hardcoded secrets, insecure connections

## Installation

```bash
pip install appilot
```

### Setup Appium (Required)

```bash
appilot setup
```

This installs Appium, UiAutomator2 (Android), and XCUITest (iOS).

## Quick Start with Claude Code

### 1. Install

```bash
pip install appilot
appilot setup
```

### 2. Add to Claude Code

```bash
claude mcp add appilot -- appilot serve
```

### 3. Use It

Open Claude Code and ask:

> "Connect to my Android device and take a screenshot"

> "Find the login button and tap it"

> "Check the app's memory usage"

Type `/mcp` to verify Appilot is connected.

## Features

### 90+ MCP Tools

| Category | Examples |
|----------|----------|
| **Session** | `create_session`, `list_devices`, `connect_device` |
| **Screen** | `take_screenshot`, `get_screen_size`, `set_orientation` |
| **Elements** | `find_element`, `tap`, `type_text`, `swipe` |
| **App** | `install_app`, `launch_app`, `get_app_state` |
| **Performance** | `start_memory_profiling`, `get_cpu_usage`, `check_battery` |
| **Security** | `scan_for_secrets`, `check_ssl_pinning`, `analyze_permissions` |

### Platform Support

| Platform | Device Types | Automation |
|----------|--------------|------------|
| **Android** | Real devices, Emulators | UiAutomator2 via Appium |
| **iOS** | Real devices, Simulators | XCUITest via Appium |

## Configuration

Create a `.env` file:

```bash
# Platform (android or ios)
APPILOT_DEFAULT_PLATFORM=android

# Appium server
APPILOT_APPIUM_HOST=127.0.0.1
APPILOT_APPIUM_PORT=4723

# Logging
APPILOT_LOG_LEVEL=INFO
```

## CLI Commands

```bash
# Start MCP server (for Claude Code)
appilot serve

# HTTP transport
appilot serve --transport http --port 8765

# Install Appium
appilot setup

# Check status
appilot setup --check

# List devices
appilot devices

# System status
appilot status

# Health check
appilot health
```


## Requirements

- **Python 3.11+**
- **Node.js 18+** (for Appium)
- **Android SDK** (for Android)
- **Xcode** (for iOS, macOS only)

## Examples

### Basic Automation

```
User: Connect to my Android device and open Settings

Claude: I'll connect to your Android device and open Settings.

[Uses create_session tool]
[Uses launch_app tool with package="com.android.settings"]

Done! Settings is now open.
```

### Performance Testing

```
User: Monitor memory usage for 30 seconds

Claude: I'll start memory profiling.

[Uses start_memory_profiling tool]
... 30 seconds later ...
[Uses stop_memory_profiling tool]

Memory Report:
- Baseline: 85 MB
- Peak: 142 MB
- Final: 138 MB

Warning: Possible memory leak detected (53 MB growth).
```


## License

MIT License - see [LICENSE](LICENSE).

## Links

- [PyPI](https://pypi.org/project/appilot/)
- [GitHub](https://github.com/anthropics/appilot)
- [MCP Protocol](https://modelcontextprotocol.io/)
