mirror of
https://github.com/rorkai/app-store-connect-cli-skills.git
synced 2026-09-18 19:53:41 +08:00
442 lines
14 KiB
Markdown
442 lines
14 KiB
Markdown
# ASC CLI skills
|
|
|
|
A collection of Agent Skills for shipping with the [asc cli](https://github.com/rorkai/App-Store-Connect-CLI) (`asc`). These skills help agents run builds, TestFlight, metadata, submissions, signing, and Apple Ads workflows.
|
|
|
|
This is a community-maintained, unofficial skill pack and is not affiliated with Apple.
|
|
|
|
Skills follow the Agent Skills format.
|
|
|
|
## Installation
|
|
|
|
Install the skills with `asc`:
|
|
|
|
```bash
|
|
asc install-skills
|
|
```
|
|
|
|
Or install them directly from GitHub with the Agent Skills installer:
|
|
|
|
```bash
|
|
npx skills add rorkai/app-store-connect-cli-skills
|
|
```
|
|
|
|
### Claude Code plugin
|
|
|
|
This repository is also a Claude Code marketplace. Add it once, then install the `asc` plugin:
|
|
|
|
```bash
|
|
claude plugin marketplace add rorkai/app-store-connect-cli-skills
|
|
claude plugin install asc@rorkai
|
|
```
|
|
|
|
### Codex plugin
|
|
|
|
The repository includes a Codex plugin manifest and can be listed by a Codex plugin marketplace.
|
|
Codex currently installs plugins from configured marketplaces, so use the Agent Skills installer
|
|
until `asc` has a public marketplace listing:
|
|
|
|
```bash
|
|
npx skills add rorkai/app-store-connect-cli-skills --agent codex
|
|
```
|
|
|
|
## Available Skills
|
|
|
|
### asc-cli-usage
|
|
|
|
Guidance for running `asc` commands (canonical verbs, flags, pagination, output, auth).
|
|
|
|
**Use when:**
|
|
- You need the correct `asc` command or flag combination
|
|
- You want JSON-first output and pagination tips for automation
|
|
- You need Apple Ads command, auth, ad-account, org, payload, or pagination guidance
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Find the right asc command to list all builds for app 123456789 as JSON and paginate through everything.
|
|
```
|
|
|
|
### asc-apple-ads
|
|
|
|
Apple Ads auth and account discovery, Platform API v1 campaigns, targeting, reports, assets, guarded mutations, raw calls, and v5 migration.
|
|
|
|
**Use when:**
|
|
- You need to read or change Apple Ads resources with `asc ads`
|
|
- You need Apple Ads OAuth, profile, ad-account context, or `ASC_ADS_*` guidance
|
|
- You need a safe read-first plan before mutating a live Ads account
|
|
- You need to migrate deprecated `asc ads v5` automation to Platform API v1
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Discover my Apple Ads ad account, query campaigns through Platform API v1, and draft a paused test plan before creating anything.
|
|
```
|
|
|
|
### asc-workflow
|
|
|
|
Define and run repo-local automation graphs using `asc workflow` and `.asc/workflow.json`.
|
|
|
|
**Use when:**
|
|
- You are migrating from lane-based automation to repo-local workflows
|
|
- You need multi-step orchestration with machine-parseable JSON output for CI/agents
|
|
- You need hooks (`before_all`, `after_all`, `error`), conditionals (`if`), and private helper sub-workflows
|
|
- You want validation (`asc workflow validate`) with cycle/reference checks before execution
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Create an asc workflow that stages a release, validates it, and only submits when CONFIRM_RELEASE=true.
|
|
```
|
|
|
|
### asc-app-create-ui
|
|
|
|
Create a new App Store Connect app via browser automation when no API exists.
|
|
|
|
**Use when:**
|
|
- You need to create an app record (name, bundle ID, SKU, primary language)
|
|
- You are comfortable logging in to App Store Connect in a real browser
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Create a new App Store Connect app for com.example.myapp with SKU MYAPP123 and primary language English (U.S.).
|
|
```
|
|
|
|
### asc-xcode-build
|
|
|
|
Build, archive, generate export options, export, and manage Xcode version/build numbers before uploading.
|
|
|
|
**Use when:**
|
|
- You need to create an IPA or PKG for upload
|
|
- You're setting up CI/CD build pipelines
|
|
- You need to generate or customize ExportOptions.plist
|
|
- You need a modern `release-testing` IPA for registered devices
|
|
- You're troubleshooting encryption compliance issues
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Archive and export my macOS app as a PKG I can upload to App Store Connect.
|
|
```
|
|
|
|
### asc-ad-hoc-distribution
|
|
|
|
Prepare and publish verified private iOS installs for registered devices with
|
|
the experimental `asc distribute` workflow.
|
|
|
|
**Use when:**
|
|
- You need to ship a build outside TestFlight to a controlled device list
|
|
- You want a read-only plan before additive signing and storage mutations
|
|
- You need to resume or live-verify a private S3-compatible distribution run
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Plan a private release-testing install from this Xcode archive, show me the exact effects, and apply only after I approve the plan hash.
|
|
```
|
|
|
|
### asc-screenshot-resize
|
|
|
|
Resize and validate App Store screenshots using the current size catalog from `asc screenshots sizes` and macOS `sips`.
|
|
|
|
**Use when:**
|
|
- You need to inspect the screenshot dimensions Apple currently accepts
|
|
- You need to remove alpha or resize screenshots before upload
|
|
- You want local validation against an App Store screenshot device type
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Validate these iPhone screenshots, resize only the invalid files, and verify the results before upload.
|
|
```
|
|
|
|
### asc-shots-pipeline
|
|
|
|
Agent-first screenshot pipeline using xcodebuild/simctl, AXe, JSON plans, `asc screenshots frame` (experimental), and `asc screenshots upload`.
|
|
|
|
**Use when:**
|
|
- You need a repeatable simulator screenshot automation flow
|
|
- You want AXe-based UI driving before capture
|
|
- You need a staged pipeline (capture -> frame -> upload)
|
|
- You need to discover supported frame devices (`asc screenshots list-frame-devices`)
|
|
- You want pinned Koubou guidance for deterministic framing (`koubou==0.18.1`)
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Build my iOS app, capture the home and settings screens in the simulator, frame them, and prepare them for upload.
|
|
```
|
|
|
|
### asc-release-flow
|
|
|
|
Stage, upload, publish, and submit App Store releases through dry-run and confirmation-oriented orchestration.
|
|
|
|
**Use when:**
|
|
- A prepared app version or artifact needs to be staged, uploaded, or submitted
|
|
- You need to choose between `asc release stage`, `asc review submit`, and `asc publish appstore`
|
|
- You need to assemble a multi-item submission containing Game Center or digital-goods versions
|
|
|
|
For readiness failures, blocker diagnosis, monitoring, cancellation, or retry decisions, use `asc-submission-health`.
|
|
|
|
**Example:**
|
|
|
|
> Stage version 2.4.0 with the selected build, show the dry-run plan, and submit it after confirmation.
|
|
|
|
### asc-signing-setup
|
|
|
|
Bundle IDs, capabilities, certificates, provisioning profiles, and encrypted signing sync.
|
|
|
|
**Use when:**
|
|
- You are onboarding a new app or bundle ID
|
|
- You need to create or rotate signing assets
|
|
- You need to sync a private identity, reconcile ad hoc profiles, or run a command in an isolated signing environment
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Set up signing for com.example.app with iCloud enabled, a distribution certificate, and an App Store profile.
|
|
```
|
|
|
|
### asc-id-resolver
|
|
|
|
Resolve IDs for apps, builds, app and digital-goods versions, groups, and testers.
|
|
|
|
**Use when:**
|
|
- A command requires IDs and you only have names
|
|
- You need an API 4.4.1 IAP, subscription, or subscription-group version ID
|
|
- You want deterministic outputs for automation
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Resolve the App Store Connect app ID, latest build ID, and TestFlight group IDs for MyApp.
|
|
```
|
|
|
|
### asc-metadata-sync
|
|
|
|
Metadata and localization sync (including legacy metadata format migration).
|
|
|
|
**Use when:**
|
|
- You are updating App Store metadata or localizations
|
|
- You need to validate character limits before upload
|
|
- You need to update privacy policy URL or app-level metadata
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Pull my App Store metadata into ./metadata, update the privacy policy URL, and push the changes back safely.
|
|
```
|
|
|
|
### asc-localize-metadata
|
|
|
|
Translate App Store metadata (description, keywords, what's new, subtitle) to multiple locales using LLM translation prompts and push via `asc`.
|
|
|
|
**Use when:**
|
|
- You want to localize an app's App Store listing from a source locale (usually en-US)
|
|
- You need locale-aware keywords (not literal translations) and strict character limit enforcement
|
|
- You want a review-before-upload workflow for translations
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Translate my en-US App Store metadata into German, French, and Japanese, then show me the changes before upload.
|
|
```
|
|
|
|
### asc-aso-audit
|
|
|
|
Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP.
|
|
|
|
**Use when:**
|
|
- You want to audit subtitle, keywords, description, and what's new fields for waste and formatting issues
|
|
- You want keyword-gap analysis against Astro-tracked rankings and competitor terms
|
|
- You want follow-up actions that map cleanly to `asc metadata keywords ...`
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Audit ./metadata for ASO problems, then show the highest-value keyword gaps from Astro for my latest version.
|
|
```
|
|
|
|
### asc-analytics-reports
|
|
|
|
Collect, download, and verify private App Store Connect Analytics reports with `asc`.
|
|
|
|
**Use when:**
|
|
- You need to find an existing analytics report request
|
|
- You want report instances filtered by processing date or granularity
|
|
- You need every report segment downloaded and checked against Apple's size and MD5 metadata
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Collect my latest weekly analytics reports, download every segment privately, and verify each file before analysis.
|
|
```
|
|
|
|
### asc-whats-new-writer
|
|
|
|
Generate engaging, localized App Store release notes from git log, bullet points, or free text using canonical metadata under `./metadata`.
|
|
|
|
**Use when:**
|
|
- You want polished What's New copy from rough release inputs
|
|
- You want localized release notes across existing locales
|
|
- You want a review-before-upload workflow using `asc metadata push` or direct metadata edits
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Turn these release bullet points into polished What's New notes for en-US and localize them across my existing metadata locales.
|
|
```
|
|
|
|
### asc-submission-health
|
|
|
|
Diagnose submission blockers, route repairs, monitor review state, cancel unhealthy submissions, and decide when to retry.
|
|
|
|
**Use when:**
|
|
- You want to know whether an app can be submitted now
|
|
- Validation reports metadata, compliance, digital-goods, availability, or App Privacy blockers
|
|
- A version is not in a valid state
|
|
- You need to monitor, cancel, repair, or safely retry a submission
|
|
|
|
For staging, upload, publication, and submission execution, use `asc-release-flow`.
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Validate version 2.4.0, classify every blocker, route the repairs, and tell me whether it is safe to retry.
|
|
```
|
|
|
|
### asc-testflight-orchestration
|
|
|
|
Beta groups, testers, build distribution, and What to Test notes.
|
|
|
|
**Use when:**
|
|
- You manage multiple TestFlight groups and testers
|
|
- You need consistent beta rollout steps
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Export my current TestFlight config, create a new external group, add testers, and attach the latest build.
|
|
```
|
|
|
|
### asc-build-lifecycle
|
|
|
|
Build processing, latest build resolution, and cleanup.
|
|
|
|
**Use when:**
|
|
- You are waiting on build processing
|
|
- You want automated cleanup and retention policies
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Find the latest processed build for app 123456789 and preview expiring all TestFlight builds older than 90 days.
|
|
```
|
|
|
|
### asc-ppp-pricing
|
|
|
|
Territory-specific pricing using purchasing power parity (PPP).
|
|
|
|
**Use when:**
|
|
- You want different prices for different countries
|
|
- You are implementing localized pricing strategies
|
|
- You need to adjust prices based on regional purchasing power
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Update my subscription pricing for India, Brazil, and Mexico using a PPP-style rollout and verify the result.
|
|
```
|
|
|
|
### asc-subscription-localization
|
|
|
|
Bulk-localize subscription and IAP display names across all App Store locales,
|
|
including API 4.4.1 version-scoped v2 resources.
|
|
|
|
**Use when:**
|
|
- You want to set the same subscription display name in every language at once
|
|
- You need to fill in missing subscription/group/IAP localizations
|
|
- You're tired of clicking through each locale in App Store Connect manually
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Set the display name Monthly Pro across all missing locales for this subscription and verify which locales were created.
|
|
```
|
|
|
|
### asc-revenuecat-catalog-sync
|
|
|
|
Reconcile App Store Connect subscriptions/IAP with RevenueCat products, entitlements, offerings, and packages.
|
|
|
|
**Use when:**
|
|
- You want to sync ASC product catalogs to RevenueCat
|
|
- You need to create missing ASC subscriptions/IAPs before mapping them
|
|
- You want an audit-first workflow with explicit apply confirmation
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Audit my App Store Connect subscriptions and IAPs against RevenueCat, then create any missing mappings after I approve the plan.
|
|
```
|
|
|
|
### asc-notarization
|
|
|
|
Archive, export, and notarize macOS apps with Developer ID signing.
|
|
|
|
**Use when:**
|
|
- You need to notarize a macOS app for distribution outside the App Store
|
|
- You want the full flow: archive → Developer ID export → zip → notarize → staple
|
|
- You're troubleshooting Developer ID signing or trust chain issues
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Archive my macOS app, export it for Developer ID, notarize the ZIP, and staple the result.
|
|
```
|
|
|
|
### asc-crash-triage
|
|
|
|
Triage TestFlight crashes, beta feedback, and performance diagnostics.
|
|
|
|
**Use when:**
|
|
- You want to review recent TestFlight crash reports
|
|
- You need a crash summary grouped by signature, device, and build
|
|
- You want to check beta tester feedback and screenshots
|
|
- You need performance diagnostics (hangs, disk writes, launches) for a build
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Show me the latest TestFlight crashes and feedback for MyApp, grouped by signature and affected build.
|
|
```
|
|
|
|
### asc-wall-submit
|
|
|
|
Submit or update an app entry in the App-Store-Connect-CLI Wall of Apps using `asc apps wall submit`.
|
|
|
|
**Use when:**
|
|
- You want to add your app to the Wall of Apps
|
|
- You want to update an existing Wall entry
|
|
- You want the built-in CLI Wall submission flow
|
|
|
|
**Example:**
|
|
|
|
```bash
|
|
Submit app 1234567890 to the Wall of Apps using the built-in asc apps wall submit flow.
|
|
```
|
|
|
|
## Usage
|
|
|
|
Skills are automatically available once installed. The agent will use them when relevant tasks are detected.
|
|
|
|
## Skill Structure
|
|
|
|
Each skill contains:
|
|
- `SKILL.md` - Instructions for the agent
|
|
- `scripts/` - Helper scripts for automation (optional)
|
|
- `references/` - Supporting documentation (optional)
|
|
|
|
## License
|
|
|
|
MIT
|