minitest-cli
Command-line interface for the Minitest testing platform.
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
# Create a new app on your tenant
minitest apps create --name "My App"
# Run tests
minitest run --app <app-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 |
App management |
minitest user-story |
User-story operations |
minitest build |
Build management |
minitest run |
Test execution |
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 |
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 minitest_cli-0.17.1.tar.gz.
File metadata
- Download URL: minitest_cli-0.17.1.tar.gz
- Upload date:
- Size: 131.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ade1d51aada4644e9335210dd4dfb2456374b9158776fb514d6c064f8943ab4
|
|
| MD5 |
be9267d77bd16a7e5613374bdbc841b3
|
|
| BLAKE2b-256 |
e9a4a11607866dc95ac016addf21a85d79e85c8e366a63052ed35da11ccd038e
|
Provenance
The following attestation bundles were made for minitest_cli-0.17.1.tar.gz:
Publisher:
release.yml on minitap-ai/minitest-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
minitest_cli-0.17.1.tar.gz -
Subject digest:
8ade1d51aada4644e9335210dd4dfb2456374b9158776fb514d6c064f8943ab4 - Sigstore transparency entry: 2138566945
- Sigstore integration time:
-
Permalink:
minitap-ai/minitest-cli@25db7396ec296577e4dfed5ae06ec4dce667a3b8 -
Branch / Tag:
refs/tags/v0.17.1 - Owner: https://github.com/minitap-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@25db7396ec296577e4dfed5ae06ec4dce667a3b8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file minitest_cli-0.17.1-py3-none-any.whl.
File metadata
- Download URL: minitest_cli-0.17.1-py3-none-any.whl
- Upload date:
- Size: 110.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43b3e970e70a96f0118fcccba6e5bf4541d88230dfc04d346c40fb2dede523c5
|
|
| MD5 |
a0135fae95493b17d729d862e3c32206
|
|
| BLAKE2b-256 |
5ad5fe2fdb294c832abfaa8b0526131126dac4a496dea534e26fda7942c72496
|
Provenance
The following attestation bundles were made for minitest_cli-0.17.1-py3-none-any.whl:
Publisher:
release.yml on minitap-ai/minitest-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
minitest_cli-0.17.1-py3-none-any.whl -
Subject digest:
43b3e970e70a96f0118fcccba6e5bf4541d88230dfc04d346c40fb2dede523c5 - Sigstore transparency entry: 2138566958
- Sigstore integration time:
-
Permalink:
minitap-ai/minitest-cli@25db7396ec296577e4dfed5ae06ec4dce667a3b8 -
Branch / Tag:
refs/tags/v0.17.1 - Owner: https://github.com/minitap-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@25db7396ec296577e4dfed5ae06ec4dce667a3b8 -
Trigger Event:
push
-
Statement type: