Open Source · Local-First CLI

Your CI breaks.
Stitch fixes it.

Run your CI locally. Fix failures with AI. Stitch parses your existing CI config, runs jobs on your machine in seconds, and hands failures to an AI agent that fixes them. No API keys, no config files.

Get Started
01 —— how it works

A bird that weaves the loose threads of your pipeline.

Stitch runs your CI config — but on your machine, before you push. When it finds a failure, it hands the context to Claude and applies the patch. No broken PR opened.

Read .github/workflows/ci.yml
Run jobs locally (Docker)
Detect failures and collect context
Hand errors + stack to the agent
Apply the patch and re-test
Green. Ready to push.
~/acme-api · stitch-agent live
0
Config Files
2
AI Agents
~10s
Feedback Time
100%
Of Your CI
02 —— principles

Local by design.
Transparent by principle.

We never ship your code anywhere you did not authorize yourself. The agent reads, runs, patches — all inside your machine.

Three phases. Fully local.

From config to green CI, Stitch runs the whole loop on your machine without leaving the terminal.

Parse

Run stitch run claude. Stitch parses your .gitlab-ci.yml or GitHub Actions workflows, classifies jobs, and skips infrastructure jobs automatically.

Execute

Jobs run locally with timeouts and isolation. Results stream into a live TUI with progress tracking. Seconds, not minutes.

Fix

Failed jobs are handed to your AI agent (Claude Code or Codex). The agent investigates, edits files, and Stitch re-runs to verify. Up to 3 attempts before escalating to you.

I

Your repo. Your machine.

No intermediate server. Stitch runs in your shell, reads your file tree, and writes patches on top. Shut it down and nothing lingers.

II

Zero new API keys.

Uses the Claude Code credentials you already have. We do not ask for tokens, we do not store anything.

III

Everything is reversible.

Every patch lands in an isolated commit. git reset takes you back exactly where you were.

IV

No magic.

Whatever you would see in your cloud CI, you see in your terminal. Same jobs, same containers, same result — without the wait cycle.

03 —— Features

Everything your CI pipeline needs to self-heal

Stitch catches what slips through code review — lint errors, type mismatches, broken tests — and fixes them before you even notice.

Zero Config

Uses your existing .gitlab-ci.yml or GitHub Actions config. No setup, no rewrite, no extra YAML.

Local-First

Runs jobs on your machine in seconds. No waiting for remote CI runners or pipeline queues.

Pluggable AI Agents

Plug in Claude Code or OpenAI Codex. Uses your existing subscription. Zero API keys to manage.

Interactive TUI

Beautiful terminal UI with live progress, job status, and driver activity as Stitch works.

Watch Mode

Continuous validation as you code. Re-runs jobs automatically when files change.

Smart Job Filtering

Auto-classifies and skips deploy, publish, and infra jobs. Only runs what matters locally.

Auto Commit & Push

When fixes pass, Stitch commits and pushes automatically. You stay in flow.

Multi-Platform

GitLab CI and GitHub Actions, self-hosted included. Reads your existing config as-is.

04 —— Real output. Not a mockup.

This is Stitch. Running on a real machine.

Everything else on this page is what Stitch does. The recordings below are what Stitch looks like doing it. Captured from a real terminal, unedited.

Live run

The agent takes over when a job fails

One command. Stitch parses your CI config, runs verify jobs locally, hands failures to Claude Code or Codex, and re-verifies the fix. All of it streams into a single terminal window.

  • Pipeline stepper Parse, execute, fix phases with a live progress indicator at the top.
  • Live job table Every job with its state, attempt count, and timing, updated as it runs.
  • Driver panel See what the agent is actually doing: files read, commands run, patches applied.
~/repo $ npx stitch-agent run claude
Animated terminal recording of stitch run claude showing the TUI with pipeline stepper, job table, and agent driver panel
~/repo $ stitch history
Terminal screenshot of stitch history command showing STITCH ASCII logo, agent info, and a table of recent runs with pass, fixed, and ongoing states
Run history

Every run is kept. Streaks, fixes, escalations.

Stitch records every run it performs on a repo. You can see at a glance which jobs pass on their own, which needed the agent, and which got escalated. No dashboard, no account. Just a file on your machine.

  • Streaks PASS streaks show the verify jobs that keep working without intervention.
  • Fixes FIXED entries record when the agent resolved a failure, with attempt count and commit.
  • Escalations Failures the agent could not resolve within the attempt ceiling are surfaced, not hidden.
05 —— Claude Code native

Your agent validates your code. You do not have to ask.

Stitch ships with a Claude Code skill. Install it once and Claude runs Stitch automatically at the four moments where broken code usually slips through. No flag, no command, no prompt.

How it feels

1
You

Type "commit and push" in Claude Code.

2
Claude

Runs Stitch locally in seconds, streaming the TUI inline.

3
Result

Green, the push goes through. Red, Claude fixes it first, then pushes.

Four automatic triggers

Before every push

Ask Claude to push, commit, or open a PR. Stitch runs first. Anything fails, the commit stays on your machine.

At the end of a task

