asc-subscription-localization — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited asc-subscription-localization (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
asc auth login or ASC_* env vars).ASC_APP_ID or --app).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# Find subscription groups
asc subscriptions groups list --app "APP_ID" --output table
# Find subscriptions within a group
asc subscriptions list --group-id "GROUP_ID" --output tableasc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output tableThis shows which locales already have a name set. Only create localizations for missing locales.
For each locale that does not already have a localization, run:
asc subscriptions localizations create \
--subscription-id "SUB_ID" \
--locale "LOCALE" \
--name "Display Name"For example, to set "Monthly Pro" across all locales:
# 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"asc subscriptions localizations list --subscription-id "SUB_ID" --paginate --output tableSubscription groups also have their own display name per locale (this is the "group name" shown to users in the subscription management sheet).
asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output tableasc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name"Optional: set a custom app name for the group:
asc subscriptions groups localizations create \
--group-id "GROUP_ID" \
--locale "LOCALE" \
--name "Group Display Name" \
--custom-app-name "My App"asc subscriptions groups localizations list --group-id "GROUP_ID" --paginate --output tableIAPs have their own localization commands with the same pattern.
asc iap list --app "APP_ID" --output tableasc iap localizations list --iap-id "IAP_ID" --paginate --output tableasc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Display Name"Optional description:
asc iap localizations create \
--iap-id "IAP_ID" \
--locale "LOCALE" \
--name "Unlock All Features" \
--description "One-time purchase to unlock all premium features"asc iap localizations list --iap-id "IAP_ID" --paginate --output tableTo change the display name for existing localizations:
asc subscriptions localizations update --id "LOC_ID" --name "New Name"asc subscriptions groups localizations update --id "LOC_ID" --name "New Group Name"asc iap localizations update --localization-id "LOC_ID" --name "New Name"To bulk-update, list existing localizations first, extract the IDs, then update each one.
For a full app with multiple subscription groups and subscriptions:
# 1. List all groups
asc 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 subscriptions
asc subscriptions list --group-id "GROUP_ID" --paginate
# 4. For each subscription, localize it
# (repeat subscription localization workflow above)--description on create. Otherwise omit it.--output table for verification steps so the user can visually confirm.--paginate on list commands to ensure all existing localizations are returned.asc-id-resolver skill if you only have app names instead of IDs.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.