npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@onmyway133/asc-cli

v1.0.6

Published

App Store Connect CLI — manage apps, builds, TestFlight, metadata and more from your terminal

Downloads

698

Readme

asc — App Store Connect CLI for AI Agents

A fast, scriptable CLI for App Store Connect built with Bun and TypeScript.
Manage apps, builds, TestFlight, metadata, screenshots, signing, reports, and more from your terminal or CI pipeline.

Install

npm install -g @onmyway133/asc-cli

Authenticate

You'll need an App Store Connect API key — create one here.

# Interactive (prompts for missing values)
asc auth login

# Non-interactive
asc auth login \
  --key-id YOUR_KEY_ID \
  --issuer-id YOUR_ISSUER_ID \
  --private-key ~/Downloads/AuthKey_XXXXXX.p8 \
  --name personal

The private key is stored in the macOS Keychain automatically. Use --bypass-keychain to store the file path in ~/.asc/credentials.json instead.

Multiple accounts

# Add profiles
asc auth login --name work   --key-id K1 --issuer-id I1 --private-key ~/.asc/work.p8
asc auth login --name client --key-id K2 --issuer-id I2 --private-key ~/.asc/client.p8

# List all profiles
asc auth list

# Switch active profile
asc auth use work          # non-interactive
asc auth use               # interactive selector

# Use a specific profile for one command
asc apps list --profile client

# Show current profile
asc auth status --validate

Profile management

asc auth profile view                     # view active profile
asc auth profile view work                # view specific profile
asc auth profile update --rename koa      # rename active profile
asc auth profile update work --rename koa # rename specific profile
asc auth profile update --vendor-number 12345678
asc auth profile delete work

Environment variables

| Variable | Description | |----------|-------------| | ASC_KEY_ID | API Key ID (overrides active profile) | | ASC_ISSUER_ID | Issuer ID UUID (overrides active profile) | | ASC_PRIVATE_KEY_PATH | Path to .p8 file (overrides active profile) | | ASC_PRIVATE_KEY | Inline PEM content (overrides active profile) | | ASC_PROFILE | Profile name to use (equivalent to --profile) | | ASC_BYPASS_KEYCHAIN | Set to 1 to skip Keychain storage |

Commands

Apps

asc apps list [--output table|json]
asc apps get <app-id>

Builds

asc builds list [--app-id <id>] [--version <v>] [--platform ios|macos|tvos|visionos]
asc builds get <build-id>
asc builds update-beta-notes --build-id <id> --locale en-US --notes "What's new"

Versions

asc versions list --app-id <id> [--platform ios]
asc versions create --app-id <id> --version 2.0.0 [--platform ios]
asc versions submit <version-id>

TestFlight

asc testflight groups list [--app-id <id>]
asc testflight testers list --group-id <id>
asc testflight testers add --group-id <id> --email [email protected]
asc testflight testers remove --group-id <id> --tester-id <id>

Metadata

asc metadata list --version-id <id>
asc metadata update --version-id <id> --locale en-US --whats-new "Bug fixes"
asc metadata update --version-id <id> --locale en-US --description "New description" --keywords "photo,edit"

Localizations (per-region metadata)

# List localization IDs for each locale in a version
asc localizations list --version-id <id>

# Update description/keywords/what's new for a specific locale
asc localizations update <localization-id> --description "..." --keywords "photo,edit" --whats-new "..."
asc localizations update <localization-id> --promotional-text "Limited time sale!"

# Create a new locale or delete one
asc localizations create --version-id <id> --locale fr-FR --description "..." --keywords "..."
asc localizations delete <localization-id>

Reviews

asc reviews list --app-id <id>
asc reviews get <review-id>
asc reviews respond --review-id <id> --message "Thank you for your feedback!"

Pricing

asc pricing schedule get --app-id <id>
asc pricing schedule set --app-id <id> --base-territory USA --price-point-id <id>

# Per-territory pricing (e.g. Big Mac Index / PPP)
asc pricing set-manual --app-id <id> --base-territory USA --prices 'USA:ppId1,GBR:ppId2,EUR:ppId3,AUS:ppId4'

asc pricing points list --app-id <id>
asc pricing points list --app-id <id> --territory GBR
asc pricing territories list

In-App Purchases

asc iap list --app-id <id>
asc iap get <iap-id>
asc iap create --app-id <id> --name "Premium" --product-id "com.example.premium" --type CONSUMABLE
asc iap delete <iap-id>

Subscriptions

asc subscriptions groups list --app-id <id>
asc subscriptions groups create --app-id <id> --name "Pro"
asc subscriptions list --group-id <id>
asc subscriptions get <subscription-id>
asc subscriptions create --group-id <id> --name "Monthly" --product-id "com.example.monthly"
asc subscriptions prices list --subscription-id <id>

Code Signing

asc signing certificates list
asc signing certificates get <certificate-id>
asc signing certificates revoke <certificate-id>
asc signing devices list
asc signing devices register --name "My iPhone" --udid <udid> --platform IOS
asc signing bundle-ids list
asc signing bundle-ids register --identifier "com.example.app" --name "My App" --platform IOS
asc signing profiles list
asc signing profiles delete <profile-id>

Reports

asc reports sales --vendor-number 12345678 --frequency DAILY --date 2024-03-01
asc reports finance --vendor-number 12345678 --region US --date 2024-03
asc reports analytics list --app-id <id>
asc reports analytics request --app-id <id>

Xcode Cloud

asc xcode-cloud products list --app-id <id>
asc xcode-cloud workflows list --product-id <id>
asc xcode-cloud workflows get <workflow-id>
asc xcode-cloud builds list --product-id <id>
asc xcode-cloud builds run --workflow-id <id>
asc xcode-cloud artifacts list --build-id <id>
asc xcode-cloud test-results list --build-id <id>

Game Center

asc game-center achievements list --app-id <id>
asc game-center achievements get <achievement-id>
asc game-center leaderboards list --app-id <id>
asc game-center leaderboard-sets list --app-id <id>

Beta Review

asc beta-review submit --build-id <id>
asc beta-review status <submission-id>
asc beta-review detail-get --build-id <id>
asc beta-review detail-update --build-id <id> --contact-email [email protected]
asc beta-review notify --build-id <id>
asc beta-review localizations list --build-id <id>

Output formats

All list commands support --output table (default in TTY) or --output json (default in pipes/CI):

asc apps list --output json | jq '.[].bundleId'

AI agent usage

# Get full command tree as structured JSON
asc --help --json

Security

  • Credentials stored in ~/.asc/credentials.json (permissions 0600)
  • Private keys stored in macOS Keychain via the security CLI (no extra dependencies)
  • Use --bypass-keychain or ASC_BYPASS_KEYCHAIN=1 to store the key file path in JSON instead
  • For CI: use ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH env vars

License

MIT