PluginBench
Skill
Pass
Audit score 90

asc-cli-usage

rudrankriyam/app-store-connect-cli-skills

Guidance for running asc CLI commands against App Store Connect with proper flags, auth, and discovery techniques.

What is asc-cli-usage?

This skill provides reference documentation for using the asc CLI tool to interact with App Store Connect. It covers command discovery, canonical verbs, flag conventions, output formats, authentication, and Apple Ads-specific workflows. Use it when designing or executing asc commands or troubleshooting CLI interactions.

  • Discover asc commands and flags using --help, asc search, asc schema, and asc capabilities
  • Use canonical verbs (view, edit, set) and explicit long flags for reliable automation
  • Configure authentication via keychain or environment variables (ASC_KEY_ID, ASC_ISSUER_ID, etc.)
  • Handle output formats (table, json, markdown) with TTY-aware defaults and --pretty for JSON
  • Execute Apple Ads commands with separate auth, org IDs, and bulk/object payload handling
  • Control request and upload timeouts via ASC_TIMEOUT and ASC_UPLOAD_TIMEOUT variables

How to install asc-cli-usage

npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-cli-usage
Prerequisites
  • asc CLI installed and available in PATH
  • App Store Connect API key (or Apple Ads credentials for ads commands)
  • Keychain access configured via asc auth login, or environment variables set (ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH, etc.)
Claude Code
Cursor
Windsurf
Cline

How to use asc-cli-usage

  1. 1.Run asc --help or asc <command> --help to discover available commands and flags
  2. 2.Use asc search <workflow> to find commands by workflow description (e.g., asc search "submit app for review")
  3. 3.Use asc schema to inspect endpoint schemas and request fields before designing API commands
  4. 4.Use asc capabilities to check CLI coverage for your workflow area and status
  5. 5.Run commands with explicit long flags (--app, --output, etc.) for automation
  6. 6.Add --confirm to destructive operations and --paginate when you need all result pages
  7. 7.Set authentication via asc auth login (keychain) or export environment variables (ASC_KEY_ID, ASC_ISSUER_ID, etc.)
  8. 8.For Apple Ads, use asc ads auth and --org or ASC_ADS_ORG_ID instead of App Store Connect credentials

Use cases

Good for
  • Discover the correct asc command path for a workflow using asc search or asc schema inspection
  • Set up CI/CD automation with explicit flags and environment variable authentication
  • Query App Store Connect data with appropriate output format (json for piping, table for interactive use)
  • Execute destructive operations safely by understanding --confirm requirements
  • Manage Apple Ads campaigns and reporting with org-specific credentials and bulk payloads
Who it's for
  • DevOps engineers automating App Store Connect workflows in CI/CD pipelines
  • iOS/macOS developers using asc CLI for app releases and metadata management
  • Release managers coordinating app submissions and availability across territories
  • Automation engineers building scripts that interact with App Store Connect APIs
  • Teams managing Apple Ads campaigns programmatically

asc-cli-usage FAQ

How do I discover what asc commands are available?

Use asc --help for top-level commands, asc <command> --help for subcommands, asc search <workflow> for keyword-based discovery, asc schema to inspect API endpoints, and asc capabilities to check coverage by area.

What authentication method should I use?

Prefer asc auth login for keychain-based auth. For automation, set environment variables: ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH (or ASC_PRIVATE_KEY or ASC_PRIVATE_KEY_B64). Optionally set ASC_APP_ID as a default.

When should I use --output table vs --output json?

Use table or markdown for human-readable output in interactive terminals. Use json (or let the CLI auto-detect) when piping to other tools or in non-interactive environments. Add --pretty only with JSON output.

How do I handle Apple Ads commands differently?

Apple Ads uses separate asc ads auth, --ads-profile, and ASC_ADS_* environment variables (not App Store Connect credentials). Most commands need --org or ASC_ADS_ORG_ID. Use --file with JSON payloads and --confirm for destructive operations.

What do I do if a command times out?

Set ASC_TIMEOUT or ASC_TIMEOUT_SECONDS for request timeouts, and ASC_UPLOAD_TIMEOUT or ASC_UPLOAD_TIMEOUT_SECONDS for upload timeouts.

Full instructions (SKILL.md)

Source of truth, from rudrankriyam/app-store-connect-cli-skills.


name: asc-cli-usage description: Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery). Use when asked to run or design asc commands or interact with App Store Connect via the CLI.

asc cli usage

Use this skill when you need to run or design asc commands for App Store Connect.

Command discovery

  • Always use --help to discover commands and flags.
    • asc --help
    • asc builds --help
    • asc builds list --help
  • Use asc search for local, deterministic command discovery when you know the workflow but not the command path.
    • asc search "submit app for review"
    • asc search --output table "upload build"
  • Use asc schema to inspect bundled App Store Connect endpoint schemas and request/query fields before designing API-facing commands.
    • asc schema --pretty "GET /v1/apps"
    • asc schema --method POST appStoreVersions
  • Use asc capabilities to explain CLI-supported, partial, web-only, and public-API-limited workflow coverage.
    • asc capabilities --area release --output table
    • asc capabilities --status not-public-api --output markdown

Canonical verbs (current asc)

  • Prefer view over legacy get aliases for read-only commands in docs and automation.
    • asc apps view --id "APP_ID"
    • asc versions view --version-id "VERSION_ID"
    • asc pricing availability view --app "APP_ID"
  • Prefer edit for update-only availability surfaces and other canonical edit flows.
    • asc pricing availability edit --app "APP_ID" --territory "USA,GBR" --available true
    • asc app-setup availability edit --app "APP_ID" --territory "USA,GBR" --available true
    • asc xcode version edit --build-number "42"
  • Keep set where the CLI intentionally models a higher-level replacement/configuration flow and --help still shows set as the canonical verb.

Flag conventions

  • Use explicit long flags (e.g., --app, --output).
  • Prefer explicit flags in automation; some newer commands can prompt for missing fields when run interactively.
  • Destructive operations require --confirm.
  • Use --paginate when the user wants all pages.

Output formats

  • Output defaults are TTY-aware: table in interactive terminals, json when piped or non-interactive.
  • Use --output table or --output markdown only for human-readable output.
  • --pretty is only valid with JSON output.

Authentication and defaults

  • Prefer keychain auth via asc auth login.
  • Fallback env vars: ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH, ASC_PRIVATE_KEY, ASC_PRIVATE_KEY_B64.
  • ASC_APP_ID can provide a default app ID.
  • When permissions are unclear, inspect exact API key role coverage with asc web auth capabilities.
    • This lives under the experimental web auth surface.
    • It can resolve the current local auth by default, or inspect a specific key with --key-id.

Apple Ads

  • Use asc ads --help before choosing a command.
  • Apple Ads uses asc ads auth, --ads-profile, and ASC_ADS_* variables. It does not use App Store Connect API credentials.
  • Resolve org access with asc ads acls --output json unless the org ID is already known.
  • Most endpoint commands need --org or ASC_ADS_ORG_ID.
  • Body commands use --file with Apple Ads JSON payloads. Object endpoints need a JSON object. Bulk endpoints often need a JSON array.
  • Use --paginate only where help shows it. Reporting and selector payloads carry pagination inside the JSON file.
  • Destructive commands and bulk delete commands require --confirm.
  • For live mutation tests, create paused resources with a clear test name and delete the parent campaign when done.

Timeouts

  • ASC_TIMEOUT / ASC_TIMEOUT_SECONDS control request timeouts.
  • ASC_UPLOAD_TIMEOUT / ASC_UPLOAD_TIMEOUT_SECONDS control upload timeouts.