English | 中文
A Claude Code skill for managing Apple App Store Connect via API. Read and update app metadata, upload screenshots, manage versions, and auto-fill Connect metadata by analyzing your iOS codebase — all from your terminal.
- Zero dependencies — Uses Node.js built-in
cryptofor ES256 JWT authentication - Full metadata management — App name, description, keywords, promotional text, screenshots, age rating, review info
- Multi-language support — Create and update localizations for any locale
- Screenshot upload — Handles the 3-step reserve → upload → commit flow automatically
- iOS project analysis — Auto-infer Connect metadata from your Xcode project (permissions, privacy labels, app info)
- Raw API access — Escape hatch for any App Store Connect API endpoint
# Personal (available across all projects)
cp -r appstore-connect ~/.claude/skills/
# Or project-level (only for current project)
cp -r appstore-connect .claude/skills/Then restart Claude Code. The skill will automatically trigger when you discuss App Store Connect topics.
The scripts/asc-api.js script works independently without Claude Code:
node scripts/asc-api.js --help- Go to App Store Connect → Users and Access → Integrations → App Store Connect API
- Click Generate API Key
- Name: anything you like (e.g.,
Claude Code) - Role: App Manager
- Download the
.p8private key file (you can only download it once!) - Note the Issuer ID (top of the page) and Key ID (in the key row)
mkdir -p ~/.appstoreconnect
mv ~/Downloads/AuthKey_XXXXXXXX.p8 ~/.appstoreconnect/Add to ~/.zshrc or ~/.bashrc:
export ASC_ISSUER_ID="your-issuer-id" # UUID from step 1
export ASC_KEY_ID="your-key-id" # e.g., NYR7JGJMM5
export ASC_PRIVATE_KEY_PATH="~/.appstoreconnect/AuthKey_XXXXXXXX.p8"source ~/.zshrc
node ~/.claude/skills/appstore-connect/scripts/asc-api.js test-authJust talk naturally:
> Help me update my App Store description
> Prepare my app for submission
> Analyze my iOS project and fill in Connect metadata
> Upload these screenshots to App Store Connect
Or invoke directly:
> /appstore-connect
# List all apps
node scripts/asc-api.js list-apps
# Get versions
node scripts/asc-api.js get-versions <appId>
# Update description and keywords
node scripts/asc-api.js update-localization <locId> \
--description="My app does amazing things" \
--keywords="amazing,app,cool"
# Upload a screenshot
node scripts/asc-api.js upload-screenshot <setId> ~/screenshots/home.png
# Complex update with JSON file
echo '{"data":{"type":"appStoreVersionLocalizations","id":"abc","attributes":{"description":"..."}}}' > /tmp/body.json
node scripts/asc-api.js raw PATCH /v1/appStoreVersionLocalizations/abc @/tmp/body.jsonRun node scripts/asc-api.js --help for the full command reference.
appstore-connect/
├── SKILL.md # Skill definition (triggers + workflows)
├── README.md # English documentation
├── README_CN.md # Chinese documentation
├── LICENSE # MIT License
├── scripts/
│ └── asc-api.js # CLI tool (JWT auth + 20+ API commands)
└── references/
├── api-endpoints.md # API endpoint quick reference
└── privacy-mapping.md # iOS permission → privacy label mapping
- Node.js 18+ (for built-in
fetch) - App Store Connect API Key with App Manager role
| Field | Max Length |
|---|---|
| Keywords | 100 characters |
| Subtitle | 30 characters |
| Promotional Text | 170 characters |
| Description | 4,000 characters |
| What's New | 4,000 characters |
| Review Notes | 4,000 characters |
- ASO Pro Max — A Claude Code skill for professional App Store Optimization. Audit, optimize, and expand your App Store metadata for maximum search visibility. Works great with this skill for automated ASO workflows.
MIT