Home / Blog / A Claude Code skill that takes an iOS app from code to the…
Tech News

A Claude Code skill that takes an iOS app from code to the App Store

App Store kit is a Claude Code skill that takes an iPhone or iPad app from code to the App Store and stops only where Apple needs the account holder.

By Dillip Chowdary • Oct 16, 2026 • Source: github.com

A Claude Code skill that takes an iOS app from code to the App Store

The section paragraphs are in range, but the piece is still long. I'll shorten repeated lines and keep every name from the README.App Store kit is a skill for Claude Code that takes an iPhone or iPad app from code to the App Store and keeps it updated, according to github.com's report. The developer says one sentence. The skill does the rest and stops only where Apple needs the account holder. "Put my app on the App Store" checks the code against Apple's current review rules, writes the product page, makes screenshots, uploads the build, fills App Store Connect, submits, and releases. The repo is allexp1/app-store-kit, the license is MIT, and Claude follows SKILL.md.

This piece is for a developer with an iPhone or iPad app in Claude Code. It covers the spoken jobs, the campaign scripts, the App Store Connect API, the Chrome steps, the install, and the API key.

What shipped in A Claude Code skill that takes an iOS app

"Ship an update" drafts What's New from git history, raises the version, uploads the build, creates the new version, and updates every language. "Add German and Japanese" adapts the store texts per language, not word-for-word, makes localized screenshots, and places them. "What's the status?" reads the App Store Connect account and answers in plain words. "Market it" covers custom product pages, A/B tests of the product page, and in-app events. "Is it working?" downloads Apple's analytics and shows which page converts, and what to test next.

"Apple rejected my app" maps each cited guideline to a fix and drafts the reply the developer sends. "Answer the reviews" reports themes and crashes, drafts replies, and sends only approved ones. "Add subscriptions", "run a beta", and "change the price" cover subscriptions, external TestFlight with feedback triage, prices per country, and pre-orders. precheck.py checks code against Apple's rules. asc_api.py and asc_sync.py cover status, plan, apply, submit, and release. locales.py, whats_new.py, and release.py cover languages, update notes, the version bump, archive, and upload. render.py and capture.sh take screenshots.

What improved in A Claude Code skill that takes an iOS app

Beyond caption templates, the kit art-directs screenshots from the app's real screens: panoramas across panels, 3D phones crossing the seams, editorial type, a dark spread, and UI cards lifted out of the phone. Lines include "Make six premium App Store screenshots for this app" and "Make a panoramic six-screen campaign: floating iPhones, editorial type, cinematic light." A redesign keeps the real UI and branding and shows six concepts first. English, Hebrew and Russian versions follow the chosen campaign. Reference images are the quality bar and are not copied. Notes sit in references/creative-director.md.

Required input is the app's screenshots. Optional inputs are the icon for the palette, brand colours, font files, reference images read for technique and never copied, and background art with its source and licence. campaign.py concepts renders six directions as one contact sheet, each a full low-res panorama with rationale, type, and palette. The developer picks one, combines two, or asks for others. Copy is one benefit per panel. Numbers, rankings, ratings, and awards need a source, or the check fails. Prices, URLs, and Apple badges are refused.

ItemBeforeAfter
ScreenshotsCaption templates6 panels from the app's real screens
Concepts6 concepts shown first6 directions on 1 contact sheet
CopyNo source on a numberCheck fails; 1 benefit per panel
Prices and badgesPrices, URLs, Apple badgesRefused
EnginesCaption templates14, including big type, before/after, glass, and sticker pop
PhonesNot ray-tracedCSS 3D

What you gain from A Claude Code skill that takes an iOS app

A Claude Code skill that takes an iOS app from code to the App Store
Illustration · Pexels

One master image, rendered in headless Chromium, is cut to exact App Store sizes in RGB. The QA report covers text across seams, safe areas, legibility at search-result size, contrast, and missing glyphs. The same file always gives the same bytes. Hebrew and Arabic mirror the whole scene and start from the right. render --install KIT puts the panels where the kit uploads them, after a yes. campaign.py canvas makes an editable Claude Design canvas. Fourteen composition engines include big type, before/after, glass, and sticker pop.

Accent words use a pill, ring, swash, selection box, or serif italic, with feature chips and stat callouts that refuse to render without a source. Overwrite the files under screens: and the layout and copy stay. A new engine is one decorated function in scripts/studio/engines.py. Ridgeline, a made-up hiking app with synthetic screens, is in examples/sample-campaign/. The contact sheet and the en, he, and ru sets are in examples/sample-campaign/preview/ on GitHub. The App Store Connect API covers texts in every language, screenshots and previews, age rating, accessibility, review details, the build, submit, release, and phased release.

Advertisement

Tech Pulse Daily

Get tomorrow's pulse first

Join engineers who read Tech Pulse before stand-up. Free, weekday mornings.

How to get A Claude Code skill that takes an iOS app

