███████╗██╗ ██╗██╗██████╗ ██╗████████╗
██╔════╝██║ ██║██║██╔══██╗██║╚══██╔══╝
███████╗███████║██║██████╔╝██║ ██║
╚════██║██╔══██║██║██╔═══╝ ██║ ██║
███████║██║ ██║██║██║ ██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝
Shipit is a Rust command line interface for managing merge requests, changelogs, tags, and releases using a plan and apply interface. Built with coding agent integration in mind. | gitshipit.net
Why use shipit?
Most release tools execute immediately. Shipit uses a plan/apply pattern that separates "gather and review" from "execute." You see exactly what will be created before anything is pushed, which makes it safe to hand off to an AI agent without fear of a surprise tag or PR.
- Agent-native by design. Deterministic plan files,
--yamloutput, and aCLAUDE.mdintegration guide make shipit a first-class citizen in agentic coding workflows. - GitHub, GitLab, and more platforms to come in one binary. No plugins, no config switching. Platform is detected automatically from your remote URL.
- Multi-repo releases. Coordinate releases across multiple repositories in a defined order from a single config file.
- Commit enrichment. Fetches PR/MR titles from the platform API so your changelogs read like release notes, not raw git log output.
- No runtime required. Single compiled Rust binary with no Node, Python, or dependency installation.
Demo

Installation
Install Script (macOS/Linux/Windows)
|
Cargo
Homebrew (macOS)
&&
From Source
Or grab a pre-built binary from the releases page.
AI-native workflow
See AI.md for a full breakdown of how your agent is instructed to use shipit. The shipit init command will append these instructions to your CLAUDE.md file.
Opening merge requests
Shipit integrates with your favorite agentic coding assistant. After installing shipit on your system, ask your agent to "create a merge request with shipit".
Multi-project releases
To release across multiple repositories in a defined order:
- Run
shipit init --guide-onlyin a directory you can revisit for running your multi-project release - Ask your agent to "run a multi-project release with shipit".
- On the first run it will prompt you for your list of projects, their directory paths, and the environment pipeline for each (e.g.
dev → qa → main → tag), and then save the config to.shipit/multi-release.ymlin your current directory. On subsequent runs the agent reads that config, confirms whether you want a full release or a scoped one, walks you through each step, and waits for your approval before opening any PR or pushing any tag.
CLI Docs
Platform support
| Platform | Architecture | Status |
|---|---|---|
| Linux | x86_64 | ✓ |
| macOS | x86_64 | ✓ |
| macOS | aarch64 | ✓ |
| Windows | x86_64 | ✓ |