$git clone https://github.com/mattzcarey/shippie[![NPM][npm_badge]][npm] [![Contributors][contributors_badge]][contributors] [![Pulse][pulse_badge]][pulse] [![License][license_badge]][license] [![Twitter][twitter_badge]][twitter]
| 1 | # Shippie 🚢 (formerly Code Review GPT) |
| 2 | |
| 3 | [![NPM][npm_badge]][npm] |
| 4 | [![Contributors][contributors_badge]][contributors] |
| 5 | [![Pulse][pulse_badge]][pulse] |
| 6 | [![License][license_badge]][license] |
| 7 | [![Twitter][twitter_badge]][twitter] |
| 8 | |
| 9 | ## Helps you ship faster |
| 10 | |
| 11 | Shippie is an extendable code-review agent. It runs an agent loop that reads your diff, explores the codebase with real developer tools, and posts focused review comments — picking up issues a human reviewer would, such as: |
| 12 | |
| 13 | - Exposed secrets |
| 14 | - Slow or inefficient code |
| 15 | - Potential bugs or unhandled edge cases |
| 16 | |
| 17 | Shippie can also act as a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) client to reach external tools like browser automation, observability and documentation. |
| 18 | |
| 19 | ## Demo |
| 20 | |
| 21 | https://github.com/mattzcarey/shippie/assets/77928207/92029baf-f691-465f-8d15-e1363fcb808e |
| 22 | |
| 23 | ## Ethos 💭 |
| 24 | |
| 25 | - A prebuilt review **workflow**, not a bespoke CLI — the agent loop runs on [flue](https://flueframework.com/) + [pi](https://pi.dev). |
| 26 | - Runs **anywhere**: Node, Cloudflare, GitHub Actions, GitLab CI. |
| 27 | - Functions as a human code reviewer, using flue's built-in tools instead of a hand-rolled tool registry. |
| 28 | - Provider-agnostic: Anthropic, OpenAI, OpenRouter, and Cloudflare Workers AI out of the box. |
| 29 | - Acts as an MCP client for integration with external tools. |
| 30 | |
| 31 | ## Quick start 🚀 |
| 32 | |
| 33 | ### GitHub Action |
| 34 | |
| 35 | Run `npx shippie init` to scaffold the workflow below, then add your provider API key as a repo secret. Or add it manually — it needs a full checkout (`fetch-depth: 0`), PR write permissions, and a provider API key. |
| 36 | |
| 37 | ```yaml |
| 38 | # .github/workflows/shippie.yml |
| 39 | name: Shippie |
| 40 | |
| 41 | on: |
| 42 | pull_request: |
| 43 | |
| 44 | permissions: |
| 45 | pull-requests: write |
| 46 | contents: read |
| 47 | |
| 48 | jobs: |
| 49 | review: |
| 50 | runs-on: ubuntu-latest |
| 51 | steps: |
| 52 | - uses: actions/checkout@v4 |
| 53 | with: |
| 54 | fetch-depth: 0 |
| 55 | - uses: mattzcarey/shippie@v0 |
| 56 | env: |
| 57 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 58 | ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} |
| 59 | ``` |
| 60 | |
| 61 | See [Action Options](docs/action-options.md) for all inputs (`MODEL`, `THINKING_LEVEL`, `IGNORE`, `CUSTOM_INSTRUCTIONS`, `MCP_SERVERS`, and the provider keys). |
| 62 | |
| 63 | ### Local |
| 64 | |
| 65 | Run the review workflow locally with no server. Local mode reviews your **staged changes** (`git diff --cached`) and writes results to `.shippie/review/local_*.md`: |
| 66 | |
| 67 | ```bash |
| 68 | npx shippie review |
| 69 | ``` |
| 70 | |
| 71 | ### Run on demand with `/shippie` |
| 72 | |
| 73 | Comment `/shippie review` on a pull request to run shippie on demand — either via a GitHub Actions workflow (no server) or a deployed webhook channel. See [Run Shippie on demand](docs/tag-shippie.md). |
| 74 | |
| 75 | ## Setup Instructions 💫 |
| 76 | |
| 77 | See the [setup instructions](docs/setup.md) for more docs on how to set up shippie in your CI/CD pipeline and run it locally. |
| 78 | |
| 79 | ### Additional Documentation |
| 80 | |
| 81 | - [Setup](docs/setup.md) - Get shippie running in CI and locally |
| 82 | - [AI Provider Configuration](docs/ai-provider-config.md) - Configure Anthropic, OpenAI, OpenRouter, and Cloudflare Workers AI |
| 83 | - [Action Options](docs/action-options.md) - GitHub Action configuration options |
| 84 | - [Model Context Protocol (MCP)](docs/mcp.md) - Give shippie access to external tools |
| 85 | - [Rules Files](docs/rules-files.md) - Inject project context via `AGENTS.md` / `CLAUDE.md` and Agent Skills |
| 86 | - [Subagent Tool](docs/subagent-tool.md) - Delegate work to flue subagents with the `task` tool |
| 87 | - [On-demand /shippie](docs/tag-shippie.md) - Run shippie by commenting `/shippie` (Actions or webhook) |
| 88 | |
| 89 | ## Development 🔧 |
| 90 | |
| 91 | This repo targets Node >= 22.19 with npm. |
| 92 | |
| 93 | 1. Clone the repository: |
| 94 | |
| 95 | ```shell |
| 96 | git clone https://github.com/mattzcarey/shippie.git |
| 97 | cd shippie |
| 98 | ``` |
| 99 | |
| 100 | 2. Install dependencies: |
| 101 | |
| 102 | ```shell |
| 103 | npm install |
| 104 | ``` |
| 105 | |
| 106 | 3. Set up your API key: |
| 107 | |
| 108 | - Copy `.env.example` to `.env`. |
| 109 | - Set the provider key you want to use, e.g. `ANTHROPIC_API_KEY` (or `OPENAI_API_KEY`, `OPENROUTER_API_KEY`, `CLOUDFLARE_API_KEY` + `CLOUDFLARE_ACCOUNT_ID`). |
| 110 | |
| 111 | 4. Run the review workflow: |
| 112 | |
| 113 | ```shell |
| 114 | npm run review |
| 115 | ``` |
| 116 | |
| 117 | Useful co |