Skip to main contentSkip to navigation
  • Home
  • Books
  • Archive
  • Sponsor
© 2026 rudrankriyam. All rights reserved.

AiOS Dispatch

Join 1000+ iOS developers exploring Apple Intelligence, LLMs, and AI-powered development.

Subscribe to get the latest iOS AI development news and resources delivered to your inbox.

AiOS Dispatch

Join 1000+ iOS developers exploring Apple Intelligence, LLMs, and AI-powered development.

Subscribe to get the latest iOS AI development news and resources delivered to your inbox.
Back
Feb 11, 2026· 6 Min read

AiOS Dispatch 15

AiOS Dispatch 15

Sponsored
Exploring AI-Driven Coding

Exploring AI-Driven Coding

Explore the latest in AI-driven coding for iOS development.

Get the Book

Welcome to the edition 15 of AiOS Dispatch!

This one is different. It is about something I have been building for a while now: the App Store Connect CLI. I have not talked about it much here, but this week something happened that made me want to write this.

This edition was written by Claude Opus 4.6 Max in Cursor, based on the vision I gave for this post, and then edited by me.

Two Minutes to TestFlight

Thomas Ricouard, my French friend, the guy behind Ice Cubes and one of the most opinionated iOS developers I know, tried something this week. He gave Codex full access to my CLI and pointed it at his new iOS app, CodexMonitor.

He went from having nothing configured to having the app in TestFlight public beta review in under 2 minutes. The agent did it all by itself.

"Let me get this straight: I gave Codex full App Store Connect power with @rudrank ASC CLI. I went from having NOTHING configured to having an app in TestFlight public beta review in UNDER 2 minutes. The agent literally did everything itself. Insane. My mind is blown." — Thomas Ricouard (@Dimillian) Feb 9, 2026

Here is what the agent did on its own, without any human touching anything:

  • Confirmed the app record existed on App Store Connect
  • Verified the IPA upload was already present
  • Created an encryption compliance declaration (the thing that blocks every first TestFlight build)
  • Created a "Beta Testers" TestFlight group
  • Filled in the required beta review metadata
  • Submitted for external beta review

The submission state went straight to WAITING_FOR_REVIEW. All from a single prompt.

In a follow-up tweet, Thomas showed the full end-to-end flow: from app identifier creation to TestFlight distribution, all running through his agent. His words: "with ASC, you don't have to touch App Store Connect ever again."

I built this to save my own time when I am shipping for my client and my own apps. Watching someone else's AI agent use it autonomously to ship their app is a different kind of validation.


Why I Built ASC

App Store Connect website is slow. I have complained about the spinner since I got my Apple Developer account in 2019. I get logged out every time I blink. Every release is the same. Create a version, fill in What's New, wait for processing, add to a TestFlight group, submit for review. Clicking through the same web UI, over and over.

Fastlane exists, but it comes with Ruby, Bundler, a lot of plugin conflicts. I wanted something simpler — something where I can prompt my way to the App Store in the time it takes to set up Fastlane.

ASC is a single Go binary. It is heavily inspired by GitHub CLI. You install it with Homebrew, authenticate with your App Store Connect API once, and let your agent know about it. It will handle the rest.

brew tap rudrankriyam/tap
brew install rudrankriyam/tap/asc

My favourite command is the PPP pricing one. You can set territory-specific pricing based on purchasing power parity, so your app is not $9.99 in India the same way it is in the US. One command to adjust prices across regions:

asc subscriptions pricing --app "APP_ID"
asc subscriptions pricing --subscription-id "SUB_ID" --territory "USA"

It covers TestFlight groups and testers, subscriptions and in-app purchases, signing and certificates, analytics and sales reports, Xcode Cloud workflows, notarization, App Clips, and a whole lot more. If you can do it in the App Store Connect web UI, you can do it from your terminal.

I just released v0.26.2 with 59 releases and almost 800 stars on GitHub. 11 contributors and growing. It has been a wild ride, especially because most of the development was done with AI agents themselves. The irony is not lost on me.


Designed for Agents

Every command uses explicit, self-documenting flags with default JSON output for easy parsing. Clean exit codes for scripting if you want to integrate it into your CI/CD pipeline.

That is exactly what Thomas's Codex agent did. It called asc publish testflight --help, read the flags, understood the workflow, and shipped the app. No special integration. No plugins. No configuration files for the agent. Just a CLI that describes itself clearly enough for a machine to figure it out.

I also published a set of Agent Skills — instruction files that teach AI coding agents how to use ASC for specific workflows:

  • asc-xcode-build — Archive, export, and upload from xcodebuild
  • asc-release-flow — End-to-end TestFlight and App Store release workflows
  • asc-signing-setup — Bundle IDs, certificates, provisioning profiles
  • asc-testflight-orchestration — Beta groups, testers, What to Test notes
  • asc-metadata-sync — Localizations and Fastlane format migration
  • asc-submission-health — Preflight checks and review monitoring
  • asc-notarization — Developer ID signing and notarization for macOS apps

Drop these into Cursor, Claude Code, or Codex, and the agent already knows how to ship your app. The skills are there for when you want the agent to handle complex multi-step flows without you having to explain anything.


Getting Started

If you want to try it out, here is the quick setup:

brew tap rudrankriyam/tap
brew install rudrankriyam/tap/asc
 
asc auth login \
  --name "MyApp" \
  --key-id "YOUR_KEY_ID" \
  --issuer-id "YOUR_ISSUER_ID" \
  --private-key ./AuthKey.p8
 
asc apps --output table

That last command lists all your apps in a nice table format. If you see them in your terminal, you are good to go. You can also use environment variables (ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH) for CI/CD setups.

Generate your API key at App Store Connect if you do not have one yet. One of the times you have to open the website, sigh.


What's Next

I am working on "private" endpoints like App Store rejections and going through unresolved issues.

The goal is simple: you should not have to open App Store Connect for anything that can be a terminal command. And with AI agents getting better every week, that terminal command does not even have to be typed by you.

Contributions are welcome. Issues are welcome. And if your AI agent ships an app with ASC, create a pull request to have it added to the "Wall of Apps" that use ASC!

Until next time, keep shipping and building!

Books

Cover of Exploring On-Device AI for Apple Platforms Development
(opens in new tab)
Cover of Exploring AI-Assisted Coding for iOS Development
(opens in new tab)
Cover of Exploring Foundation Models
(opens in new tab)
Cover of Exploring MLX Swift
(opens in new tab)
Cover of Exploring Freelancing for iOS Development
(opens in new tab)
Cover of Exploring Technical Writing
(opens in new tab)
Cover of Exploring MusicKit & Apple Music API
(opens in new tab)