
Asc Metadata Sync
- 2.5k installs
- 934 repo stars
- Updated July 21, 2026
- rudrankriyam/app-store-connect-cli-skills
asc-metadata-sync is a skill for App Store Connect metadata pull, validate, push, and keyword workflows via asc CLI.
About
asc metadata sync keeps App Store metadata aligned with App Store Connect using the canonical asc metadata workflow for app-info and version localization fields. Pull writes metadata/app-info locale JSON for name, subtitle, and privacy URLs plus metadata/version locale JSON for description, keywords, marketing URL, promotional text, support URL, and whatsNew. Validate runs before any remote write, with an optional subscription-app Terms of Use heuristic. Push and apply support dry-run previews before applying changes. Keyword-only workflows use metadata keywords diff, apply, import, and sync commands. Quick field updates use apps info edit with explicit version-id or version plus platform selectors. Lower-level asc localizations commands handle strings files when requested, and asc migrate supports legacy fastlane-format trees only. Character limits cover name thirty, subtitle thirty, keywords one hundred, and description four thousand characters.
- Canonical asc metadata pull, validate, and push workflow.
- Separate app-info and version localization JSON paths.
- Dry-run preview before remote metadata writes.
- Keyword-only diff, apply, import, and sync commands.
- Documented character limits for name, subtitle, and keywords.
Asc Metadata Sync by the numbers
- 2,550 all-time installs (skills.sh)
- +28 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #83 of 1,048 Mobile Development skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
asc-metadata-sync capabilities & compatibility
- Capabilities
- canonical metadata pull into json directory tree · pre push metadata validate with subscription heu · dry run and apply push for version and app info · keyword diff, apply, import, and sync workflows · legacy fastlane migrate export and import
- Use cases
- seo · marketing
- Pricing
- Free
What asc-metadata-sync says it does
asc metadata pull --app "APP_ID" --version "1.2.3"
Keywords | 100 comma-separated characters
npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-metadata-syncAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.5k |
|---|---|
| repo stars | ★ 934 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 21, 2026 |
| Repository | rudrankriyam/app-store-connect-cli-skills ↗ |
How do I sync and validate App Store metadata locally before pushing to App Store Connect?
Pull, validate, and push App Store Connect metadata with asc metadata pull, validate, and dry-run workflows.
Who is it for?
iOS developers managing App Store localizations and keywords with the asc CLI.
Skip if: Skip for Google Play metadata, binary uploads, or TestFlight build management only.
When should I use this skill?
User runs asc metadata pull, validate, push, keywords sync, or fastlane metadata migration.
What you get
Validated local metadata tree with dry-run verified push to App Store Connect.
- Synced App Store metadata
- Validated localization and keyword fields
Files
asc metadata sync
Use this skill to keep App Store metadata in sync with App Store Connect. Prefer the canonical asc metadata workflow for app-info and version localization fields. Use the lower-level asc localizations and asc migrate commands only when the user specifically needs .strings files or legacy fastlane-format metadata.
Current canonical workflow
1. Pull canonical metadata
asc metadata pull --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"If the app has multiple app-info records, resolve the app-info ID first and pass it explicitly:
asc apps info list --app "APP_ID" --output table
asc metadata pull --app "APP_ID" --app-info "APP_INFO_ID" --version "1.2.3" --platform IOS --dir "./metadata"2. Edit local files
Canonical files are written under:
metadata/app-info/<locale>.jsonfor app-level fields:name,subtitle,privacyPolicyUrl,privacyChoicesUrl,privacyPolicyTextmetadata/version/<version>/<locale>.jsonfor version fields:description,keywords,marketingUrl,promotionalText,supportUrl,whatsNew
Copyright is not a localization field. Manage it with:
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"3. Validate before upload
asc metadata validate --dir "./metadata" --output tableFor subscription apps, include the extra Terms of Use / EULA heuristic:
asc metadata validate --dir "./metadata" --subscription-app --output table4. Preview and apply
Run a dry run first:
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run --output tableApply after the plan looks correct:
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"Use asc metadata apply when the user wants the apply-named command shape for the same canonical files:
asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run
asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"Keyword-only workflow
Use this when only the version-localization keywords field should change:
asc metadata keywords diff --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
asc metadata keywords apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --confirmFor importing keyword research:
asc metadata keywords import --dir "./metadata" --version "1.2.3" --locale "en-US" --input "./keywords.csv"
asc metadata keywords sync --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --input "./keywords.csv"Quick field updates
For one-off version-localization edits, pass an explicit version selector. Use --version-id for deterministic updates when you already have it, or --version plus --platform when working from a version string.
asc apps info edit --app "APP_ID" --version-id "VERSION_ID" --locale "en-US" --whats-new "Bug fixes and improvements"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --description "Your app description here"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --keywords "keyword1,keyword2,keyword3"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --support-url "https://support.example.com"For app-info fields, prefer the post-create setup command:
asc app-setup info set --app "APP_ID" --primary-locale "en-US" --privacy-policy-url "https://example.com/privacy"
asc app-setup info set --app "APP_ID" --locale "en-US" --name "Your App Name" --subtitle "Your subtitle"Lower-level localization files
Use .strings files when the user specifically wants import/export files instead of canonical JSON:
asc localizations list --version "VERSION_ID" --output table
asc localizations download --version "VERSION_ID" --path "./localizations"
asc localizations upload --version "VERSION_ID" --path "./localizations" --dry-run
asc localizations upload --version "VERSION_ID" --path "./localizations"For app-info localizations:
asc apps info list --app "APP_ID" --output table
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --output table
asc localizations download --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations" --dry-run
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"Legacy fastlane metadata
Use this only for existing fastlane-format trees:
asc migrate export --app "APP_ID" --version-id "VERSION_ID" --output-dir "./fastlane"
asc migrate validate --fastlane-dir "./fastlane"
asc migrate import --app "APP_ID" --version-id "VERSION_ID" --fastlane-dir "./fastlane" --dry-run
asc migrate import --app "APP_ID" --version-id "VERSION_ID" --fastlane-dir "./fastlane"Character limits
| Field | Limit |
|---|---|
| Name | 30 |
| Subtitle | 30 |
| Keywords | 100 comma-separated characters |
| Description | 4000 |
| What's New | 4000 |
| Promotional Text | 170 |
Agent behavior
- Start with
asc metadata pullunless the user specifically asks for.stringsor fastlane metadata. - Always run
asc metadata validatebefore remote writes. - Preview remote changes with
--dry-runwhen the command supports it. - For quick edits, always pass
--version-idor--versionplus--platform; do not rely on ambiguous latest-version behavior. - Keep app-info fields and version fields separate.
- Use
--output tablefor human verification and JSON for automation.
Related skills
Forks & variants (3)
Asc Metadata Sync has 3 known copies in the catalog totaling 3.5k installs. They canonicalize to this original listing.
- rorkai - 2.2k installs
- rudrankriyam - 1.3k installs
- ehmo - 1 installs
How it compares
Use asc-metadata-sync for App Store Connect CLI metadata; use fastlane deliver skills only when the team has not adopted the asc canonical workflow.
FAQ
What runs before push?
Always asc metadata validate and a dry-run push or apply preview.
Where do keywords live?
In metadata/version version locale JSON under the keywords field.
When use localizations commands?
When the user specifically wants strings import export instead of canonical JSON.
Is Asc Metadata Sync safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.