vibe-aso README

The project's README from github.com/Kronop/vibe-aso. As one markdown file: README.md.

Vibe ASO — a Claude Code skill

You vibe-coded the app. Now vibe the ASO.

One skill that takes an iOS app from "ready to submit" to a fully-optimized, fully-localized App Store presence — driven from Claude Code, end to end:

  1. Keyword research — popularity/difficulty-driven, intent-matched, per market. Decides what your name, subtitle, and keyword field say.
  2. Store metadata in up to 50 locales — keyword-led name and subtitle, adapted (never invented) keyword fields, descriptions that translate by meaning. Reviewed by automated checks, not vibes.
  3. Localized screenshots — your background mockups + translated headings burned in by a bundled renderer (Playwright + per-script Noto fonts, RTL handled, auto-fit). No mockups yet? Start from the free Figma template.
  4. Worldwide pricing — pick a model (uniform, GNI bands, Big Mac index, Netflix index) and it's applied per territory via the App Store Connect API, with read-back verification.
  5. In-app localization — your actual UI strings, translated with a detector suite that catches the bugs fluent output hides (format-specifier drift, wrong-sense domain words, script contamination, register drift).
  6. Submission checklist — every field the ASC API can set gets set and verified; everything it can't becomes an explicit manual-steps list instead of a silent gap.

No signup, no SaaS — you bring your own App Store Connect API key, and translations run on Claude subagents by default (or your own DeepSeek / OpenAI-compatible key if you prefer).

Install

Run these two commands in Claude Code one at a time — wait for the first to succeed before pasting the second.

Step 1 — register the marketplace:

/plugin marketplace add Kronop/vibe-aso

Step 2 — install the plugin:

/plugin install vibe-aso@vibe-aso-marketplace

If the install summary says Plugin is now active. you're done; if it says Run /reload-plugins to activate., run that (or restart Claude Code).

Or clone directly (no plugin manager):

git clone https://github.com/Kronop/vibe-aso /tmp/vibe-aso
cp -R /tmp/vibe-aso/skills/vibe-aso ~/.claude/skills/vibe-aso

Use

Open Claude Code in your app's repo and say what you want:

do the ASO for my app

…or any slice of it: "find keywords for my calorie tracker", "localize my App Store page", "localize my screenshots", "set worldwide prices", "localize the app itself", "get my listing ready for submission". Claude loads the skill on its own from the description.

First run walks you through a short setup wizard:

Screenshot mockups — free Figma template

Don't have App Store screenshot designs? Duplicate the vibe-ASO mockups template (free Figma account is enough):

  1. Paste your app screenshots over the "Your screenshot here" placeholders (iPhone, iPad, Apple Watch frames included).
  2. Pick your background colors; leave the top band empty — the renderer burns the localized heading there.
  3. Export each frame as PNG named iphone_1..N.png / ipad_1..N.png into your project folder, and the screenshots phase takes it from there.

Requirements

Nothing up front — each phase checks its own prerequisites (scripts/check_setup.sh prints exactly what's missing and the fix command), and you only need the tools for the phases you actually use:

You want You need
Keyword research nothing (an ASO data tool with popularity/difficulty makes it much stronger)
Metadata generation nothing
Metadata / screenshot upload fastlane ≥ 2.234.0 (brew install fastlane)
Screenshot rendering node — one-time npm install, npx playwright install chromium, ~55 MB font download
Pricing + submission checklist ruby (ships with macOS)
In-app localization Xcode command-line tools — it rebuilds your app to verify translations

Assumes macOS, which is where iOS apps get built anyway. Upload goes through fastlane because it's the community standard — but the skill writes plain fastlane/metadata/<locale>/ layout files, so if you deliver with something else, everything up to the upload step still works as-is.

What it costs

Nothing beyond what you already pay: your Claude usage, and — only if you choose the DeepSeek engine — roughly $0.50 per app for a full ~400-string × 40-locale in-app cascade. The App Store Connect API is free.

Design principles

License

MIT. The renderer downloads Google Fonts (DM Sans, Noto Sans family) at setup time; those are OFL-licensed and not redistributed here.

vibe-aso (Kronop/vibe-aso)

pricing
Searching Database…

What is this?Vibe ASO is a Claude Code skill that takes an iOS app from 'ready to submit' to a fully localized App Store presence: keyword research, metadata in up to 50 locales, localized screenshots, worldwide pricing, and in-app string localization, all driven from inside Claude Code.
Is this a standalone app, or does it run inside Claude Code?It's a Claude Code skill/plugin, not a separate app. You install it as a plugin, then just tell Claude Code what you want in your app's repo; Claude loads the skill on its own based on your request.
What tools do I actually need to use it?Nothing up front — scripts/checksetup.sh checks each phase's prerequisites as you go. You'll need fastlane for metadata/screenshot upload, node plus Playwright (with a ~55MB font download) for screenshot rendering, ruby for pricing and the submission checklist, and Xcode command-line tools for in-app localization since it rebuilds your app to verify translations.
Do I need to sign up for a service, or hand over API keys to some SaaS?No — there's no signup and no SaaS. You bring your own App Store Connect API key, and translations run on Claude subagents by default, or your own DeepSeek/OpenAI-compatible key if you prefer.
Does this run on any OS, or specifically macOS?It assumes macOS, since that's where iOS apps get built anyway — screenshot rendering, pricing/submission, and in-app localization all rely on macOS-side tools like Xcode. Keyword research and metadata generation alone have no OS-specific requirement.
How is my App Store Connect API key stored?It's kept locally in ~/.vibe-aso/ with chmod 600 permissions — it's never committed to a repo and never printed to output.
How does the keyword research work?It's popularity/difficulty-driven and intent-matched per market, deciding what your app name, subtitle, and keyword field should say — ideally backed by an ASO data source like Astro's MCP, or an honest degraded mode without one.
How are localized screenshots actually produced?You supply background mockups (a free Figma template is provided for iPhone/iPad/Watch frames), export them as PNGs, and a bundled Playwright renderer burns in translated headings using per-script Noto fonts, handling RTL and auto-fit automatically.
What pricing models can it set across App Store territories?You pick uniform pricing, GNI income bands, the Big Mac index, or the Netflix index, and it applies the result per territory via the App Store Connect API, verifying every write with a read-back.
How does it catch bad translations in in-app localization?It rebuilds your app and runs a detector suite over roughly 400 strings across up to 40 locales, flagging issues like format-specifier drift, wrong-sense domain words, script contamination, and register drift that fluent-sounding output tends to hide.
Creator
Kronop
Size
<0.1 MB
Stars
451
Updated
CommitAug 12
Age
2mo
Commits · 90 Days