mcpField
A
asc-app-clips

asc-app-clips

github.com/tddworksDevelopment588 installsUpdated 7w ago
Repository

About asc-app-clips

asc-app-clips is a skill for managing App Clips through the App Store Connect API using asc. It covers default experiences and localized card content, with linked commands that help navigate between related records.

Key features

  1. 01List App Clips and default experiences
  2. 02Create or delete default experiences
  3. 03Manage localized card subtitles
  4. 04Follow linked commands with IDs filled in
  5. 05View results as JSON or tables

Use cases

  1. 01Set up an App Clip default experience
  2. 02Add locale-specific card subtitles
  3. 03Review App Clip experience localizations

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-app-clips

After installing, type/asc-app-clipsin Claude Code to confirm it loaded.

Details

From the project README

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.

FlagRequiredDescription
--app-idyesApp Store Connect app ID
--output table|jsonnoOutput format (default: json)
--prettynoPretty-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.

FlagRequiredDescription
--app-clip-idyesApp Clip ID
--output table|jsonnoOutput format
--prettynoPretty-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.

FlagRequiredDescription
--app-clip-idyesApp Clip ID
--actionnoOPEN, VIEW, or PLAY
--output table|jsonnoOutput format
--prettynoPretty-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.

FlagRequiredDescription
--experience-idyesExperience ID to delete
asc app-clip-experiences delete --experience-id exp-xyz
asc app-clip-experience-localizations list

List localizations for a default experience.

FlagRequiredDescription
--experience-idyesExperience ID
--output table|jsonnoOutput format
--prettynoPretty-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.

FlagRequiredDescription
--experience-idyesExperience ID
--localeyesLocale code (e.g. en-US, fr-FR, zh-Hans)
--subtitlenoSubtitle shown in the App Clip card
--output table|jsonnoOutput format
--prettynoPretty-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.

FlagRequiredDescription
--localization-idyesLocalization 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)
  • action — OPEN, 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.

Comments

Markdown supported