asc-app-clips

SKILL.md

App Clips with asc

Manage App Clips, their default experiences, and locale-specific card content through the App Store Connect API.

Authentication

asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8

How to Navigate (CAEOAS Affordances)

Every JSON response contains an "affordances" field with ready-to-run commands — IDs already filled in. Start from the App Clip and navigate to experiences and localizations.

{
  "id": "clip-abc",
  "appId": "6443417124",
  "bundleId": "com.example.MyApp.Clip",
  "affordances": {
    "listAppClips": "asc app-clips list --app-id 6443417124",
    "listExperiences": "asc app-clip-experiences list --app-clip-id clip-abc"
  }
}

Typical Workflow

Set up an App Clip experience with localizations

# 1. Find the App Clip for your app
asc app-clips list --app-id 6443417124 --pretty

# 2. Create a default experience (copy --app-clip-id from the listExperiences affordance)
asc app-clip-experiences create \
  --app-clip-id clip-abc \
  --action OPEN \
  --pretty

# 3. Add an English localization (copy --experience-id from the listLocalizations affordance)
asc app-clip-experience-localizations create \
  --experience-id exp-xyz \
  --locale en-US \
  --subtitle "Order faster with your loyalty card" \
  --pretty

# 4. Add a French localization
asc app-clip-experience-localizations create \
  --experience-id exp-xyz \
  --locale fr-FR \
  --subtitle "Commandez plus vite avec votre carte" \
  --pretty

# 5. Review all localizations
asc app-clip-experience-localizations list --experience-id exp-xyz --output table

View all App Clip content at a glance

CLIP_ID=$(asc app-clips list --app-id APP_ID | jq -r '.data[0].id')
asc app-clip-experiences list --app-clip-id "$CLIP_ID" --output table

EXP_ID=$(asc app-clip-experiences list --app-clip-id "$CLIP_ID" | jq -r '.data[0].id')
asc app-clip-experience-localizations list --experience-id "$EXP_ID" --output table

Commands

asc app-clips list

List all App Clips for an app.

Flag Required Description
--app-id yes App Store Connect app ID
--output table|json no Output format (default: json)
--pretty no Pretty-print JSON
asc app-clips list --app-id 6443417124 --pretty
asc app-clips list --app-id 6443417124 --output table

asc app-clip-experiences list

List default experiences for an App Clip.

Flag Required Description
--app-clip-id yes App Clip ID
--output table|json no Output format
--pretty no Pretty-print JSON
asc app-clip-experiences list --app-clip-id clip-abc --pretty

asc app-clip-experiences create

Create a default experience for an App Clip.

Flag Required Description
--app-clip-id yes App Clip ID
--action no OPEN, VIEW, or PLAY
--output table|json no Output format
--pretty no Pretty-print JSON
asc app-clip-experiences create --app-clip-id clip-abc --action OPEN --pretty
asc app-clip-experiences create --app-clip-id clip-abc  # no action

asc app-clip-experiences delete

Delete a default experience.

Flag Required Description
--experience-id yes Experience ID to delete
asc app-clip-experiences delete --experience-id exp-xyz

asc app-clip-experience-localizations list

List localizations for a default experience.

Flag Required Description
--experience-id yes Experience ID
--output table|json no Output format
--pretty no Pretty-print JSON
asc app-clip-experience-localizations list --experience-id exp-xyz --pretty

asc app-clip-experience-localizations create

Create a localization for a default experience. Each locale gets its own subtitle shown in the App Clip card.

Flag Required Description
--experience-id yes Experience ID
--locale yes Locale code (e.g. en-US, fr-FR, zh-Hans)
--subtitle no Subtitle shown in the App Clip card
--output table|json no Output format
--pretty no Pretty-print JSON
asc app-clip-experience-localizations create \
  --experience-id exp-xyz \
  --locale en-US \
  --subtitle "Order faster with your loyalty card"

asc app-clip-experience-localizations delete

Delete a localization.

Flag Required Description
--localization-id yes Localization ID to delete
asc app-clip-experience-localizations delete --localization-id loc-abc

Domain Models

AppClip — An App Clip linked to an app

  • id — App Clip ID
  • appId — parent App ID (injected from request, not returned by API)
  • bundleId — App Clip bundle identifier (omitted from JSON if nil)
  • Affordances: listAppClips, listExperiences

AppClipDefaultExperience — How an App Clip is invoked

  • id — experience ID
  • appClipId — parent App Clip ID (injected)
  • actionOPEN, VIEW, or PLAY (omitted from JSON if nil)
  • Affordances: delete, listExperiences, listLocalizations

AppClipDefaultExperienceLocalization — Locale-specific App Clip card content

  • id — localization ID
  • experienceId — parent experience ID (injected)
  • locale — locale code (e.g. en-US)
  • subtitle — subtitle shown in the App Clip card (omitted from JSON if nil)
  • Affordances: delete, listLocalizations

Full Command Reference

See commands.md for all flags and examples.

Weekly Installs
2
First Seen
Today
Installed on
junie2
windsurf2
amp2
cline2
opencode2
cursor2