Feature done, bug fixed, refactor landed. Claude runs Stitch as the last step before declaring the work finished.

Before marking a todo complete

If a TodoWrite item touches code a pipeline would check, Claude runs Stitch before ticking the box.

When switching context

Pivot to a different change, Claude checks the previous one so nothing broken is left behind.

Install the skill once

One symlink. Claude Code picks it up automatically and auto-triggers on natural-language mentions like "validate this" or "fix the pipeline". You can still call it explicitly with /stitch.

From a local clone
$ ln -s "$(pwd)/skills/stitch" ~/.claude/skills/stitch
From a global npm install
$ ln -s "$(npm root -g)/stitch-agent/skills/stitch" ~/.claude/skills/stitch
06 —— Compare

How Stitch stacks up

Most CI assistants want you to adopt their cloud, their monorepo, or their SDK. Stitch reads what you already have and runs on the machine you already own.

Capability Stitch Gitar Nx Cloud Dagger + AI
Uses your existing CI config
Runs jobs locally Cloud only Cloud only Containers
Pluggable AI agent Any CLI agent Built-in only Built-in only Built-in only
Requires new infra None SaaS account Nx monorepo Dagger SDK
Native Claude Code integration Ships with a skill
Pricing Free From $20/user/mo Nx Cloud plan Free (OSS)
07 —— Usage

One command. Your existing config.

Stitch reads the CI config you already have and runs the same jobs locally. No pipeline changes, no extra services, no new YAML to maintain.

terminal
# Run every CI job locally
$ stitch run claude

# Only the jobs you care about
$ stitch run claude --jobs lint,test

# See what would run, without running it
$ stitch run claude --dry-run

# Re-run automatically on every file change
$ stitch run claude --watch --jobs lint,test
.gitlab-ci.yml
# Your existing CI config. Stitch reads it,
# no jobs to add, no changes to make.

lint:
  image: node:20
  script:
    - bun install
    - bun run lint

test:
  image: node:20
  script:
    - bun install
    - bun test

typecheck:
  image: node:20
  script:
    - bun install
    - bun run typecheck
08 —— Safety

Guardrails, not guardropes

Stitch runs inside your repo with hard limits on time, scope, and what can leave your machine. Nothing ships behind your back.

Execution Timeouts

Every job runs with a configurable timeout. Runaway commands are SIGKILLed, never left to spin.

Infrastructure Auto-Skip

Deploy, publish, and release jobs are classified as infra and skipped automatically. Only verify jobs run locally.

Git Clean Check

Auto-commit and push only trigger if the branch was clean before Stitch started. Your uncommitted work is untouchable.

Bounded Attempts

Failed jobs retry up to max_attempts (default 3). After that, Stitch escalates to you instead of burning tokens.

Stays Local

Jobs, logs, and fixes all run on your machine. No cloud, no telemetry, no webhooks unless you configure them.

.stitch.yml
languages: [typescript, python]
linter: eslint
test_runner: vitest
package_manager: pnpm
max_attempts: 3

conventions:
  - "Always use explicit return types on public functions."
  - "Never downgrade dependency versions."

auto_fix: [lint, format, simple_types, config_ci]
escalate: [logic_errors, breaking_changes, dependency_conflicts]

notify:
  channels:
    - type: slack
      webhook_url: https://hooks.slack.com/...
09 —— installation · 12 seconds

One command.
Zero config files.

node ≥20
v20.0+
claude code
installed
docker
optional
telemetry
never
10 —— questions

Questions we hear,
answered in plain words.

What does Stitch actually do?

Stitch reads your existing CI config (GitHub Actions or GitLab CI), runs the verify jobs locally on your machine, and hands any failure to your AI agent (Claude Code or Codex) to fix. When the fix passes locally, Stitch commits and pushes. No remote runner needed for the verify loop.

How is Stitch different from Nx Cloud, Gitar, or Dagger?

Nx Cloud, Gitar, and Dagger ask you to adopt their cloud, monorepo, or SDK. Stitch reads the CI config you already have and runs on the machine you already own. There is no SaaS account, no DSL, and the AI agent is whatever CLI you already use.

Does Stitch require API keys?

No. Stitch uses the Claude Code or Codex credentials you already have on your machine. There is nothing extra to manage and nothing extra to bill.

What CI providers are supported?

GitHub Actions and GitLab CI today, including self-hosted GitLab. Stitch parses the existing config and only runs verify-class jobs locally; deploy and publish jobs are skipped automatically.

Is Stitch free?

Yes. Stitch is open source under the MIT license, distributed on npm as stitch-agent. The only cost is whatever you already pay for your AI agent (Claude Code or Codex).

Does Stitch send my code anywhere?

No. Stitch runs locally. Your code stays on your machine. Your AI agent talks to its own API directly using your existing credentials, exactly the way it does when you run it manually. Stitch has no telemetry and no webhooks unless you configure them.

Can I use Stitch without Claude Code?

Yes. The agent layer is pluggable. Codex CLI works today; any CLI agent that takes a task description and returns code patches can be wired in. Claude Code is the default because we built the integration first, not because it is locked in.