Tell your agent
what to ship.
ShipItSwifty is in public beta today. Start with shipit generate to build a real config from your project, then hand the repo to your agent to validate, dry-run, and ship the workflow.
Beta release. Use GitHub Issues for bug reports, feedback, and feature requests.
From zero to TestFlight
in four steps.
ShipItSwifty replaces a Ruby toolchain with a single Swift binary. One YAML file. One command.
Create a Shipfile.yml at the project root. Declare your app identifiers, signing, and workflow steps.
# Shipfile.ymlapp:bundle_id: com.example.myappscheme: MyAppapp_store_connect:key_id: ${ASC_KEY_ID}issuer_id: ${ASC_ISSUER_ID}key_path: ./asc.p8workflows:beta:- action: versionoptions: { bump: build }- action: archiveoptions: { export_method: app-store }- action: export- action: testflightoptions:groups: ["Internal QA"]
Up and running in minutes.
Install the binary, generate a config, and run your first workflow. No Gemfile. No Bundler. No Ruby.
Build the public 0.1.0 release from source, or audit every line before running it.
git clone https://github.com/ShipItSwifty/shipitswifty.gitcd shipitswiftygit checkout 0.1.0swift build -c release# Binary at .build/release/shipit
Run shipit generate to inspect your project and scaffold a Shipfile.yml in seconds. It walks through the missing answers, detects your scheme and bundle ID, and writes a reviewable config you can commit.
shipit generate# Or target a specific release flowshipit generate --goal beta# Machine-readable output for CI or agentsshipit generate --goal beta --non-interactive --output json
Check that Xcode, credentials, and profiles are all in order before running a build.
shipit envshipit doctor
Dry-run first to preview steps. Then run for real.
# Preview without executingshipit run beta --dry-run# Ship itshipit run beta --ci
Generate produces a stable, reviewable config. Edit it once if you need to, then commit it. Every CI run after that is just shipit run.
Every command is non-interactive by default. Export credentials as environment variables and set --ci to disable TTY prompts.
# GitHub Actions- run: shipit run beta --cienv:ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
Describe the goal.
Your agent ships the build.
shipit ai-session is the agent hand-off step after generation. It gives your coding agent a grounded, machine-readable snapshot of the resolved project so it can validate the setup and run the release workflow without guessing.
Start with shipit generate so the config is grounded in the real project and checked into source control before an agent takes over.
Run ai-session when you want a machine-readable view of the resolved project state, signing setup, and the exact next shipit command.
The agent runs the suggested commands, handles any questions, and iterates until your beta is in TestFlight. You just review the diff.
Run shipit generate --goal beta first.Then run shipit ai-session --goal beta --output jsonand use that result as the source of truth.Validate the setup and tell me the exactshipit command to run next.
schemeDetected app target with confidence scorebundle_idResolved from your project, not guessedsigningProfile expiry, cert validity, entitlementsnextActionThe exact shipit command to run nextwarningsGaps your agent should ask you aboutEverything you need to ship.
From first build to App Store submission. No Ruby, no Fastfile, no surprises.
Build & Archive
Compile with xcodebuild. Archive to .xcarchive, export your IPA, and move straight to distribution — one step, no shell scripts.
TestFlight & App Store
iOSUpload IPA, distribute to beta groups, push metadata, and submit for review — all automated.
Guided Setup
Start with shipit generate to scaffold Shipfile.yml from the real project, then use ai-session when you want an agent-ready JSON hand-off.
Code Signing
iOSEncrypted cert vault from a Git repo. Create certs and profiles via ASC API. CI-safe keychain management.
Composable Workflows
Define reusable step sequences in Shipfile.yml. Parameterized custom actions with cycle detection.
match→shipit sign syncgym→shipit archive + exportpilot→shipit testflightdeliver→shipit metadata + uploadEverything is documented.
Reference docs, guides, and CI playbooks — all in one place.
Configuration Reference
Full Shipfile.yml schema, all keys and defaults.
View reference →CI Setup Guide
GitHub Actions, Bitrise, and self-hosted runners.
Read guide →Migrating from fastlane
Lane-by-lane migration playbook with examples.
Start migration →Public beta, feedback welcome.
ShipItSwifty is ready to try, but we are still smoothing edges. Use it, ship with it, and send bug reports or missing-feature feedback through GitHub Issues.