AppFlight CLI
Upload APKs to AppFlight from your terminal or CI pipelines — no Play Store review, no waiting.
Installation
dart pub global activate appflight_cli
Make sure ~/.pub-cache/bin is on your PATH, then:
appflight --help
Quick Start
# 1. Log in with your AppFlight API key
appflight login
# 2. Initialise a project (creates appflight.json)
appflight init
# 3. Upload a build
appflight upload
No flavors? appflight init prompts for your package name and you're done.
Flavored app? Pass --flavor stage (or whichever flavor) to upload.
Commands
| Command | Description |
|---|---|
appflight init |
Create appflight.json in the current project |
appflight login |
Save API credentials to ~/.appflight/credentials.json |
appflight logout |
Remove saved credentials |
appflight whoami |
Print the currently authenticated user |
appflight upload |
Upload an APK and notify testers |
Releasing a New Version
Manual publish — no CI, no Changesets, no auto-bump. Keep it simple until the CLI warrants more.
- Bump
versionin bothcli/pubspec.yamlandcli/lib/src/version.dart(they must stay in sync — the--versionflag reads from the Dart constant, not the pubspec). - Add an entry to
cli/CHANGELOG.md. - From
cli/, rundart pub publish.
Documentation
Full docs, CI/CD guides, and environment variable reference:
app-flight.com/docs
Issues
Found a bug or have a question? Open an issue in the docs repo:
github.com/mhmzdev/appflight-cli-docs/issues
Libraries
- api/client
- api/endpoints
- commands/analytics_command
- commands/init_command
- commands/login_command
- commands/logout_command
- commands/upload_command
- commands/whoami_command
- config/credentials
- config/project_config
- detect/build_resolver
- detect/flutter_detector
- services/analytics_service
- util/exit_codes
- util/gradle_parser
- util/logger
- util/package_validator