Modern, Intelligent Mobile Automation Framework (Compiled)
Project description
FlowPilot Mobile
FlowPilot Mobile is a high-performance, intelligent mobile automation framework built for speed, privacy, and simplicity. Unlike other frameworks that wrap heavy external engines, FlowPilot uses a custom-built, zero-dependency Intelligent ADB Runtime.
🌟 Why FlowPilot?
- Lightweight & Fast: No Java, no Node.js, and no Maestro/Appium binaries required. It talks directly to your device via ADB, making it significantly faster and easier to set up.
- Privacy-First: Designed for enterprise security. It features an anonymous licensing system with zero telemetry and no hardware/user data collection.
- Intelligent Locators: A built-in scoring engine that handles distractors automatically. It finds what you want (e.g., "Search") and ignores what you don't (e.g., "Search History").
- Zero-Sleep Synchronization: Built-in polling and smart-waits ensure elements are ready before interaction. No more manual
sleep()calls. - Auto-Scroll Search: Automatically swipes and retries if an element is off-screen.
🚀 Quick Start
1. Install via pip
pip install flowpilot-mobile
2. Initialize your Project
Initialize a new project folder with all necessary configurations:
flowpilot setup --project_folder my_tests
3. Write your first test
Create a file tests/test_demo.py:
def test_google_search(mobile):
mobile.launch_app()
mobile.navigate("https://www.google.com")
mobile.fill("Search", "FlowPilot Mobile")
mobile.press_key("Enter")
mobile.visible("github.com")
🤖 AI-Assisted Automation (TEST_GEN_PROMPT)
FlowPilot supports Instant Test Generation via AI. Every project initialized with flowpilot setup includes a TEST_GEN_PROMPT.md file.
- Copy the content of
TEST_GEN_PROMPT.md. - Paste it into Gemini or ChatGPT.
- Provide your manual test steps or describe a screen recording.
- Result: The AI will generate a complete FlowPilot Python test script for you.
🖥️ Live Monitoring & Evidence
Live Desktop Mirroring
See your phone's screen in a window on your desktop (Mac/Windows) during execution using the integrated scrcpy support.
- Enable: Set
mirror_screen: truein yourflowpilot.yaml.
Automated Evidence
- Hardware-Accelerated Recording (MP4): Every test is recorded with hardware encoding (zero performance drop). Includes professional 1s padding.
- Smart Screenshots: Captures specific UI states into
.flowpilot/screenshots/. - Retention Policy: Automatically purges recordings older than 5 days (configurable) to save disk space.
📖 Public API Reference
| Category | Method | Description | Example |
|---|---|---|---|
| Lifecycle | launch_app(pkg) |
Opens a specific app (defaults to Chrome). | mobile.launch_app() |
home() |
Returns to the device Home Screen. | mobile.home() |
|
back() |
Simulates the hardware Back button. | mobile.back() |
|
navigate(url) |
Opens a specific URL in the browser. | mobile.navigate("https://google.com") |
|
| Interactions | tap(target) |
Smart Tap: Auto-scrolls and waits for visibility. | mobile.tap("Settings") |
fill(target, val) |
Smart Fill: Finds nearest input to a label. | mobile.fill("Username", "admin") |
|
fill_focused(val) |
Active Field: Types into currently focused input. | mobile.fill_focused("secret") |
|
press_key(key) |
Presses hardware keys (Enter, Home, Back). | mobile.press_key("Enter") |
|
| Gestures | open_notifications() |
Pulls down the notification shade (Left). | mobile.open_notifications() |
open_quick_settings() |
Pulls down full Quick Settings (Center). | mobile.open_quick_settings() |
|
scroll_down() |
Performs a smart downward scroll. | mobile.scroll_down() |
|
| Relational | below(anchor) |
Maestro-style relational selection. | mobile.below("Login").tap() |
| Discovery | get_text(target) |
Data Extraction: Gets text/ID value. | mobile.get_text("login_id") |
get_screen_text() |
Gets all visible text on screen. | mobile.get_screen_text() |
Configuration (flowpilot.yaml)
project_name: "My Custom App"
# Manual Tool Paths
tools:
adb_path: ""
# Supports both folder path OR full .exe path
scrcpy_path: "C:\\path\\to\\scrcpy_folder"
🛡 Engineering Principles
- WHAT, not HOW: Focus on test intent; FlowPilot handles the low-level ADB coordination.
- Privacy-First: Anonymous licensing, zero telemetry, no system fingerprinting.
- Nuitka Protected: Core logic is compiled into high-performance binaries for security.
- Resilient Reset: Automated pre/post Home screen logic for clean repeatable baselines.
Built for engineers who value speed, privacy, and clean code.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flowpilot_mobile-1.2.11-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: flowpilot_mobile-1.2.11-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b1eb87bacc0be20935c203263967991ad340a9585a81ee921b0d99de3655737
|
|
| MD5 |
3cd5858df4d442695777209154ba5075
|
|
| BLAKE2b-256 |
56d72c60edb94ea8d13b45dd507d17de08b4380c48308250ceacb1a23e608674
|