Safe by default
create-repo, release and publish need --confirm. Every step has a --dry-run that prints exactly what it would run.
shipkit
Rust CLI + pluginship is one small CLI. Every release step is its own command and prints one JSON object, so Claude Code, a script or you can drive it step by step. Creating a repo, tagging a release and publishing are refused without --confirm.
01
Run the downloaded file and follow the wizard.
ship.exe for your account and adds it to your PATH, so ship works in any new terminal./ship-setup).cargo install shipkit
/plugin marketplace add acus9345/shipkit
/plugin install shipkit@shipkit
/shipkit:ship-setup
ship --version
ship self-test
ship to /usr/local/bin, which is already on your PATH. macOS asks for your password./plugin commands below.sudo rm /usr/local/bin/ship && sudo pkgutil --forget io.github.acus9345.shipkit02
From the project’s README.
create-repo, release and publish need --confirm. Every step has a --dry-run that prints exactly what it would run.
Uses your existing gh, cargo, npm or uv login. Generated release workflows publish with OIDC.
scaffold and add-workflows only create missing files. Tags are never moved or deleted.
A secret scan and the registry dry run must pass before a commit, repo, release or publish.
Stable exit codes and error codes (E_CONFIRM_REQUIRED, E_SECRETS_FOUND, …), easy for an agent or script to read.
The only network calls are the ones a step needs. Every action is logged locally, with secrets redacted.
03
git and the GitHub CLI gh, logged in with gh auth login.cargo, npm or uv. ship preflight checks them all.