Shipwright Harness

Introduction

Shipwright Harness is the open-source autonomous delivery agent for Claude Code. It drives the full software delivery loop — spec → plan → execute → review → deploy — across any repository, without manual hand-offs.

What is Shipwright Harness?

Shipwright Harness is a Claude Code plugin you install once and use everywhere. It is repo-agnostic: it plans, builds, reviews, and ships code against any codebase — Node.js, Go, Rust, Python, Ruby, or anything else — using only standard git and a task queue.

The core guarantee is that you stay in the loop only where it matters. Shipwright handles the mechanical work (writing failing tests, implementing code, opening PRs, watching CI) and surfaces decisions that require human judgment.

Install the plugin into your Claude Code workspace once:

/plugin install shipwright@app-vitals/shipwright

It ships as four artifacts — built and activated in sequence — so you can adopt as much or as little as you need.

How it works — A → B → C → D

Each artifact is independently useful and adds capability when combined with the next:

PhaseArtifactWhat it is
APlugin (plugins/shipwright/)Claude Code plugin covering the full delivery loop. Install with /plugin install shipwright. Repo-agnostic.
BMetrics dashboard (metrics/)Hono service with backend-agnostic JSON endpoints and a server-rendered dashboard. Two modes: fixtures (offline) or live task store.
CShipwright agent (agent/)Thin autonomous runner: pick next ready task → build → ship PR → forward metrics. Deploys to any container host.
DTask store service (task-store/)Postgres-backed task queue, PR tracking, and scoped access tokens. Replaces the local JSON fallback when you go to production.

You can stop at A (the plugin alone is fully functional), add B to get local metrics, add C to run hands-off in the cloud, and add D when you want a durable, multi-agent task queue.

Design principles

Local-first. Every artifact runs offline by default. The metrics dashboard serves fixtures with no secrets needed. The plugin works against any local git repo. No cloud account required to get started.

Repo-agnostic. The plugin carries no opinions about your stack. It reads your test command from context and adapts. It never hard-codes paths, frameworks, or CI providers.

No new coupling. Each artifact draws a clean boundary. The plugin does not import the agent. The metrics service has no database. The task store has no UI. Boundaries are enforced by the build — not by convention.

Test-first. Shipwright writes failing tests before implementation code, every time. This is enforced by the plugin’s execution loop, not by a linter.

Next steps

Ready to try it? Get started with the local setup — you can go from zero to a running metrics dashboard in a single Claude Code prompt.

Want to run it as a 24/7 autonomous agent? See Deploying to Cloud for the full container deployment guide.