Shy Guy Studio

v0.2.4

Ship iOS apps
without the GUI.

One YAML config. One command. Build, upload metadata, submit for review. Free CLI — works with any Xcode project.

$ npm install -g @shyguy_studio/shipkit@0.2.4
$ shipkit init
$ shipkit ship
Terminal
$
App Store Connect

Generating config...

shipkit.yml

Prepare
Queue
Review
Approved
Live

One command. Full pipeline.

Build

xcodebuild archive + export

Upload

Upload .ipa to ASC

Process

Wait for Apple processing

Metadata

Push descriptions & screenshots

Submit

Submit for review

Track

Monitor review status

What you get

shipkit init

Detects your project type, generates shipkit.yml. XcodeGen, workspaces, raw .xcodeproj — all supported.

shipkit build

Wraps xcodebuild with sane defaults. Auto build number from ASC. Pre/post hooks.

shipkit metadata push

Push name, subtitle, description, keywords, what's new, URLs, categories, and review notes — version-level + app-level in one pass.

shipkit submit

Submit (or re-submit) for App Store review. Auto-cleans up stuck submissions from previous rejections.

shipkit submissions list

See every reviewSubmission for your app with state and submitted date. Diagnose stuck states without leaving the terminal.

shipkit status

Check review status from the terminal. Color-coded.

shipkit ship

The full pipeline. Build → upload → metadata → submit. One command.

Resubmission lifecycle

After a rejection, ShipKit detects orphaned and rejected submissions, releases the version by deleting their items, then submits fresh. No web UI required.

Dashboard

See your submission history, review times, and build pipeline — Domino's tracker style. Now with auth, encrypted ASC key storage, and Stripe billing.

Insights (Solo+)

Anonymized aggregate data across all ShipKit users: average review times, rejection rates, best days/hours to submit, top error codes.

@shyguy_studio/shipkit-react

Embed App Store Connect management in your own React app. Drop-in dashboard, pipeline tracker, metadata editor.

<ShipKitDashboard proxyUrl="/api/shipkit/proxy" />

vs Fastlane

ShipKitFastlane
Installnpx (zero install)Ruby + Bundler + gems
Config1 YAML file5+ files + Ruby DSL
LanguageTypeScriptRuby
CI setupNode pre-installedruby/setup-ruby + bundle install
Code signingASC API directSeparate git repo (match)
Cold start< 1 second5-10 seconds (gem loading)