JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 217
  • Score
    100M100P100Q85274F
  • License MIT

an extensible code review agent

Package Exports

  • shippie
  • shippie/dist/server.mjs

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (shippie) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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

https://github.com/mattzcarey/shippie/assets/77928207/92029baf-f691-465f-8d15-e1363fcb808e

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