moai-domain-adb
π―Skillfrom rdmptv/adbautoplayer
Automates Android device interactions through comprehensive ADB scripting, enabling game bot development, device management, and computer vision workflows.
Installation
npx skills add https://github.com/rdmptv/adbautoplayer --skill moai-domain-adbSkill Details
|
Overview
# moai-domain-adb: ADB Automation Domain Specialist
Tier 3 Modularized Skill for intelligent Android automation, game bot development, and real-time device orchestration.
---
π― Quick Reference
Core Competencies
| Domain | Capability | Module |
|--------|-----------|--------|
| Device Control | ADB connection, shell execution, property inspection | adb-fundamentals |
| Device Management | Multi-device orchestration, state tracking, lifecycle | device-management |
| Game Automation | Bot scripting, action sequences, timing control | game-automation |
| Vision & Detection | Template matching, OCR, region-based detection | computer-vision |
| Tauri Integration | UI-Python bridge, real-time communication, deployment | tauri-integration |
Key Functions (Quick Access)
Device Operations
```python
# Check device status
adb devices --list-long
# Execute shell command
adb shell input tap 540 960
# Get device property
adb shell getprop ro.build.version.sdk
# Install APK
adb install -r game.apk
```
Bot Control
```python
# Start bot
adb shell am start -n com.game/.MainActivity
# Send input sequence
adb shell input tap x y && sleep 1 && adb shell input tap x2 y2
# Capture screenshot
adb shell screencap -p /sdcard/screen.png
```
Module Selection Guide
Use when you need to...
- Understand ADB fundamentals: Load
adb-fundamentalsmodule
- Connection protocols, authentication, basic shell operations
- Device discovery, property reading, system interaction
- Manage multiple devices: Load
device-managementmodule
- Device state tracking, connection pooling, failover strategies
- Batch operations, monitoring, lifecycle management
- Develop game bots: Load
game-automationmodule
- Click sequences, timing, OCR parsing, state detection
- Custom routines, action templates, bot patterns
- Use vision for detection: Load
computer-visionmodule
- Template matching (OpenCV), OCR (Tesseract)
- Region-based detection, image analysis, pattern recognition
- Integrate with Tauri UI: Load
tauri-integrationmodule
- Real-time bot status updates, command queueing
- UI β Python communication, resource management
---
π Implementation Guide
Architecture Overview
moai-domain-adb follows a 5-module progressive disclosure pattern:
```
moai-domain-adb/
βββ SKILL.md # This file (documentation hub)
βββ modules/
β βββ adb-fundamentals.md # Level 1: Core ADB operations
β βββ device-management.md # Level 2: Multi-device orchestration
β βββ game-automation.md # Level 3: Bot development patterns
β βββ computer-vision.md # Level 4: Vision-based detection
β βββ tauri-integration.md # Level 5: UI orchestration
βββ scripts/ # IndieDevDan UV scripts
βββ adb_device_analyzer.py # Analyze device capabilities
βββ adb_bot_generator.py # Generate bot skeletons
βββ adb_template_creator.py # Create action templates
βββ adb_performance_profiler.py # Profile bot performance
βββ adb_config_validator.py # Validate configurations
βββ adb_game_tester.py # Test bot on devices
βββ adb_deployment_helper.py # Deploy to production
```
Tier 3 Characteristics
β Modularized: 5 independent modules (no cross-module imports)
β Production-Ready: 500+ line SKILL.md with comprehensive docs
β Scripted: 7 UV scripts following IndieDevDan 13 rules
β Delegatable: Works with expert- and manager- agents
β Reusable: Applicable to any Android automation project
Usage Pattern
```python
# Pattern 1: Load skill for general ADB knowledge
Skill("moai-domain-adb")
# Pattern 2: Load specific module for targeted expertise
# In agent prompt: "Use moai-domain-adb:adb-fundamentals for device operations"
# Pattern 3: Reference UV script for automated tasks
# Command: uv run .claude/skills/moai-domain-adb/scripts/adb_device_analyzer.py --device emulator-5554
```
Integration Points
With Agents:
adb-bot-runner: Executes bots using game-automation patternsadb-device-manager: Manages devices using device-management expertiseadb-game-tester: Tests bots using computer-vision and game-automationadb-config-manager: Validates configs using config-validator scriptadb-workflow-orchestrator: Coordinates all agents using tauri-integration patterns
With Commands:
/adb:initβ Uses adb-fundamentals + adb_device_analyzer/adb:botβ Uses game-automation + adb_bot_generator/adb:testβ Uses computer-vision + adb_game_tester/adb:deployβ Uses tauri-integration + adb_deployment_helper
With UV Scripts:
All 7 scripts are self-contained (zero dependencies on each other), follow PEP 723, and implement dual output (human-readable + JSON).
Progressive Disclosure Strategy
Level 1: Getting Started
- Read: adb-fundamentals module
- Run:
adb_device_analyzer.pyto list devices - Understand: Basic device connection and property reading
Level 2: Multi-Device Workflows
- Read: device-management module
- Understand: Connection pooling, state tracking, failover
- Build: Scripts that manage 5+ devices simultaneously
Level 3: Game Bot Development
- Read: game-automation module
- Understand: Click sequences, timing control, OCR integration
- Build: Custom routines for game-specific tasks
Level 4: Vision-Based Automation
- Read: computer-vision module
- Understand: Template matching, OCR parsing, region detection
- Build: Bots that adapt to UI changes dynamically
Level 5: Production Orchestration
- Read: tauri-integration module
- Understand: Real-time UI updates, command queuing, resource management
- Build: Enterprise workflows with Tauri UI control
---
π Advanced Topics
Skill Composition Strategy
moai-domain-adb is designed for modular composition:
```python
# Example 1: Simple device check
# Required: adb-fundamentals
agent = Task(
subagent_type="expert-backend",
prompt="Use moai-domain-adb:adb-fundamentals to list ADB devices"
)
# Example 2: Multi-device bot deployment
# Required: device-management + game-automation + tauri-integration
agent = Task(
subagent_type="adb-workflow-orchestrator",
prompt="Deploy game bot to 3 devices"
)
# Example 3: Vision-based testing
# Required: computer-vision + game-automation
agent = Task(
subagent_type="adb-game-tester",
prompt="Test bot with computer vision verification"
)
```
Performance Optimization
Device Batching:
- Group commands by device to reduce round-trip latency
- Use
adb_performance_profiler.pyto identify bottlenecks - Target: Execute 100 actions in <5 seconds
Caching Strategies:
- Cache device properties (refreshed every 60s)
- Cache template images (refreshed on detection failure)
- Cache bot configurations (invalidated on user edit)
Concurrency:
- Run multi-device operations with ThreadPoolExecutor
- Limit to 5 concurrent ADB operations per host
- Use queuing for >5 devices
Security Considerations
Authentication:
- ADB uses RSA key exchange; validate device certificates
- Never store unencrypted device pairing keys
- Rotate pairing keys quarterly for production devices
Permissions:
- Request minimal shell commands (avoid
suunless necessary) - Use app-specific commands instead of root access
- Audit bot actions for unintended side effects
Data Protection:
- Never capture sensitive data in screenshots
- Encrypt stored configurations containing API keys
- Use secure storage for game credentials
Debugging & Troubleshooting
Common Issues:
| Issue | Diagnosis | Solution |
|-------|-----------|----------|
| Device not found | adb_device_analyzer.py --check-connection | Verify USB connection, check ADB daemon |
| Slow bot execution | adb_performance_profiler.py --device | Reduce click delays, batch operations |
| Template matching fails | Check image DPI/resolution | Run adb_template_creator.py --device |
| OCR accuracy poor | Preprocess image (contrast, threshold) | See computer-vision module for tips |
| Tauri communication lag | Check Python process CPU | Reduce log verbosity, optimize render loop |
Debug Mode:
```bash
# Enable verbose logging
export ADB_DEBUG=1
uv run .claude/skills/moai-domain-adb/scripts/adb_device_analyzer.py --verbose
# Trace ADB commands
adb logcat | grep "adb_bot_runner"
```
Testing Strategy (TRUST 5 Framework)
Test Coverage Target: β₯85%
- Unit Tests: Individual module functions (py.test)
- Integration Tests: Module interactions (device mock)
- E2E Tests: Full workflow with real devices (optional)
- Performance Tests: Execution time benchmarks
- Security Tests: Input validation, permission checks
Test Execution:
```bash
# Run all tests
pytest tests/ -v --cov=.claude/skills/moai-domain-adb
# Run specific module tests
pytest tests/test_device_management.py -v
# Profile performance
pytest tests/ --benchmark-only
```
---
π Module Navigation
Each module builds upon previous knowledge but is independently usable:
- [adb-fundamentals](./modules/adb-fundamentals.md) (250 lines)
- ADB architecture, connection protocols, device discovery
- Shell execution, property reading, device interaction
- [device-management](./modules/device-management.md) (280 lines)
- Multi-device orchestration, state tracking, connection pooling
- Lifecycle management, monitoring, failover strategies
- [game-automation](./modules/game-automation.md) (300 lines)
- Bot scripting patterns, click sequences, timing control
- OCR integration, state detection, action templates
- [computer-vision](./modules/computer-vision.md) (270 lines)
- Template matching (OpenCV), OCR (Tesseract)
- Region detection, image preprocessing, pattern recognition
- [tauri-integration](./modules/tauri-integration.md) (240 lines)
- Tauri-Python IPC, real-time updates, command queueing
- Resource management, deployment strategies, monitoring
---
π οΈ Scripts & Tools
All scripts follow IndieDevDan 13 Rules (PEP 723, 9-section structure, dual output):
```bash
# Analyze device capabilities
uv run scripts/adb_device_analyzer.py --device emulator-5554 --json
# Generate bot skeleton
uv run scripts/adb_bot_generator.py --game "My Game" --output my_bot.py
# Create action template
uv run scripts/adb_template_creator.py --screenshot screen.png --region "0,0,1080,1920"
# Profile bot performance
uv run scripts/adb_performance_profiler.py --bot bot.py --iterations 100
# Validate configuration
uv run scripts/adb_config_validator.py --config config.yaml --strict
# Test bot on device
uv run scripts/adb_game_tester.py --bot bot.py --device emulator-5554
# Prepare deployment
uv run scripts/adb_deployment_helper.py --bot bot.py --target production
```
Complete Scripts Reference (36 scripts)
All scripts are located in scripts/ directory and organized by category. Each script supports:
--device/-d- Specify device ID (defaults to first connected)--toon- Output in TOON/YAML format for automation--verbose/-v- Enable verbose logging--help- Show detailed help and usage examples
See [scripts/README.md](./scripts/README.md) for comprehensive documentation with 150+ usage examples.
#### π Connection (4 scripts)
Location: scripts/connection/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_connect.py | Connect to device via IP:port | --device (default: 127.0.0.1:5555) | uv run scripts/connection/adb_connect.py |
| adb_disconnect.py | Disconnect device gracefully | --device | uv run scripts/connection/adb_disconnect.py |
| adb_restart_server.py | Restart ADB server | --verbose | uv run scripts/connection/adb_restart_server.py |
| adb_device_status.py | List all devices and status | --toon | uv run scripts/connection/adb_device_status.py |
#### π± Screen (6 scripts)
Location: scripts/screen/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_screenshot.py | Capture screenshot | --output FILE | uv run scripts/screen/adb_screenshot.py --output capture.png |
| adb_tap.py | Tap at coordinates | --x X --y Y --count N | uv run scripts/screen/adb_tap.py --x 500 --y 1000 |
| adb_swipe.py | Swipe gesture | --preset {up,down,left,right} or --start X,Y --end X,Y | uv run scripts/screen/adb_swipe.py --preset up |
| adb_keyevent.py | Send key event | --key {back,home,menu,power,volume_up} | uv run scripts/screen/adb_keyevent.py --key back |
| adb_text_input.py | Type text | --text TEXT | uv run scripts/screen/adb_text_input.py --text "Hello" |
| adb_screenrecord.py | Record screen video | --output FILE --duration SECONDS | uv run scripts/screen/adb_screenrecord.py --duration 60 |
#### π¦ App (5 scripts)
Location: scripts/app/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_app_list.py | List installed apps | --filter TEXT, --system, --all | uv run scripts/app/adb_app_list.py --filter afk |
| adb_app_start.py | Start app by package | -p PACKAGE, --wait | uv run scripts/app/adb_app_start.py -p com.afk.journey |
| adb_app_stop.py | Force stop app | -p PACKAGE | uv run scripts/app/adb_app_stop.py -p com.afk.journey |
| adb_app_install.py | Install APK | --apk FILE | uv run scripts/app/adb_app_install.py --apk game.apk |
| adb_app_uninstall.py | Uninstall app | -p PACKAGE, --keep-data | uv run scripts/app/adb_app_uninstall.py -p com.example |
#### βΉοΈ Info (4 scripts)
Location: scripts/info/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_device_info.py | Device specifications | --toon | uv run scripts/info/adb_device_info.py |
| adb_display_info.py | Display resolution/DPI | --toon | uv run scripts/info/adb_display_info.py |
| adb_running_app.py | Current foreground app | --toon | uv run scripts/info/adb_running_app.py |
| adb_battery_info.py | Battery status | --toon | uv run scripts/info/adb_battery_info.py |
#### β‘ Performance (3 scripts)
Location: scripts/performance/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_cpu_monitor.py | Real-time CPU monitoring | --duration SECONDS, --package PKG | uv run scripts/performance/adb_cpu_monitor.py --duration 60 |
| adb_memory_monitor.py | Memory usage monitoring | --duration SECONDS, --package PKG | uv run scripts/performance/adb_memory_monitor.py --duration 60 |
| adb_logcat_filter.py | Filter logcat logs | --tag TAG, --priority {V,D,I,W,E,F}, --follow | uv run scripts/performance/adb_logcat_filter.py --tag MyApp --priority E |
#### π€ Automation (4 scripts)
Location: scripts/automation/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_game_loop.py | Execute repeating sequence | -s FILE, -l LOOPS, --infinite | uv run scripts/automation/adb_game_loop.py -s daily.json -l 10 |
| adb_wait_for_app.py | Wait for app to start | --package PKG, --timeout SECONDS | uv run scripts/automation/adb_wait_for_app.py -p com.afk.journey |
| adb_click_sequence.py | Execute sequence once | -s FILE | uv run scripts/automation/adb_click_sequence.py -s tutorial.json |
| adb_screenshot_compare.py | Compare screenshots | -b BEFORE -a AFTER, --threshold FLOAT | uv run scripts/automation/adb_screenshot_compare.py -b ref.png -a test.png |
#### π οΈ Utils (3 scripts)
Location: scripts/utils/
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_shell.py | Execute shell commands | -c COMMAND, --timeout SECONDS | uv run scripts/utils/adb_shell.py -c "ls /sdcard" |
| adb_push.py | Push file to device | -l LOCAL -r REMOTE | uv run scripts/utils/adb_push.py -l file.txt -r /sdcard/ |
| adb_pull.py | Pull file from device | -r REMOTE -l LOCAL | uv run scripts/utils/adb_pull.py -r /sdcard/screenshot.png -l . |
#### π§ Monitoring (7 scripts)
Location: scripts/ (root level)
| Script | Purpose | Key Options | Example |
|--------|---------|-------------|---------|
| adb_bot_generator.py | Generate bot scripts | --template NAME, --output FILE | uv run scripts/adb_bot_generator.py --template daily_quests |
| adb_config_validator.py | Validate configs | --config FILE, --strict | uv run scripts/adb_config_validator.py --config config.json |
| adb_deployment_helper.py | Deploy to devices | --apk FILE, --all, --devices IDS | uv run scripts/adb_deployment_helper.py --apk game.apk --all |
| adb_device_analyzer.py | Analyze capabilities | --aspects LIST, --output FILE | uv run scripts/adb_device_analyzer.py --aspects performance,battery |
| adb_game_tester.py | Test game automation | --test-suite FILE, --screenshots | uv run scripts/adb_game_tester.py --test-suite tests.json |
| adb_performance_profiler.py | Profile performance | --package PKG, --duration SECONDS | uv run scripts/adb_performance_profiler.py -p com.afk.journey |
| adb_template_creator.py | Create templates | --name NAME, --category CAT | uv run scripts/adb_template_creator.py --name my_automation |
JSON Sequence Format (Automation Scripts)
For adb_game_loop.py and adb_click_sequence.py, use JSON format:
```json
{
"name": "Daily Quest Automation",
"steps": [
{"action": "tap", "x": 500, "y": 1000, "delay": 2},
{"action": "swipe", "start": [500, 1500], "end": [500, 500], "duration": 300},
{"action": "wait", "duration": 3},
{"action": "screenshot", "output": "/tmp/check.png"},
{"action": "keyevent", "key": "back"},
{"action": "text_input", "text": "Hello World"}
]
}
```
Supported Actions: tap, swipe, wait, screenshot, keyevent, text_input
Common Utilities
All scripts use shared utilities from scripts/common/:
adb_utils.py- ADB device operations and connection managementcli_utils.py- Click decorators, Rich formatters, output helperserror_handlers.py- Standardized error handling and exit codes (0, 2, 3, 4)path_utils.py- Project root detection and path resolution
Exit Codes
All scripts use standardized exit codes:
- 0 - Success
- 2 - Device offline or not found
- 3 - ADB command failed or execution error
- 4 - Invalid argument or configuration
Output Formats
Text Output (default): Rich-formatted console output with colors and tables
TOON Output (--toon): YAML/structured format for automation and parsing
---
π Support & References
Quick Links:
- Modules: See individual module files in
modules/ - Scripts: See individual scripts in
scripts/with--help - Examples: See integration patterns in adb-* agents
- Tests: See test suite in
tests/
Context7 References:
- [Android ADB Protocol](https://developer.android.com/tools/adb) (Android Developers)
- [Python ADB Library](https://github.com/google/adb_home) (Google GitHub)
- [OpenCV Documentation](https://docs.opencv.org) (OpenCV Docs)
- [Tesseract OCR](https://github.com/UB-Mannheim/tesseract/wiki) (GitHub)
---
Version: 1.0.0
Status: β Production Ready (Phase 1 Foundation)
Last Updated: 2025-12-01
Next Phase: Create 5 core modules + 7 UV scripts
More from this repository10
Generates AI-powered code scaffolding for MoAI agents, skills, commands, and tests using enterprise-grade Context7 patterns and UV CLI standards.
Defines decision rules and naming conventions for structuring Claude Code skills, scripts, and workflows with clear architectural separation.
moai-foundation-uiux skill from rdmptv/adbautoplayer
Develops and deploys custom MCP servers with FastMCP, enabling type-safe tool, resource, and prompt exposures for AI model interactions.
Optimizes macOS system resources by concurrently executing 40 specialized agents across memory, disk, CPU, and process management domains.
moai-connector-figma skill from rdmptv/adbautoplayer
Unifies enterprise programming across 25+ languages with patterns, best practices, and Context7 integration for seamless multi-language development.
Orchestrates AI-powered development workflows with intelligent debugging, refactoring, performance optimization, and quality enforcement across enterprise projects.
Defines token-efficient YAML-based agent and workflow definitions using BMAD Method patterns, reducing complexity by 40-60% compared to traditional formats.
Validates and enhances documentation workflows with specialized scripts for Mermaid diagrams, Korean typography, and comprehensive reporting.