The official CLI for TestApp.io app distribution
Upload your Android (APK) and iOS (IPA) apps directly from the command line.
Notify your team instantly. Get feedback faster.
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bashWorks on macOS (Intel & Apple Silicon) and Linux (x86_64, ARM). For Windows, see below.
- What is ta-cli?
- Installation
- Quick Start
- Commands
- Configuration
- Environment Variables
- CI/CD Integrations
- Examples
- Supported Platforms
- Updating
- Troubleshooting
- Support
ta-cli lets you upload app builds to TestApp.io without leaving your terminal. Perfect for:
- Local development - Quick uploads while coding
- CI/CD pipelines - Automated releases on every build
- Team collaboration - Notify testers instantly with each release
Features:
- Upload Android APK and iOS IPA files
- Automatic app info extraction (version, bundle ID, etc.)
- Git integration for release notes
- Team notifications
- Chunked uploads with automatic retry
- Cross-platform support
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bashThis installs to /usr/local/bin/ta-cli.
Download from Releases:
| File | Architecture |
|---|---|
ta-cli-Windows-x86_64.exe |
64-bit (recommended) |
ta-cli-Windows-i686.exe |
32-bit |
Rename to ta-cli.exe and add to your PATH, or run directly.
ta-cli version| Credential | Where to find it |
|---|---|
| API Token | portal.testapp.io/settings/api-credentials |
| App ID | Your app page โ Integrations tab at portal.testapp.io/apps |
ta-cli configFollow the prompts to enter your credentials.
ta-cli publishThat's it! Your app is uploaded and your team is notified.
Upload your app to TestApp.io.
ta-cli publish [flags]| Flag | Description | Default |
|---|---|---|
--api_token |
Your API token | From config |
--app_id |
Your App ID | From config |
--release |
android, ios, or both |
both |
--apk |
Path to Android APK file | From config |
--ipa |
Path to iOS IPA file | From config |
--release_notes |
Custom release notes | None |
--git_release_notes |
Use latest git commit as notes | false |
--git_commit_id |
Include commit ID in notes | false |
--notify |
Notify team members | false |
--archive_latest_release |
Archive previous release | false |
--config |
Custom config file path | ~/.ta-cli.json |
Interactive configuration wizard.
ta-cli configDisplay version information.
ta-cli versionGenerate shell autocompletion scripts.
# Bash
ta-cli completion bash > /etc/bash_completion.d/ta-cli
# Zsh
ta-cli completion zsh > "${fpath[1]}/_ta-cli"
# Fish
ta-cli completion fish > ~/.config/fish/completions/ta-cli.fishLocation: ~/.ta-cli.json
{
"api_token": "your_api_token",
"app_id": "your_app_id",
"release": "both",
"apk": "/path/to/app.apk",
"ipa": "/path/to/app.ipa",
"release_notes": "",
"git_release_notes": true,
"git_commit_id": false,
"notify": true,
"archive_latest_release": false
}ta-cli publish --config=/path/to/custom-config.json- Command-line flags (highest priority)
- Config file specified by
--config .ta-cli.jsonin current directory~/.ta-cli.json(default)
Use environment variables instead of config files (ideal for CI/CD):
| Variable | Description |
|---|---|
TESTAPPIO_API_TOKEN |
Your API token |
TESTAPPIO_APP_ID |
Your App ID |
TESTAPPIO_RELEASE |
Release type: android, ios, or both |
TESTAPPIO_ANDROID_PATH |
Path to APK file |
TESTAPPIO_IOS_PATH |
Path to IPA file |
TESTAPPIO_NOTIFY |
Send notifications: true or false |
TESTAPPIO_RELEASE_NOTES |
Custom release notes |
TESTAPPIO_GIT_RELEASE_NOTES |
Use git commit as notes: true or false |
TESTAPPIO_GIT_COMMIT_ID |
Include commit ID: true or false |
Example:
export TESTAPPIO_API_TOKEN="your_token"
export TESTAPPIO_APP_ID="your_app_id"
ta-cli publish --apk=./app.apk --release=androidta-cli works with any CI/CD platform that supports bash. Just install and run!
# 1. Install ta-cli
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash
# 2. Upload your app
ta-cli publish \
--api_token=$TESTAPPIO_API_TOKEN \
--app_id=$TESTAPPIO_APP_ID \
--apk=./app-release.apk \
--release=android \
--notify=trueFor the best experience, use our dedicated integrations with built-in auto-updates:
| Integration | Description | Link |
|---|---|---|
| GitHub Action | Native GitHub Actions integration | testappio/github-action |
| Fastlane Plugin | Native Fastlane plugin | testappio/fastlane-plugin-testappio |
We have detailed guides for each CI/CD platform:
| Platform | Documentation |
|---|---|
| GitHub Actions | View Guide |
| Fastlane | View Guide |
| GitLab CI/CD | View Guide |
| Jenkins | View Guide |
| Bitrise | View Guide |
| CircleCI | View Guide |
| Travis CI | View Guide |
| Azure Pipelines | View Guide |
| Codemagic | View Guide |
| Xcode Cloud | View Guide |
ta-cli publish \
--release=android \
--apk=./app-release.apk \
--notify=trueta-cli publish \
--release=ios \
--ipa=./App.ipa \
--notify=trueta-cli publish \
--release=both \
--apk=./app-release.apk \
--ipa=./App.ipa \
--release_notes="Bug fixes and improvements" \
--notify=trueta-cli publish \
--git_release_notes=true \
--git_commit_id=true \
--notify=trueta-cli publish \
--apk=./app-release.apk \
--archive_latest_release=true \
--notify=true| OS | Architectures | Binary |
|---|---|---|
| macOS | Intel (x86_64), Apple Silicon (arm64), Universal | ta-cli-Darwin-* |
| Linux | x86_64, ARM64 (aarch64), ARMv7, i686 | ta-cli-Linux-* |
| Windows | x86_64 (64-bit), i686 (32-bit) | ta-cli-Windows-*.exe |
| Platform | File Type | Notes |
|---|---|---|
| Android | .apk |
Debug or release signed APK |
| iOS | .ipa |
Requires valid provisioning profile |
Re-run the install script to update to the latest version:
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bashCheck your current version:
ta-cli versionsudo rm /usr/local/bin/ta-cli
rm ~/.ta-cli.json # Optional: remove configThe binary isn't in your PATH:
# Option 1: Restart your terminal
# Option 2: Add to PATH manually
export PATH=$PATH:/usr/local/bin
# Option 3: Use full path
/usr/local/bin/ta-cli version- Check internet connection
- Verify credentials - Ensure API token and App ID are correct
- Validate your file - Make sure the APK/IPA exists and isn't corrupted
- Retry - The CLI has automatic retry with exponential backoff
- APK: Ensure it's a valid Android package with
AndroidManifest.xml - IPA: Ensure it contains
Info.plistand a valid provisioning profile
Reset your configuration:
rm ~/.ta-cli.json
ta-cli config- Run Command Prompt or PowerShell as Administrator if needed
- Use forward slashes or escaped backslashes in paths:
C:/path/to/app.apk
For advanced integrations, see the TestApp.io API Documentation.
| Resource | Link |
|---|---|
| Help Center | help.testapp.io |
| CLI Documentation | help.testapp.io/ta-cli |
| Community | Join us |
| [email protected] | |
| Issues | GitHub Issues |
We welcome contributions! Please see our Contributing Guidelines for details.
Apache 2.0 - See LICENSE file for details.
Built with love by TestApp.io
Trusted by thousands of developers worldwide
Happy releasing! ๐