Skip to content

mattzcarey/shippie

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

720 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Shippie 🚒 (formerly Code Review GPT)

NPM Contributors Pulse License Twitter

Helps you ship faster

Shippie is a prebuilt code-review agent built on flue. It runs an agent loop (on pi) 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:

  • Exposed secrets
  • Slow or inefficient code
  • Potential bugs or unhandled edge cases

The agent uses flue's built-in pi tools (read, write, edit, bash, grep, glob, task) plus shippie's suggest_change tool for inline comments. It can also act as a Model Context Protocol (MCP) client to reach external tools like browser automation, infrastructure, and observability.

Demo

code-review-gpt-3.mp4

Ethos πŸ’­

  • A prebuilt review workflow, not a bespoke CLI β€” the agent loop runs on flue + pi.
  • Runs anywhere flue deploys: Node, Cloudflare, GitHub Actions, GitLab CI.
  • Functions as a human code reviewer, using flue's built-in tools instead of a hand-rolled tool registry.
  • Provider-agnostic: Anthropic, OpenAI, OpenRouter, and Cloudflare Workers AI out of the box.
  • Acts as an MCP client (remote HTTP/SSE) for integration with external tools.

Quick start πŸš€

GitHub Action

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.

# .github/workflows/shippie.yml
name: Shippie

on:
  pull_request:

permissions:
  pull-requests: write
  contents: read

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: mattzcarey/shippie@v0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

See Action Options for all inputs (MODEL, THINKING_LEVEL, IGNORE, CUSTOM_INSTRUCTIONS, MCP_SERVERS, and the provider keys).

Local

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:

flue run review --target node --payload '{"platform":"local"}'

Or via the package script:

npm run review

Run on demand with /shippie

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.

Setup Instructions πŸ’«

See the setup instructions for more docs on how to set up shippie in your CI/CD pipeline and run it locally.

Additional Documentation

Development πŸ”§

This repo targets Node >= 22.19 with npm.

  1. Clone the repository:

    git clone https://github.com/mattzcarey/shippie.git
    cd shippie
  2. Install dependencies:

    npm install
  3. Set up your API key:

    • Copy .env.example to .env.
    • 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).
  4. Run the review workflow:

    npm run review

    Useful commands:

    • npm run dev β€” run flue in dev mode
    • npm run build β€” build a publishable Node server to dist/server.mjs (run it with npm run start, then POST /workflows/review?wait=result)
    • npm run check β€” lint/format with biome
    • npm run check:types β€” typecheck with tsc
    • npm test β€” run tests

    See package.json for the full list of scripts.

  5. Make a PR πŸŽ‰

We use release-please on this project. If you want to create a new release from your PR, please make sure your PR title follows the Conventional Commits format. The release-please bot will automatically create a new release for you when your PR is merged.

  • fix: which represents bug fixes, and correlates to a patch version.
  • feat: which represents a new feature, and correlates to a SemVer minor.
  • feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a major version.

Contributors πŸ™

Thanks to our wonderful contributors!

Roadmap 🌏

Have a look at the discussion tab for the latest chat and ideas. I am actively working on the items in todo.md.

Star History ⭐️

Star History Chart

Sponsor this project

Packages

 
 
 

Contributors