Metadata-Version: 2.4
Name: appilot
Version: 0.1.4
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

## Prerequisites

Before installing Appilot, you need:

1. **Python 3.11+** - [Download](https://www.python.org/downloads/)
2. **Node.js 18+** - Required for Appium
   - macOS: `brew install node`
   - Ubuntu: `sudo apt install nodejs npm`
   - Windows: [Download](https://nodejs.org/)
3. **Android SDK** (for Android testing) - [Install Guide](https://developer.android.com/studio)
4. **Xcode** (for iOS testing, macOS only) - Install from App Store

## Installation

```bash
# Step 1: Install Appilot
pip install appilot

# Step 2: Install Appium and drivers
appilot setup

# Step 3: Verify installation
appilot setup --check
```

## Quick Start with Claude Code

### 1. Add to Claude Code

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

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

## CLI Commands

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

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

# Install/update Appium
appilot setup

# Check dependencies
appilot setup --check

# Upgrade Appilot
appilot upgrade

# List devices
appilot devices

# System status
appilot status

# Health check
appilot health
```

## Configuration

Create a `.env` file (optional):

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

## 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).
```

## Troubleshooting

### "Node.js not found"
Install Node.js first: `brew install node` (macOS) or [download](https://nodejs.org/)

### "ADB not found"
Install Android SDK and add `platform-tools` to your PATH.

### "Appium connection failed"
1. Start Appium manually: `appium`
2. Check if device is connected: `adb devices` or `xcrun simctl list`

## License

MIT License - see [LICENSE](LICENSE).

## Links

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