ta-cli
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.
Quick Install
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash
Works on macOS (Intel & Apple Silicon) and Linux (x86_64, ARM). For Windows, see below.
What is ta-cli?
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
Installation
macOS & Linux
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash
This installs to /usr/local/bin/ta-cli.
Windows
Download from Releases:
| File | Architecture |
|---|---|
ta-cli-Windows-x86_64.exe |
64-bit (recommended) |
ta-cli-Windows-i686.exe |
32-bit |
Rename it ta-cli.exe and add it to your PATH, or run it directly.
Verify Installation
ta-cli version
Quick Start
1. Get your credentials
| Credential | Where to find it |
|---|---|
| API Token | portal.testapp.io/profile/tokens |
| App ID | Your app page → Integrations tab at portal.testapp.io/apps |
2. Configure (interactive)
ta-cli config
Follow the prompts to enter your credentials.
3. Publish your app
ta-cli publish
That's it! Your app is uploaded, and your team is notified.
Commands
ta-cli publish
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 |
ta-cli config
Interactive configuration wizard.
ta-cli config
ta-cli version
Display version information.
ta-cli version
ta-cli completion
Generate 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.fish
Configuration
Config File
Location: ~/.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
}
Custom Config Path
ta-cli publish --config=/path/to/custom-config.json
Config Priority
- Command-line flags (highest priority)
- Config file specified by
--config .ta-cli.jsonin current directory~/.ta-cli.json(default)
Environment Variables
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=android
CI/CD Integrations
ta-cli works with any CI/CD platform that supports bash. Just install and run!
Quick Setup (Any CI/CD)
# 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=true
Dedicated Integrations (Recommended)
For 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 |
Platform-Specific Guides
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 |
Examples
Android Only
ta-cli publish \
--release=android \
--apk=./app-release.apk \
--notify=true
iOS Only
ta-cli publish \
--release=ios \
--ipa=./App.ipa \
--notify=true
Both Platforms
ta-cli publish \
--release=both \
--apk=./app-release.apk \
--ipa=./App.ipa \
--release_notes="Bug fixes and improvements" \
--notify=true
With Git Integration
ta-cli publish \
--git_release_notes=true \
--git_commit_id=true \
--notify=true
Archive Previous Release
ta-cli publish \
--apk=./app-release.apk \
--archive_latest_release=true \
--notify=true
Supported Platforms
Operating Systems
| 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 |
Supported File Types
| Platform | File Type | Notes |
|---|---|---|
| Android | .apk |
Debug or release signed APK |
| iOS | .ipa |
Requires valid provisioning profile |
Updating
Re-run the install script to update to the latest version:
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash
Check your current version:
ta-cli version
Uninstalling
sudo rm /usr/local/bin/ta-cli
rm ~/.ta-cli.json # Optional: remove config
Troubleshooting
"command not found: ta-cli"
The 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
Upload Fails or Hangs
- 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
Invalid APK/IPA Error
- APK: Ensure it's a valid Android package with
AndroidManifest.xml - IPA: Ensure it contains
Info.plistand a valid provisioning profile
Config Issues
Reset your configuration:
rm ~/.ta-cli.json
ta-cli config
Windows-Specific Issues
- Run Command Prompt or PowerShell as Administrator if needed
- Use forward slashes or escaped backslashes in paths:
C:/path/to/app.apk
API Reference
For advanced integrations, see the TestApp.io API Documentation.
Support
| Resource | Link |
|---|---|
| Help Center | help.testapp.io |
| CLI Documentation | help.testapp.io/ta-cli |
| support@testapp.io | |
| Issues | GitHub Issues |
Need help? Contact us — we're happy to assist!