Claude Agent Skill · by Rudrankriyam

Asc Subscription Localization

Install Asc Subscription Localization skill for Claude Code from rudrankriyam/app-store-connect-cli-skills.

Install
Terminal · npx
$npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-subscription-localization
Works with Paperclip

How Asc Subscription Localization fits into a Paperclip company.

Asc Subscription Localization drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

E
E-Commerce EmpirePaired

Pre-configured AI company — 20 agents, 9 skills, one-time purchase.

$59$89
Explore pack
Source file
SKILL.md240 lines
Expand
---name: asc-subscription-localizationdescription: Bulk-localize subscription and in-app purchase display names across all App Store locales using asc. Use when you want to fill in subscription/IAP names for every language without clicking through App Store Connect manually.--- # asc subscription localization Use this skill to bulk-create or bulk-update display names (and descriptions) for subscriptions, subscription groups, and in-app purchases across all App Store Connect locales. This eliminates the tedious manual process of clicking through each language in App Store Connect to set the same display name. ## Preconditions- Auth configured (`asc auth login` or `ASC_*` env vars).- Know your app ID (`ASC_APP_ID` or `--app`).- Subscription groups and subscriptions already exist. ## Supported App Store Locales These are the locales supported by App Store Connect for subscription and IAP localizations: ```ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US,es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it,ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk,sv, th, tr, uk, vi, zh-Hans, zh-Hant``` ## Workflow: Bulk-Localize a Subscription ### 1. Resolve IDs ```bash# Find subscription groupsasc subscriptions groups list --app "APP_ID" --output table # Find subscriptions within a groupasc subscriptions list --group-id "GROUP_ID" --output table``` ### 2. Check existing localizations ```bashasc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table``` This shows which locales already have a name set. Only create localizations for missing locales. ### 3. Create localizations for all missing locales For each locale that does not already have a localization, run: ```bashasc subscriptions localizations create \  --subscription-id "SUB_ID" \  --locale "LOCALE" \  --name "Display Name"``` For example, to set "Monthly Pro" across all locales: ```bash# One command per locale (skip any that already exist)asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ar-SA" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ca" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "cs" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "da" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "de-DE" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "el" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-AU" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-CA" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "en-GB" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-ES" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "es-MX" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fi" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-CA" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "fr-FR" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "he" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hi" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hr" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "hu" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "id" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "it" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ja" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ko" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ms" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "nl-NL" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "no" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pl" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-BR" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "pt-PT" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ro" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "ru" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sk" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "sv" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "th" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "tr" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "uk" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "vi" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hans" --name "Monthly Pro"asc subscriptions localizations create --subscription-id "SUB_ID" --locale "zh-Hant" --name "Monthly Pro"``` ### 4. Verify ```bashasc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output table``` ## Workflow: Bulk-Localize a Subscription Group Subscription groups also have their own display name per locale (this is the "group name" shown to users in the subscription management sheet). ### 1. Check existing group localizations ```bashasc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table``` ### 2. Create for missing locales ```bashasc subscriptions groups localizations create \  --group-id "GROUP_ID" \  --locale "LOCALE" \  --name "Group Display Name"``` Optional: set a custom app name for the group: ```bashasc subscriptions groups localizations create \  --group-id "GROUP_ID" \  --locale "LOCALE" \  --name "Group Display Name" \  --custom-app-name "My App"``` ### 3. Verify ```bashasc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output table``` ## Workflow: Bulk-Localize an In-App Purchase IAPs have their own localization commands with the same pattern. ### 1. Resolve IAP ID ```bashasc iap list --app "APP_ID" --output table``` ### 2. Check existing localizations ```bashasc iap localizations list --iap-id "IAP_ID" --paginate --output table``` ### 3. Create for missing locales ```bashasc iap localizations create \  --iap-id "IAP_ID" \  --locale "LOCALE" \  --name "Display Name"``` Optional description: ```bashasc iap localizations create \  --iap-id "IAP_ID" \  --locale "LOCALE" \  --name "Unlock All Features" \  --description "One-time purchase to unlock all premium features"``` ### 4. Verify ```bashasc iap localizations list --iap-id "IAP_ID" --paginate --output table``` ## Updating Existing Localizations To change the display name for existing localizations: ### Subscriptions```bashasc subscriptions localizations update --id "LOC_ID" --name "New Name"``` ### Subscription Groups```bashasc subscriptions groups localizations update --id "LOC_ID" --name "New Group Name"``` ### In-App Purchases```bashasc iap localizations update --localization-id "LOC_ID" --name "New Name"``` To bulk-update, list existing localizations first, extract the IDs, then update each one. ## Bulk-Localize All Subscriptions in an App For a full app with multiple subscription groups and subscriptions: ```bash# 1. List all groupsasc subscriptions groups list --app "APP_ID" --paginate # 2. For each group, localize the group itself#    (repeat group localization workflow above) # 3. For each group, list subscriptionsasc subscriptions list --group-id "GROUP_ID" --paginate # 4. For each subscription, localize it#    (repeat subscription localization workflow above)``` ## Agent Behavior - Always list existing localizations first to avoid duplicate creation errors.- Skip locales that already have a localization; only create missing ones.- When the user provides a single display name, use it for all locales (same name everywhere).- When the user provides translated names per locale, use the locale-specific name for each.- If a description is provided, pass `--description` on create. Otherwise omit it.- Use `--output table` for verification steps so the user can visually confirm.- Use default JSON output for intermediate automation steps.- After bulk creation, always run the list command to verify completeness.- For apps with many subscriptions, process them sequentially per group to keep output readable.- If a create call fails for a locale, log the locale and error, then continue with the remaining locales. After the batch completes, report all failures together so the user can address them. ## Notes- Subscription display names are what users see on the subscription management sheet and in purchase dialogs.- Creating a localization for a locale that already exists will fail; always check first.- There is no bulk API; each locale requires a separate create call.- Use `--paginate` on list commands to ensure all existing localizations are returned.- Use the `asc-id-resolver` skill if you only have app names instead of IDs.