SKILL.md
asc cli usage
Use this skill when you need to run or design asc commands for App Store Connect.
Command discovery
- Always use
--helpto discover commands and flags.
- asc --help - asc builds --help - asc builds list --help
- Use
asc searchfor 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 schemato 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 capabilitiesto explain CLI-supported, partial, web-session, and public-API-limited workflow coverage.
- asc capabilities --area release --output table - asc capabilities --status web-session --output table - asc capabilities --status not-public-api --output markdown
Canonical verbs (current asc)
- Prefer
viewover legacygetaliases for read-only commands in docs and automation.
- asc apps view --id "APPID" - asc versions view --version-id "VERSIONID" - asc pricing availability view --app "APP_ID"
- Prefer
editfor update-only availability surfaces and other canonical edit flows.
- asc pricing availability edit --app "APPID" --territory "USA,GBR" --available true - asc app-setup availability edit --app "APPID" --territory "USA,GBR" --available true - asc xcode version edit --build-number "42"
- Use
asc pricing availability createto initialize app availability before using the update-onlyeditcommand. If Apple rejects the public-API bootstrap, authenticate a web session and useasc web apps availability create, or configure Pricing and Availability in App Store Connect.
- asc pricing availability create --app "APPID" --territory "USA,GBR" --available true --available-in-new-territories true - asc web apps availability create --app "APPID" --territory "USA,GBR" --available-in-new-territories true
- Keep
setwhere the CLI intentionally models a higher-level replacement/configuration flow and--helpstill showssetas 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
--paginatewhen the user wants all pages.
Output formats
- Output defaults are TTY-aware:
tablein interactive terminals,jsonwhen piped or non-interactive. - Use
--output tableor--output markdownonly for human-readable output. --prettyis only valid with JSON output.
Authentication and defaults
- Prefer keychain auth via
asc auth login. - Fallback env vars:
ASCKEYID,ASCISSUERID,ASCPRIVATEKEYPATH,ASCPRIVATEKEY,ASCPRIVATEKEYB64. ASCAPPIDcan provide a default app ID.- When permissions are unclear, inspect exact API key role coverage with
asc web auth capabilities.
- This lives under the web-session auth surface. - It can resolve the current local auth by default, or inspect a specific key with --key-id.
- Create an App Store Connect team API key through a cached Apple Account web session with
asc web api-keys create.
- An Account Holder or Admin session is required; use asc web auth login --apple-id "[email protected]" first when needed. - The command saves the one-time P8 as AuthKey<KEYID>.p8 without printing its contents; choose an explicit private directory with --output-dir. - Example: asc web api-keys create --name "CI uploads" --role APP_MANAGER --output-dir "./keys" --output json.
Apple Ads
- Use
asc ads --helpbefore choosing a command. - Apple Ads uses
asc ads auth,--ads-profile, andASCADS*variables. It does not use App Store Connect API credentials. - Direct resource commands use Platform API v1 with
--ad-accountorASCADSADACCOUNTID. Deprecated Campaign Management API v5 commands live underasc ads v5and use--orgorASCADSORG_ID; never substitute one ID for the other. - Discover ad-account access with
asc ads auth discover --output jsonor inspect one ACL response withasc ads acls list --output json. - Body commands use
--filewith the exact schema named by the leaf help. V1 query filters use singularvalue, and bulk bodies may use wrapper objects rather than v5 arrays. - Apple Ads resource commands emit JSON. Use
--paginateonly where help shows it; reports and most query bodies carry pagination inside the JSON file. - Deletes and spend-, billing-, delivery-, targeting-, or access-sensitive mutations require
--confirm. An explicitly paused campaign create is the main documented safe exception. - For live mutation tests, create paused resources with a clear test name, save every ID, pause spend-bearing resources first, and delete only resources created by the test.
Timeouts
ASCTIMEOUT/ASCTIMEOUT_SECONDScontrol request timeouts.ASCUPLOADTIMEOUT/ASCUPLOADTIMEOUT_SECONDScontrol upload timeouts.