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.
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.
From config to green CI, Stitch runs the whole loop on your machine without leaving the terminal.
Run stitch run claude. Stitch parses your .gitlab-ci.yml or GitHub Actions workflows, classifies jobs, and skips infrastructure jobs automatically.
Jobs run locally with timeouts and isolation. Results stream into a live TUI with progress tracking. Seconds, not minutes.
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.
No intermediate server. Stitch runs in your shell, reads your file tree, and writes patches on top. Shut it down and nothing lingers.
Uses the Claude Code credentials you already have. We do not ask for tokens, we do not store anything.
Every patch lands in an isolated commit. git reset takes you back exactly where you were.
Whatever you would see in your cloud CI, you see in your terminal. Same jobs, same containers, same result — without the wait cycle.
Stitch catches what slips through code review — lint errors, type mismatches, broken tests — and fixes them before you even notice.
Uses your existing .gitlab-ci.yml or GitHub Actions config. No setup, no rewrite, no extra YAML.
Runs jobs on your machine in seconds. No waiting for remote CI runners or pipeline queues.
Plug in Claude Code or OpenAI Codex. Uses your existing subscription. Zero API keys to manage.
Beautiful terminal UI with live progress, job status, and driver activity as Stitch works.
Continuous validation as you code. Re-runs jobs automatically when files change.
Auto-classifies and skips deploy, publish, and infra jobs. Only runs what matters locally.
When fixes pass, Stitch commits and pushes automatically. You stay in flow.
GitLab CI and GitHub Actions, self-hosted included. Reads your existing config as-is.
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.
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.
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.
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.
Type "commit and push" in Claude Code.
Runs Stitch locally in seconds, streaming the TUI inline.
Green, the push goes through. Red, Claude fixes it first, then pushes.
Ask Claude to push, commit, or open a PR. Stitch runs first. Anything fails, the commit stays on your machine.
Feature done, bug fixed, refactor landed. Claude runs Stitch as the last step before declaring the work finished.
If a TodoWrite item touches code a pipeline would check, Claude runs Stitch before ticking the box.
Pivot to a different change, Claude checks the previous one so nothing broken is left behind.
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.
$ ln -s "$(pwd)/skills/stitch" ~/.claude/skills/stitch
$ ln -s "$(npm root -g)/stitch-agent/skills/stitch" ~/.claude/skills/stitch
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) |
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.
# 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
# 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
Stitch runs inside your repo with hard limits on time, scope, and what can leave your machine. Nothing ships behind your back.
Every job runs with a configurable timeout. Runaway commands are SIGKILLed, never left to spin.
Deploy, publish, and release jobs are classified as infra and skipped automatically. Only verify jobs run locally.
Auto-commit and push only trigger if the branch was clean before Stitch started. Your uncommitted work is untouchable.
Failed jobs retry up to max_attempts (default 3). After that, Stitch escalates to you instead of burning tokens.
Jobs, logs, and fixes all run on your machine. No cloud, no telemetry, no webhooks unless you configure them.
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/...
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.
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.
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.
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.
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).
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.
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.