Chrome opens the screens the API cannot reach, including App Privacy and creating the app record. Install, then restart Claude Code. The documented starts are npx app-store-kit, npx skills add allexp1/app-store-kit, and ./install.sh from a clone. Scripts need Python 3.10+. Rendering needs a Chromium once, via npx playwright install chromium-headless-shell, then python3 -m pip install -r ~/.claude/skills/app-store-kit/requirements.txt. tests/ runs ./test.sh offline, without keys. After the restart, Claude follows SKILL.md. growth.py and asc_reports.py measure marketing. The kit waits for a yes before upload, submit, or release.

The skill asks before it uses a key, once per session. Create the key under App Store Connect, Users and Access, Integrations, App Store Connect API, Team Keys, Generate, with the role App Manager. Download the .p8 file to ~/.appstoreconnect/private_keys/. The kit stores only the Key ID and the Issuer ID. It never opens, prints, or commits the key file. The sample builds with python3 examples/sample-campaign/make_screens.py, which makes synthetic screens not shipped on npm, then python3 scripts/campaign.py concepts examples/sample-campaign/campaign.yaml and python3 scripts/campaign.py render examples/sample-campaign/campaign.yaml.

Command
npx app-store-kit
Command
npx skills add allexp1/app-store-kit
Command
./install.sh
Command
python3 -m pip install -r ~/.claude/skills/app-store-kit/requirements.txt
Command
npx playwright install chromium-headless-shell
Command
python3 examples/sample-campaign/make_screens.py
# makes the synthetic screens (not shipped on npm)
python3 scripts/campaign.py concepts examples/sample-campaign/campaign.yaml
python3 scripts/campaign.py render examples/sample-campaign/campaign.yaml
Command
render --install KIT
Command
./test.sh

What to watch after A Claude Code skill that takes an iOS app

Phones are CSS 3D, not ray-traced. Photographed hands appear only if the developer supplies the art. Fonts download once from Google Fonts under open licences, or from the developer's files. status_board.py writes STATUS.md. lint_metadata.py, validate_kit.py, preview_check.py, and connect_guide.py are the checks and a hand-typing guide. references/ holds Apple's specs, review guidelines, App Store Connect fields, the API, privacy labels, and copywriting. rejection.py and reviews.py cover ratings and approval-gated replies. subscriptions.py, testflight.py, and pricing.py cover prices and availability. campaign.py and studio/ build the campaigns.

The account holder signs in and handles agreements, tax, banking, and EU trader status. The skill opens the exact page, outlines the button, and waits for "done". It never presses Agree. Nothing reaches Apple without a yes. A plan is used once, only for the files and account state it saw. connect-plan.md shows that page of planned changes first. Upload, submit, and release each ask again. STATUS.md uses ✅ done, ✋ your turn, 🛑 needs your yes, and ⬜ to do. A live run writes App Store Connect changes to .living/CHANGELOG.md. The references cite Apple's pages with dates.

Developer Action Items

  • ☐ Map where Claude / Apple / GitHub sits in your stack (SDK, API key, billing, data-processing addendum).
  • ☐ Hold non-urgent migrations until the integration or use-of-proceeds roadmap is public — day-one coverage is not a ship signal.
  • ☐ If you are mid-contract or mid-POC, ask the vendor what changes for existing customers this quarter.
  • ☐ Write the single decision this forces: stay, dual-source, or exit.

A Claude Code skill that takes an iOS app FAQ

How do I install App Store kit for Claude Code?

Run npx app-store-kit, or npx skills add allexp1/app-store-kit, or ./install.sh from a clone, then restart Claude Code. Scripts need Python 3.10+. Rendering needs npx playwright install chromium-headless-shell once, then python3 -m pip install -r ~/.claude/skills/app-store-kit/requirements.txt.

What does "Put my app on the App Store" do?

It checks the code against Apple's current review rules, writes the product page, makes screenshots, uploads the build, fills App Store Connect, submits, and releases. Upload, submit, and release each ask again. Nothing reaches Apple without a yes.

Does the skill press Agree on Apple's agreements?

It opens the exact page, outlines the button, and waits until the account holder says "done". It never presses Agree. Signing in, agreements, tax, banking, and EU trader status stay with the account holder.

Where does the App Store Connect API key live?

Generate a Team Key with the role App Manager under Users and Access, Integrations, App Store Connect API, then put the .p8 file in ~/.appstoreconnect/private_keys/. The kit stores only the Key ID and Issuer ID, asks before use once per session, and never opens, prints, or commits the key file.

How many screenshot concepts does campaign.py render?

campaign.py concepts renders six directions as one contact sheet. The developer picks one, combines two, or asks for others. Hebrew and Arabic mirror the whole scene and start from the right. The same file always gives the same bytes.

Sources

Dillip Chowdary

Author

Dillip Chowdary

Writes Tech Bytes coverage of AI, engineering, and the tools that actually ship. Editor of Tech Pulse Daily.

Related on Tech Bytes

Advertisement

5-min tech signal

Weekday briefing for engineers who skip the noise.

No spam · Unsubscribe anytime

Advertisement

✈️ CareerPilot

Your AI job-search copilot

Match your resume against live Ashby, Greenhouse & Lever openings — fit scores, job-specific resume optimization and email alerts.

Find matching jobs →

Free Tools

Browse all tools →