Tech 8 min read

macOS app "Blitz" that lets AI agents handle everything from building iOS apps to submitting them to the App Store

IkesanContents

Blitz, whose catchphrase is “Skip Xcode. Ship with AI.”, is a native macOS app that allows you to entrust the entire iOS development lifecycle to an AI agent. Starting and operating the simulator, CRUDing the database, managing screenshots, and submitting to App Store Connect can be executed all at once from Claude Code.

The repository is blitzdotdev/blitz-mac. It is open source under the Apache 2.0 license and released on March 10, 2026. As of March 23rd, Star 781, v1.0.29 has been released. The pace of development is extremely fast.

what can you do

The core of Blitz is the MCP server. Send instructions to Blitz via JSON-RPC from Claude Code (and other MCP clients) to automate every step of iOS development through over 35 tools.

graph LR
    A[Claude Code] -->|stdio| B[MCP Bridge Script]
    B -->|HTTP JSON-RPC| C[Blitz MCPサーバー<br/>localhost only]
    C --> D[シミュレータ管理]
    C --> E[デバイス操作]
    C --> F[DB操作]
    C --> G[App Store Connect]
    C --> H[ビルド・テスト]

This is the main functional category.

CategoryContents
Simulator managementStartup/shutdown/list acquisition. A wrapper for xcrun simctl, but AI can directly hit it
Device operationTouch, swipe, and screenshot capture via iDB for the simulator and WebDriverAgent for the actual device
Screen captureCapture the Simulator.app window with ScreenCaptureKit and render it with Metal
Database operationsConnection to Teenybase DB, schema viewing, CRUD operations
App Store ConnectManage app information, upload screenshots, submit reviews, and get rejection feedback
Project setupInitial construction of Blitz, React Native, Swift, and Flutter projects

MCP server architecture

Blitz’s MCP server is implemented as a Swift actor. Start an HTTP server with a dynamic port on the local host and write the port number to ~/.blitz/mcp-port. Claude Code side connects with stdio via the bridge script (~/.blitz/blitz-mcp-bridge.sh).

As a mechanism to ensure safety, tools are classified into read-only and mutating. Read-only tools (get list, check status, etc.) run immediately, but mutating tools (run build, submit to App Store, etc.) ask for approval in a macOS native alert dialog. The ApprovalRequest model has a ToolCategory enumeration type, and the necessity of approval is defined for each tool.

graph TD
    A[MCPToolRegistry<br/>ツール定義 35種以上] --> B[MCPToolExecutor]
    B --> C{ToolCategory}
    C -->|read-only| D[即座に実行]
    C -->|mutating| E[ApprovalRequest生成]
    E --> F[macOSアラート表示]
    F -->|承認| G[実行]
    F -->|拒否| H[エラー返却]

Two systems of device operation

When the AI ​​operates the app’s UI (tap, swipe, check screen status, etc.), the path is different depending on whether the target is a simulator or a real device.

TargetOperation toolMechanism
SimulatoriDB (idb CLI)iOS automation tool developed by Facebook. Allows higher level UI operations than simctl
Actual machineWebDriverAgentDerived from Appium project. Start an HTTP server (port 8100) on the device and accept UI operations using REST API

DeviceInteractionService provides a uniform interface as a Swift actor and internally dispatches to iDB or WDA clients.

App Store Connect Automation

Since v1.0.25, collaboration with App Store Connect has started in earnest. There are many things you can do.

  • Creating/editing app information
  • Bundle ID settings/guidance
  • Manage and upload screenshots by track (screenshots_add_asset, screenshots_set_track, screenshots_save)
  • Pricing
  • In-app billing/subscription management (pagination supported, 200 items/page)
  • Review submission
  • Get rejection feedback (get_rejection_feedback)
  • Timeline display of submission history

v1.0.26 added the ability to automatically deploy 21 App Store Connect operations as Claude Code skills to the project’s .claude/skills/. asc If CLI is not installed, it will be installed automatically.

v1.0.24 also supports Mac App, making it possible to import, create, and upload macOS apps to the App Store.

Security and privacy

