Asc App Previews: Install, Source and Security | FunnelSlayer

Asc App Previews

Published by tddworks in asc-cli-skills

No known issues70 installs

What this skill does

|

Add Asc App Previews to your agent

Review the source and files first. When you are ready, copy the prompt instruction or use the CLI command supported by your environment.

Install with a prompt

Paste this into a compatible coding agent:

add this skill "asc-app-previews" from https://github.com/tddworks/asc-cli-skills

Install with the CLI

Run this command in a controlled environment after reviewing the repository:

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

Skill instructions

asc App Previews

Manage App Store preview video sets and video uploads via the asc CLI.

Commands

List preview sets for a localization

asc app-preview-sets list --localization-id <LOCALIZATION_ID>

Create a preview set

asc app-preview-sets create \
  --localization-id <LOCALIZATION_ID> \
  --preview-type <PREVIEW_TYPE>

--preview-type raw values have no APP_ prefix — unlike screenshot display types. Common values: IPHONE_67, IPHONE_65, IPAD_PRO_3GEN_129, APPLE_TV, APPLE_VISION_PRO, DESKTOP.

See preview-types.md for all valid values grouped by device.

List previews in a set

asc app-previews list --set-id <SET_ID>

Upload a preview video

asc app-previews upload \
  --set-id <SET_ID> \
  --file path/to/preview.mp4 \
  [--preview-frame-time-code 00:00:05]
  • Accepted formats: .mp4, .mov, .m4v
  • --preview-frame-time-code sets the poster frame shown in the App Store
  • Upload is a 3-step API flow: POST reserve → PUT chunks → PATCH MD5 confirm

State Fields

AppPreview has two independent state fields (unlike screenshots which only have one):

FieldStatesMeaning
assetDeliveryStateAWAITING_UPLOAD, UPLOAD_COMPLETE, COMPLETE, FAILEDUpload progress
videoDeliveryStateAWAITING_UPLOAD, UPLOAD_COMPLETE, PROCESSING, COMPLETE, FAILEDVideo encoding

videoDeliveryState: "COMPLETE" = video ready. PROCESSING is unique to previews (absent on screenshots).

Nil fields are omitted from JSON output. mimeType values containing / are escaped as \/ by JSONEncoder (e.g. "video\/mp4").

CAEOAS Affordances

Every JSON response includes affordances with ready-to-run follow-up commands:

AppPreviewSet:

{
  "affordances": {
    "listPreviews":    "asc app-previews list     --set-id <SET_ID>",
    "listPreviewSets": "asc app-preview-sets list --localization-id <LOCALIZATION_ID>"
  }
}

AppPreview:

{
  "affordances": {
    "listPreviews": "asc app-previews list --set-id <SET_ID>"
  }
}

Typical Workflow

# 1. Find the localization ID
asc version-localizations list --version-id <VERSION_ID> --output table

# 2. Create a preview set for the target device
asc app-preview-sets create \
  --localization-id <LOCALIZATION_ID> \
  --preview-type IPHONE_67

# 3. Upload the video (copy --set-id from affordances in step 2)
asc app-previews upload \
  --set-id <SET_ID> \
  --file preview.mp4 \
  --preview-frame-time-code 00:00:05

# 4. Check processing state
asc app-previews list --set-id <SET_ID> --pretty

Files included

  • references/preview-types.md
  • SKILL.md

More skills