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
- 01List App Clips and default experiences
- 02Create or delete default experiences
- 03Manage localized card subtitles
- 04Follow linked commands with IDs filled in
- 05View results as JSON or tables
Use cases
- 01Set up an App Clip default experience
- 02Add locale-specific card subtitles
- 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-clipsAfter installing, type/asc-app-clipsin Claude Code to confirm it loaded.
Details
From the project READMEApp 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 IDappId— 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 IDappClipId— parent App Clip ID (injected)action—OPEN,VIEW, orPLAY(omitted from JSON if nil)- Affordances:
delete,listExperiences,listLocalizations
AppClipDefaultExperienceLocalization — Locale-specific App Clip card content
id— localization IDexperienceId— 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.