It claims a design that does not transmit any telemetry or analysis.

  • Network requests are limited to Apple’s App Store Connect API and GitHub’s release confirmation API.
  • MCP server binds to 127.0.0.1 and is not exposed to external networks
  • No access to contact information, photos, location information, etc. Screen capture limited to simulator window

A means of verifying release binaries is also provided. SHA256SUMS.txt is included in the GitHub release and can be verified with shasum -a 256 -c SHA256SUMS.txt. There is also scripts/verify-build.sh that builds from source and compares it. The CI build workflow is also publicly available.

Build and deployment

Requires macOS 14 or later, Xcode 16 or later, Node.js 18 or later. It’s a single-target SwiftUI app configured with Swift Package Manager and doesn’t use an Xcode project file.

# クローンしてビルド
git clone https://github.com/blitzdotdev/blitz-mac.git
cd blitz-mac
swift build -c release

# .appとしてバンドル
bash scripts/bundle.sh release
open .build/Blitz.app

The pkg installer is also distributed in the official release, and you can download Blitz-1.0.29.pkg and install it by double-clicking. An x86_64 build for Intel Macs is also available. If the app is already installed, it will be updated automatically within the app.

What’s going on on the Android/Google Play side?

While Blitz is making it possible to “entrust the entire iOS development lifecycle to AI,” there is currently no equivalent tool on the Android side.

As I previously tried in Automating emulator testing with Android MCP server, you can operate the emulator and take screenshots via MCP. You can also build and install via ADB directly from Claude Code. However, these are just a combination of separate CLI tools, and one application does not integrate all processes as an MCP server like Blitz.

Automation around Google Play Console is particularly weak

In the past, this blog has written several articles about implementations related to Google Play. Receipt verification API via service account, Billing implementation from Flutter WebView, Adjust management screen and Play Console developer registration concurrent setup, List of console key files required for Flutter apps There are many manual settings steps that involve going back and forth between multiple management screens such as Google Cloud Console, Google Play Console, and Firebase Console.

Seeing how Blitz makes App Store Connect operations all in one go via MCP, I would like to see the same thing on the Google Play Console side. Create a service account, grant permissions in the Play Console, register paid items, AAB upload to the test track, and set up a gradual rollout. Currently, these tasks are performed every time using the browser’s GUI.

Here’s a comparison of Blitz’s coverage with existing Android deployment automation tools.

ProcessiOS (Blitz)Android (existing tools)
Emulator/simulator operationCompleted via MCPAndroid MCP server + ADB
BuildCalling Xcode CLI from MCPGradle CLI (directly from Claude Code)
Store metadata managementApp Store Connect API integratedPossible with fastlane supply but no MCP integration
Screenshot managementSupports uploading by trackCan be obtained with fastlane screengrab
Store submissionUp to screening submission and rejection confirmationUploading with fastlane supply
Paid item managementOperation with App Store Connect APIPossible via Play Developer API, but manual setup is required
UI automatic operationiDB + WebDriverAgentAndroid MCP server (via ADB)

Fastlane is a tool that has been used for many years to automate Android deployments, allowing AAB uploads to the Google Play Console and gradual rollouts using the supply action. However, since fastlane itself is not an MCP server, it is not suitable for use in which an AI agent instructs the user to take a screenshot, upload it to the store, update the metadata, and submit it for review in natural language.

Google Play Developer API has room to become an MCP server

Google Play Developer API v3 is a REST API and has the following endpoints.

APIOperation details
Publishing APIUpload APK/AAB, edit listing information, track management (internal test, closed test, open test, production)
Subscriptions and In-App Products APICreating, updating, and pricing billing items
Reviews APIGet and reply to user reviews
Reporting APIDownload installs, crashes, and revenue reports

Authentication is OAuth 2.0 via service account. The same service account you set up in Receipt Verification API article can also access the Publishing API (provided you grant the appropriate permissions in the Play Console). In other words, from an API perspective, it is technically possible to do the same thing as Blitz’s App Store Connect integration, but no one has yet created a tool that packages it as an MCP server.

Now that Blitz is solidifying its iOS side with a pace of 29 releases in two weeks, I’m curious to see if an Android version of Blitz-like tools (or Blitz itself compatible with Android) will be released. Flutter project setups are already supported by Blitz, so there are preparations for cross-platform support.