mobile-use-setup
Walks developers through Minitap SDK setup and validates system prerequisites like Python and required environment tools.
Install
mkdir -p .claude/skills/mobile-use-setup && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6279" && unzip -o skill.zip -d .claude/skills/mobile-use-setup && rm skill.zipInstalls to .claude/skills/mobile-use-setup
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Interactive setup wizard for Minitap mobile-use SDK. USE WHEN user wants to set up mobile automation, configure mobile-use SDK, connect iOS or Android devices, or create a new mobile testing project.Key capabilities
- →Identify hardware platform requirements (iOS/Android)
- →Configure local versus platform-based LLM settings
- →Validate prerequisite software (Python, Appium, libimobiledevice)
- →Initialize project scaffolding for mobile testing
How it works
It runs a series of diagnostic scripts to check for required binary availability (adb, idevice) and guides the user through the dependency installation process.
Inputs & outputs
When to use mobile-use-setup
- →Set up mobile automation for an app
- →Connect physical iOS or Android devices
- →Configure cloud virtual devices
- →Initialize a new mobile testing project
About this skill
Mobile-Use SDK Setup Wizard
Interactive guide for setting up the Minitap mobile-use SDK with support for iOS and Android devices, Platform and Local modes.
When to Apply
This skill activates when users want to:
- Set up mobile automation for an app
- Configure the Minitap mobile-use SDK
- Connect physical iOS or Android devices
- Set up cloud virtual devices
- Create a new mobile testing project
Setup Flow
Phase 1: Gather Requirements
Ask the user these questions using the AskUserQuestion tool:
-
Target Platform
- Question: "Which platform(s) do you want to automate?"
- Options: iOS only, Android only, Both iOS and Android
-
LLM Configuration Mode
- Question: "How do you want to configure AI/LLM?"
- Options:
- Platform (Recommended) - Minitap handles LLM config, just need API key
- Local - Full control with local config files and your own API keys
-
Device Type (if iOS selected)
- Question: "What iOS device setup do you need?"
- Options:
- Physical device (iPhone/iPad via USB)
- Simulator (Xcode iOS Simulator)
-
Device Type (if Android selected)
- Question: "What Android device setup do you need?"
- Options:
- Physical device (via USB/WiFi ADB)
- Cloud device (Minitap virtual Android)
Phase 2: Check Prerequisites
Run these checks based on user selections:
# Always check
python3 --version # Requires 3.12+
which uv # Package manager
# For iOS physical device
which idevice_id # libimobiledevice
which appium # Appium
appium driver list # XCUITest driver
# For iOS simulator
which idb_companion # Facebook idb
# For Android
which adb # Android platform tools
adb devices # Device connection
Phase 3: Install Missing Dependencies
iOS Physical Device Setup:
# Install libimobiledevice
brew install libimobiledevice
# Install Appium + XCUITest
npm install -g appium
appium driver install xcuitest
iOS Simulator Setup:
brew tap facebook/fb
brew install idb-companion
Android Setup:
# macOS
brew install --cask android-platform-tools
# Linux
sudo apt install android-tools-adb
UV Package Manager:
curl -LsSf https://astral.sh/uv/install.sh | sh
Phase 4: Create Project
# Create new project
uv init <project-name>
cd <project-name>
# Add SDK
uv add minitap-mobile-use python-dotenv
Phase 5: Configure Credentials
For Platform Mode:
- Direct user to https://platform.minitap.ai to create account
- Navigate to API Keys → Create API Key
- Create .env file:
MINITAP_API_KEY=<their-key>
- Add .env to .gitignore
For Local Mode:
- Copy the config template:
cp llm-config.override.template.jsonc llm-config.override.jsonc - Edit
llm-config.override.jsoncwith preferred models (refer tollm-config.defaults.jsoncfor recommended settings) - Add provider API keys to .env (OPENAI_API_KEY, etc.) or set MINITAP_API_KEY for optimized config
Phase 6: Device-Specific Setup
iOS Physical Device (requires manual Xcode steps):
Inform user they need to:
- Open WebDriverAgent in Xcode:
open ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj - Sign these targets with their Apple ID:
- WebDriverAgentRunner
- WebDriverAgentLib
- IntegrationApp
- Change Bundle IDs to unique values
- Build IntegrationApp once with device connected
- Trust developer certificate on device: Settings → General → VPN & Device Management
Android Physical Device:
Inform user they need to:
- Enable Developer Options (tap Build Number 7 times)
- Enable USB Debugging
- Connect device and tap "Allow" on USB debugging prompt
Phase 7: Create Starter Script
Generate main.py based on configuration:
Platform Mode:
import asyncio
from dotenv import load_dotenv
from minitap.mobile_use.sdk import Agent
from minitap.mobile_use.sdk.types import PlatformTaskRequest
load_dotenv()
async def main() -> None:
agent = Agent()
await agent.init()
result = await agent.run_task(
request=PlatformTaskRequest(task="your-task-name")
)
print(result)
await agent.clean()
if __name__ == "__main__":
asyncio.run(main())
Local Mode:
import asyncio
from dotenv import load_dotenv
from minitap.mobile_use.sdk import Agent
from minitap.mobile_use.sdk.types import AgentProfile
from minitap.mobile_use.sdk.builders import Builders
load_dotenv()
async def main() -> None:
profile = AgentProfile(name="default", from_file="llm-config.override.jsonc")
config = Builders.AgentConfig.with_default_profile(profile).build()
agent = Agent(config=config)
await agent.init()
result = await agent.run_task(
goal="Your automation goal here",
name="task-name"
)
print(result)
await agent.clean()
if __name__ == "__main__":
asyncio.run(main())
Phase 8: Verify Setup
Run verification based on device type:
# iOS physical
idevice_id -l
# iOS simulator
xcrun simctl list devices
# Android
adb devices
# Test SDK import
uv run python -c "from minitap.mobile_use.sdk import Agent; print('SDK OK')"
Quick Reference
| Setup Type | Key Dependencies | Verification |
|---|---|---|
| iOS Physical | Appium, XCUITest, libimobiledevice | idevice_id -l |
| iOS Simulator | idb-companion | xcrun simctl list |
| Android Physical | ADB | adb devices |
| Android Cloud | None (Platform only) | N/A |
Troubleshooting
| Issue | Solution |
|---|---|
| Python < 3.12 | Install Python 3.12+ via pyenv or homebrew |
| UV not found | curl -LsSf https://astral.sh/uv/install.sh | sh |
| idevice_id not found | brew install libimobiledevice |
| ADB not found | brew install --cask android-platform-tools |
| WDA build fails | Check Xcode signing for all 3 targets |
| Device unauthorized | Enable USB debugging, tap Allow on device |
| CLT version error | sudo xcode-select --install |
Examples
Example 1: New iOS automation project
User: "Help me set up mobile automation for my iOS app"
→ Ask: Platform preference (iOS), Mode (Platform), Device (Physical)
→ Check: python3, uv, libimobiledevice, appium
→ Install: Missing dependencies
→ Create: Project with uv init
→ Configure: .env with MINITAP_API_KEY
→ Guide: Xcode WebDriverAgent signing
→ Verify: idevice_id -l shows device
Example 2: Android cloud setup
User: "Set up mobile testing with cloud devices"
→ Ask: Platform (Android), Mode (Platform), Device (Cloud)
→ Check: python3, uv
→ Create: Project with uv init
→ Configure: .env with MINITAP_API_KEY
→ Guide: Create Virtual Mobile on platform.minitap.ai
→ Generate: main.py with for_cloud_mobile config
Example 3: Full local development setup
User: "I want full control over LLM config for mobile automation"
→ Ask: Platform (Both), Mode (Local), Devices (Physical)
→ Check: All dependencies
→ Create: Project, llm-config.override.jsonc
→ Configure: Provider API keys in .env
→ Guide: Device-specific setup for iOS and Android
→ Generate: main.py with local profile config
When not to use it
- →If the mobile application does not use Minitap SDK
- →When only web-based testing is required
Prerequisites
Limitations
- →Requires administrative access for installing dependencies
- →Limited by the state of local system drivers
How it compares
It automates the environment validation and project scaffolding sequence rather than relying on generic installation manuals.
Compared to similar skills
mobile-use-setup side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| mobile-use-setup (this skill) | 1 | 6mo | Caution | Beginner |
| dev | 2 | 6mo | Review | Advanced |
| examples-auto-run | 2 | 3mo | Review | Intermediate |
| lora-manager-e2e | 1 | 6mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
dev
atopile
LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags.
examples-auto-run
openai
Run python examples in auto mode with logging, rerun helpers, and background control.
lora-manager-e2e
willmiao
End-to-end testing and validation for LoRa Manager features. Use when performing automated E2E validation of LoRa Manager standalone mode, including starting/restarting the server, using Chrome DevTools MCP to interact with the web UI at http://127.0.0.1:8188/loras, and verifying frontend-to-backend functionality. Covers workflow validation, UI interaction testing, and integration testing between the standalone Python backend and the browser frontend.
migrate
alirezarezvani
Migrate from Cypress or Selenium to Playwright. Use when user mentions "cypress", "selenium", "migrate tests", "convert tests", "switch to playwright", "move from cypress", or "replace selenium".
droidrun-docs
droidrun
DroidRun documentation reference. Use when users ask about DroidRun setup, configuration, SDK usage, CLI commands, device setup, agents, architecture, app cards, credentials, tracing, Docker, migration, structured output, or any DroidRun "how do I..." questions.
create-environments
PrimeIntellect-ai
Create or migrate verifiers environments for the Prime Lab ecosystem. Use when asked to build a new environment from scratch, port an eval or benchmark from papers or other libraries, start from an environment on the Hub, or convert existing tasks into a package that exposes load_environment and installs cleanly with prime env install.