███████╗██╗ ██╗██╗██████╗ ██╗████████╗
██╔════╝██║ ██║██║██╔══██╗██║╚══██╔══╝
███████╗███████║██║██████╔╝██║ ██║
╚════██║██╔══██║██║██╔═══╝ ██║ ██║
███████║██║ ██║██║██║ ██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝
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. - Claude Code skill included. Run
shipit init --install-skillto install the shipit skill globally. Then type/shipitin any Claude Code session to load the full workflow guide. No per-project setup required. - 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.
See CONTRIBUTING.md for local development setup, coverage, and pre-commit hooks.
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.
Claude Code skill
Install the shipit skill globally so Claude Code can use it across any project without a per-project CLAUDE.md:
This writes the skill to ~/.claude/skills/shipit/SKILL.md. Once installed, type /shipit in any Claude Code session to load the full workflow guide. Combine with --guide-only to install only the skill without creating a shipit.toml:
Alternatively, copy the skill directory directly from this repo:
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 | ✓ |