PantoQA CLI
PantoQA CLI is a Python package for running QA flows against Android or iOS apps using natural-language prompts. It connects to the PantoQA service over WebSocket and can drive a locally connected device via the PantoQA bridge or manage remote device sessions.
Ask your agent to set it up
To configure your coding agent with the PantoQA skill, ask it to use the skill file here:
https://www.getpanto.ai/SKILL.md
This is the setup file the agent can reference for PantoQA workflows, commands, and local bridge usage.
Project overview
This repository packages the pantoqacli command and includes a skill definition used by the PantoQA agent tooling:
pantoqacli— command-line entry point for authentication, QA execution, bridge inspection, and remote device managementskills/pantoqa-agent/SKILL.md— exported skill metadata for agent integrations
Installation
Install from the project root with pip:
python -m pip install -e .
Or install the package from PyPI if available:
python -m pip install pantoqacli
For local developer setup with optional tooling:
python -m pip install -e .[dev]
CLI entry point
After installation, the package exposes:
pantoqacli --help
You can also check the installed version:
pantoqacli --version
Authentication
Most commands require a token. The CLI resolves it in this order:
--tokenargumentPANTOQA_TOKENenvironment variable~/pantoqa-agent/.token
Log in to create the token file:
pantoqacli login
Verify the configured key:
pantoqacli test-auth
The alias below is also supported:
pantoqacli auth
Local bridge setup
For local device testing, the bridge must be running and a device must be attached.
Start the bridge:
pantoqa_bridge
Check bridge health:
pantoqacli bridge status
List connected devices:
pantoqacli bridge devices
The serial_no returned by bridge devices is what you pass to --device-serial-no in a QA run.
Running QA prompts
Run a single prompt:
pantoqacli run \
--prompt "Open Settings app"
Run multiple prompts sequentially in one session:
pantoqacli run \
--prompt "Open Settings" \
--prompt "Enable Wi-Fi"
Common optional flags:
pantoqacli run \
--base-url https://qa-app.getpanto.ai \
--token "$PANTOQA_TOKEN" \
--prompt "Open Settings" \
--prompt "Enable Wi-Fi" \
--platform android \
--driver-type BRIDGE_V2 \
--session-exe-type EXECUTE \
--bridge-base-url http://127.0.0.1:6565 \
--device-serial-no emulator-5554 \
--xml-mode adb \
--verbose
Uploaded app builds
Upload an Android APK or iOS IPA. The CLI chooses the API form field from the
file extension and prints the uploaded build record, including the id used by
downstream test APIs:
pantoqacli remote app upload \
--app-name "Example Android" \
--file ./app-release.apk
List uploaded builds for the authenticated organization:
pantoqacli remote app list
Use an id from this response as --app-id when starting a remote device.
Do not infer a build from its display name. When multiple records could match,
ask the user to choose after showing each candidate's build id, display name,
and upload time.
Both commands accept --base-url and --token. Uploads accept only .apk or
.ipa files.
Bridge and remote device utilities
Inspect the bridge without running a prompt:
pantoqacli bridge status
pantoqacli bridge devices
Remote device lifecycle commands:
pantoqacli remote device start \
--app-id <uploaded-app-id> \
--base-url https://qa-app.getpanto.ai \
--token "$PANTOQA_TOKEN"
pantoqacli remote device status --session-id <session-id>
pantoqacli remote device preview --session-id <session-id>
pantoqacli remote device stop --timeout 10
Exporting the skill definition
This project includes a skill file that can be exported for agent usage:
pantoqacli export-skill
Notes
runexecutes prompts over a WebSocket to the QA server.bridgecommands talk to the local bridge service that performs device actions.- Remote device commands are separate from local bridge execution and manage background remote sessions.
- If a bridge is not reachable or no device is available, do not attempt to run automated prompts against it.
License
This project is licensed under the MIT License. See LICENSE for details.
Release files for pantoqacli 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pantoqacli-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pantoqacli-0.0.7-py3-none-any.whl
| Download URL | pantoqacli-0.0.7-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5f9563fd10db4638b0515ea1faf3e967281d38c1ca176a083357af1335a41ac9
|
|
BLAKE2b-256 checksum How to use checksums |
b81cc8df3ccd0a4afa27b8807ca42b0eb1f0f7eb7c471897a07b5c2255a858c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|