Installation
Get from zero to running automation in 10 minutes. No API keys required for core features.
Prerequisites
Section titled “Prerequisites”| Requirement | Version | How to Check |
|---|---|---|
| Python | 3.10+ | python3 --version |
| ADB | Any recent | adb --version |
| Android phone | 5.0+ (API 21+) | Physical device or emulator |
| USB cable | Data-capable | Not a charge-only cable |
Install ADB
Section titled “Install ADB”Ubuntu/Debian:
sudo apt install android-tools-adbmacOS:
brew install android-platform-toolsWindows:
Download from Android SDK Platform-Tools, extract, and add the folder to your PATH.
Verify ADB is installed:
adb --version# Android Debug Bridge version 1.0.41Install DroidBot
Section titled “Install DroidBot”git clone https://github.com/[org]/adb-marketing-agent.gitcd adb-marketing-agent
# Install in development mode (recommended)pip install -e .
# Or install dependencies manuallypip install flask requests pyyaml openaiThe -e flag installs in editable mode so changes to the source take effect immediately.
Configuration
Section titled “Configuration”Environment Variables
Section titled “Environment Variables”Create a .env file by copying the example:
cp .env.example .envNo API keys are needed for core automation. The following work out of the box:
- ADB device control (tap, swipe, type, screenshots)
- Skill system (load, run, create skills)
- Macro recording and replay
- Dashboard (all 14 tabs)
- Job scheduler
- App Explorer
Optional: AI Features
Section titled “Optional: AI Features”Add these to .env only if you need AI-powered features:
# Content generation (KIE AI video generation)KIE_AI_API_KEY=your_key_here
# LLM content planner + Skill Creator (OpenRouter)OPENROUTER_API_KEY=your_key_here
# Video generation (OpenAI Sora)OPENAI_API_KEY=your_key_here
# Image hosting for video generationFREEIMAGE_API_KEY=your_key_here
# Analytics (optional)POSTHOG_API_KEY=your_key_hereOptional: Skill Creator LLM Backends
Section titled “Optional: Skill Creator LLM Backends”The Skill Creator supports 4 LLM backends. Configure whichever you want to use:
| Backend | Config | Default Model |
|---|---|---|
| OpenRouter | OPENROUTER_API_KEY env var | anthropic/claude-sonnet-4 |
| Claude API | ANTHROPIC_API_KEY env var | claude-sonnet-4-20250514 |
| Ollama | Auto-detect at localhost:11434 | llama3 |
| Claude Code | claude CLI installed | sonnet |
Verify Installation
Section titled “Verify Installation”# Start the serverpython3 run.pyOpen http://localhost:5055 in your browser. You should see the dashboard with 14 tabs.
# Quick Python verificationpython3 -c "from marketing_system.bots.common.adb import Devicefrom marketing_system.skills.tiktok import loads = load()print(f'Skill: {s.name} | Actions: {len(s.list_actions())} | Workflows: {len(s.list_workflows())}')"# Expected: Skill: tiktok | Actions: 13 | Workflows: 9Device Selection
Section titled “Device Selection”If you have multiple phones connected, set the default device:
# List connected devicesadb devices
# Set default via environment variableexport DEVICE=L9AIB7603188953
# Or pass per-commandDEVICE=RZCX125RE5L python3 -m pytest tests/ -vProject Structure
Section titled “Project Structure”adb-marketing-agent/ run.py # Entry point (port 5055) pyproject.toml # Package config .env # Your API keys (gitignored) marketing_system/ # All application code server.py # Flask API (132+ routes) db.py # SQLite ORM (20+ tables) bots/common/adb.py # Device class skills/ # Skill packages agent/ # LLM content planner static/dashboard.html # SPA dashboard data/ # Runtime data marketing.db # SQLite database tests/ # Pytest suite (19 files) config/ # Credentials (gitignored)Next Steps
Section titled “Next Steps”- Connect Your Phone — enable USB debugging and authorize
- Hello World — run your first automation