minitest-cli
Command-line interface for the Minitest testing platform for mobile and web apps.
Installation
One-liner (recommended)
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/minitap-ai/minitest-cli/main/install.sh | bash
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/minitap-ai/minitest-cli/main/install.ps1 | iex"
Both scripts use uv if available, or install it automatically.
Other methods
uv (all platforms):
uv tool install minitest-cli
Homebrew (macOS):
brew install minitap-ai/tap/minitest-cli
uvx (zero-install, all platforms):
uvx --from minitest-cli minitest --help
From source:
git clone https://github.com/minitap-ai/minitest-cli.git
cd minitest-cli
uv sync
uv run minitest --help
Quick Start
# Authenticate
minitest auth login
# List your apps
minitest apps list
# Inspect one app's full configuration
minitest apps get <app-id>
# Create a new app on your tenant
minitest apps create --name "My Mobile App" --platform ios --platform android
# Or create a web app target
minitest apps create --name "My Web App" --platform web --web-url https://example.com
# Upload native builds when testing iOS/Android apps
minitest --app <app-id> build upload ./app-release.apk
# Android App Bundle archives (.apks) are also accepted
minitest --app <app-id> build upload ./app-release.apks
# Run tests
minitest --app <app-id> run all --web
# or, for native lanes:
minitest --app <app-id> run all --ios-build <ios-build-id> --android-build <android-build-id>
Configuration
| Environment Variable | Description | Required |
|---|---|---|
MINITEST_TOKEN |
API authentication token | Yes (or use minitest auth login) |
MINITEST_APP_ID |
Default app ID | No (can use --app flag) |
MINITEST_API_URL |
testing-service base URL | No (defaults to production) |
MINITEST_APPS_MANAGER_URL |
apps-manager base URL (used by minitest apps create) |
No (defaults to production) |
MINITEST_INTEGRATIONS_URL |
minihands-integrations base URL (used to list tenants) | No (defaults to production) |
MINITEST_WEBAPP_URL |
Minitest webapp base URL (used for review links) | No (defaults to production) |
MINITEST_SUPABASE_URL |
Supabase project URL used for OAuth login | No (defaults to production) |
MINITEST_SUPABASE_PUBLISHABLE_KEY |
Supabase publishable (anon) key used for OAuth login | No (defaults to production) |
The recommended way to set these is to copy
.env.exampleto.env— the CLI loads.envautomatically. The shipped.env.examplealready targets the dev environment (see below).
Global Flags
| Flag | Description |
|---|---|
--json |
Output JSON to stdout (diagnostics go to stderr) |
--app <id-or-name> |
Target app for commands that require one |
--version |
Show CLI version |
--help |
Show help |
Commands
| Command | Description |
|---|---|
minitest auth |
Authentication management |
minitest apps |
List, inspect, and create apps |
minitest user-story |
User-story operations |
minitest df |
Draft features — branches of the test suite |
minitest flow-types |
List flow types, create/rename/delete custom ones |
minitest screens |
Inspect the screens exploration mapped for an app |
minitest build |
Native iOS/Android build management |
minitest run |
Test execution for mobile and web lanes |
minitest maintenance |
CLI-only test-flow maintenance against local code |
CLI-only maintenance
minitest maintenance lets a coding agent keep Minitest user stories in sync
without connecting GitHub. Run it from the app repository: the code stays on the
machine, while the CLI sends only proposed test-flow edits and the local HEAD SHA.
# Print the server-composed maintenance instructions for your coding agent
minitest maintenance --agent
# Agent workflow primitives
minitest --json maintenance context
minitest maintenance affected --file affected.json
minitest maintenance change --file change.json
minitest maintenance status --phase writing --message "Updating affected stories"
minitest maintenance complete --changed
# Apply proposed edits now, or open the web review queue
minitest maintenance apply
minitest maintenance apply --review
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Authentication error |
| 3 | Network / API error |
| 4 | Resource not found |
| 5 | Build rejected as invalid |
| 6 | Conflict — re-read, rebuild, retry once |
Using the Dev Environment
The shipped .env.example already targets the dev environment, so pointing the CLI at dev is just a matter of loading it. Copy it to .env once:
cp .env.example .env
The CLI loads .env automatically, so every command now runs against dev — no per-command environment variables needed:
minitest auth login # authenticates against dev, stores a dev-specific token
minitest apps list # runs against dev
To target production instead, either omit the .env file (the built-in defaults point at production) or comment out the dev values and uncomment the # Production lines in your .env.
Tip: You can still override any single variable inline for a one-off command, e.g.
MINITEST_API_URL=https://testing-service.dev.minitap.ai minitest apps list.
Development
# Install dependencies
uv sync --dev
# Run linter
uv run ruff check .
# Run formatter
uv run ruff format .
# Run type checker
uv run pyright
# Run tests
uv run pytest
Metadata
Release files for minitest-cli 0.28.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| minitest_cli-0.28.1.tar.gz | 202.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| minitest_cli-0.28.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 378.7 kB
Release files / minitest_cli-0.28.1.tar.gz
| Download URL | minitest_cli-0.28.1.tar.gz |
|---|---|
| Size | 202.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
add8444124ba73c801d0f092f5c25248585dd046a326f6db7b9be002236d0015
|
|
BLAKE2b-256 checksum How to use checksums |
c2c6a8ec76235f1b8a8b3d74581234f5c4ea6a21a776cb33e6cafd4de74b4fc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / minitest_cli-0.28.1-py3-none-any.whl
| Download URL | minitest_cli-0.28.1-py3-none-any.whl |
|---|---|
| Size | 176.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e72f3b5e18e91ad90ecaba45f739842086b2c98d5f52dc83afb6a0d2a6a9de6e
|
|
BLAKE2b-256 checksum How to use checksums |
a11ca15de0c1c431dc842f7d8555a33322cb3e863b10f829dc342927f3851cf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log