A fast, lightweight, and scriptable CLI for the App Store Connect API. Automate iOS, macOS, tvOS, and visionOS release workflows from your terminal, IDE, or CI/CD pipeline.
- asc skills
- Quick Start
- Wall of Apps
- Common Workflows
- Commands and Reference
- Documentation
- Contributing
- License
Agent Skills for automating asc workflows including builds, TestFlight, metadata sync, submissions, and signing:
https://github.com/rudrankriyam/app-store-connect-cli-skills
# Homebrew (recommended)
brew install asc
# Install script (macOS/Linux)
curl -fsSL https://asccli.sh/install | bashFor source builds and contributor setup, see CONTRIBUTING.md.
asc auth login \
--name "MyApp" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8Generate API keys at: https://appstoreconnect.apple.com/access/integrations/api
asc apps listasc chooses a default --output based on where stdout is connected:
- Interactive terminal (TTY):
table - Non-interactive output (pipes/files/CI):
json
You can still set a global preference:
export ASC_DEFAULT_OUTPUT=markdownAnd explicit flags always win:
asc apps list --output json64 apps ship with asc. See the Wall of Apps →
Want to add yours? Open a PR.
Use:
make generate app APP="Your App Name" LINK="https://apps.apple.com/app/id1234567890" CREATOR="your-github-handle" PLATFORM="iOS,macOS"
This updates docs/wall-of-apps.json and re-syncs the Wall snippet in README.md.
asc feedback --app "123456789" --paginate
asc crashes --app "123456789" --sort -createdDate --limit 10asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
asc testflight builds list --app "123456789" --output tableasc validate --app "123456789" --version "1.2.3"
asc submit --app "123456789" --version "1.2.3"asc localizations list --app "123456789"
asc app-info get --app "123456789" --output json --prettyasc screenshots list --app "123456789"
asc video-previews list --app "123456789"asc certificates list
asc profiles list
asc bundle-ids listasc workflow run release# Trigger from a pull request
asc xcode-cloud run --workflow-id "WORKFLOW_ID" --pull-request-id "PR_ID"
# Rerun from an existing build run with a clean build
asc xcode-cloud run --source-run-id "BUILD_RUN_ID" --clean
# Fetch a single build run by ID
asc xcode-cloud build-runs get --id "BUILD_RUN_ID"Use built-in help as the source of truth:
asc --help
asc <command> --help
asc <command> <subcommand> --helpFor full command families, flags, and discovery patterns, see:
- docs/CI_CD.md - CI/CD integration guides (GitHub Actions, GitLab, Bitrise, CircleCI)
- docs/COMMANDS.md - Command families and reference navigation
- docs/API_NOTES.md - API quirks and behaviors
- docs/CONTRIBUTING.md - CLI development and testing notes
- docs/TESTING.md - Testing patterns and conventions
- docs/openapi/README.md - Offline OpenAPI snapshot + update flow
- CONTRIBUTING.md - Contribution guide
Local screenshot framing uses Koubou (pinned to 0.14.0) for deterministic device-frame rendering.
GitHub: https://github.com/bitomule/koubou
Simulator UI automation for screenshot capture and interactions uses AXe CLI. GitHub: https://github.com/cameroncooke/AXe
Contributions are welcome. See CONTRIBUTING.md for details.
MIT License - see LICENSE for details.
Built with Cursor
This project is an independent, unofficial tool and is not affiliated with, endorsed by, or sponsored by Apple Inc. App Store Connect, TestFlight, Xcode Cloud, and Apple are trademarks of Apple Inc., registered in the U.S. and other countries.
