Start with
shipit generate.
Start with shipit generate to build a real config from your project, reuse existing env values, and ship iOS or Android from the same workflow without leaking secrets into Shipfile.yml.
⚠️ Beta release. For feedback, bug reports, and feature requests, open an issue in GitHub Issues.
From zero to release automation
in four steps.
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"]
Everything you need to ship.
From local validation to App Store Connect and Google Play. No Ruby, no Fastfile, no fragile shell glue.
One CLI, two stores
Cross-platformBuild, test, archive, and distribute iOS and Android apps from the same Shipfile.yml whether you are targeting App Store Connect or Google Play.
Store delivery
AndroidUpload to TestFlight, App Store Connect, or Google Play with native clients, release tracks, metadata flows, and CI-friendly credentials.
Coverage & validation
Cross-platformRun lint, tests, coverage, and validation commands before shipping. ShipItSwifty reads native build outputs and keeps dry-runs machine-readable.
Code Signing
iOSEncrypted cert vault from a Git repo. Create certs and profiles via ASC API. CI-safe keychain management.
Guided setup
Cross-platformStart with shipit generate to infer config from Xcode, Gradle, or shared projects, then use ai-session when you want an agent-ready JSON hand-off.
Composable Workflows
Define reusable step sequences in Shipfile.yml. Parameterized custom actions, plugins, KMP projects, and framework-aware builds all fit the same workflow model.
match→shipit sign syncgym→shipit archive + exportpilot→shipit testflightdeliver→shipit metadata + uploadTell your agent
what to ship.
shipit ai-session generates a machine-readable context dump — shipit documentation, available commands, and your project details — so any coding agent can understand the tool and generate a correct Shipfile.yml without guessing.
shipit ai-session generates a machine-readable snapshot: your project structure, available shipit commands, and documentation - everything an AI agent needs to understand your setup.
Paste the JSON into your coding agent's prompt. The agent learns about shipit, analyzes your project context, and generates a Shipfile.yml tailored to your app.
If anything is ambiguous - signing identity, TestFlight group, andexport method - the agent asks for clarification before proceeding.
Run shipit ai-session --output json and usethe output as context to understand my projectand the shipit tool. Then generate a Shipfile.ymlfor my app. Ask me for clarification if anythingis ambiguous or missing.
docsFull shipit command documentation and usagecommandsAll available shipit commands and their flagsprojectDetected project structure and targetscontextEnvironment details the agent needs to knowUp and running in minutes.
Install the binary, generate a config, and run your first workflow. No Gemfile. No Bundler. No Ruby.
ShipItSwifty runs iOS workflows on macOS and Android workflows on macOS or Linux. Store credentials are only required for upload flows, so local builds and tests can start much earlier.
ShipItSwifty is a single static binary with no runtime dependencies. Pick whichever install method suits your workflow.
A Homebrew tap is on its way. Until then, building from source is quick and gives you the same binary.
# The Homebrew tap is being prepared.# In the meantime, build from source — it takes under a minute.
Instead of writing YAML by hand, let ShipItSwifty inspect your Xcode project. It detects your scheme, bundle ID, and team — then writes a Shipfile.yml you can review and commit. It can also reuse existing env values or write a local .env for signing setup. This is the recommended starting point for every project.
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
Before running a build, confirm that Xcode, credentials, and provisioning profiles are wired up correctly. shipit env prints every resolved value, and shipit doctor checks for common issues like missing entitlements or expired certificates.
shipit envshipit doctor
Always dry-run first to see exactly what ShipItSwifty will do — which actions run, in what order, and with what options. Once you are satisfied, drop the flag and ship.
# Preview without executingshipit run beta --dry-run# Ship itshipit run beta --ci
Every command is non-interactive by default. Export credentials as environment variables and pass --ci to disable TTY prompts and enable structured logging.
# GitHub Actions- run: shipit run beta --cienv:ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}ASC_PRIVATE_KEY: ${{ secrets.ASC_PRIVATE_KEY }}
Your data never leaves your machine.
No third-party services. No AI calls baked in. No hidden network requests. ShipItSwifty is a local CLI — what happens on your machine stays on your machine.
Runs on your machine
ShipItSwifty is a native Swift CLI. Every build, archive, signing, and upload step executes locally on your Mac or Linux box — there is no cloud backend processing your project.
No LLM in the pipeline
The tool itself makes zero AI or LLM calls. shipit ai-session generates a context snapshot for your agent to use — ShipItSwifty never calls any model on your behalf.
Zero telemetry
No analytics, no crash reporting, no usage tracking. ShipItSwifty never phones home. Your project structure, credentials, and workflows stay on your machine.
shipit ai-session generates a machine-readable JSON snapshot of your project and shipit documentation. You paste that into your own AI agent — ShipItSwifty itself never calls any LLM or sends data to any third-party service.
Everything is documented.
Reference docs, guides, and CI playbooks — all in one place.
Android Quickstart
Generate config, run Gradle workflows, and ship to Google Play.
Read quickstart →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 via GitHub issues.
ShipItSwifty is ready to try, but we are still smoothing edges. Use it, ship with it, and open GitHub issues for bug reports, feedback, or missing features.