patchwork-agent
v0.1.0
Published
Autonomous SWE agent — triage and fix issues from Sentry, Asana, Linear, and Jira with Claude
Downloads
288
Readme
Patchwork
Turn your backlog into pull requests — automatically.

Patchwork connects to your existing project management tools, picks up tasks, and uses Claude Code to implement them in isolated git worktrees. You review the diff, click Accept, and a PR appears. That's it.
No API keys to manage. No per-token billing. No workflow files to write. Patchwork runs locally on your machine using your Claude Code subscription (Pro, Max, or Team) and plugs directly into the tools you already use.
Get started in 2 minutes
Prerequisites: Bun · Claude Code · GitHub CLI (gh auth login)
bunx patchwork-agentYour browser opens at localhost:7842/setup. The setup wizard walks you through connecting your first integration (Asana, Linear, Jira, or Sentry) and pointing Patchwork at a repo. Done.
After setup, Patchwork polls your board, triages tasks with Claude, and waits for your go-ahead before touching any code.
The full loop
Your backlog (Asana / Linear / Jira / Sentry)
→ Patchwork picks up new tasks
→ Claude triages: is this actionable?
→ You confirm: "Start this one"
→ Claude implements in an isolated worktree
→ You review the diff in the dashboard
→ Accept → branch pushed, PR created
→ Discard → worktree removed, nothing changes
→ Skip → task ignoredInstall globally
bun install -g patchwork-agent
# or
npm install -g patchwork-agentCLI
patchwork start Start the daemon and open the dashboard
patchwork stop Stop the daemon
patchwork update Update to the latest version
patchwork doctor Check your setup for problems
patchwork version Show versionWhy Patchwork?
- Works with your Claude Code plan — uses the
claudeCLI you already have. No separate API keys, no surprise bills - Connects to what you use — Asana, Linear, Jira, and Sentry out of the box
- Fully local — runs on your machine, against your repos, with your credentials. Nothing leaves your environment
- Human in the loop — every task is triaged, confirmed before work starts, and approved before anything ships
- Real-time visibility — live dashboard with streaming progress, diffs, triage results, and one-click actions
Features
Integrations
| Source | What Patchwork pulls | |--------|---------------------| | Asana | Tasks from projects, with severity from tags/custom fields | | Linear | Issues with team/project/status/assignee/label/priority filters | | Jira | Issues via JQL — simple filter mode or raw JQL | | Sentry | Unresolved errors with full stacktraces (auto-filters noise like CSP, CORS, timeouts) |
Dashboard
A full React web UI at localhost:7842 — no terminal babysitting required.
- Live issue list with real-time WebSocket updates
- Streaming progress: watch Claude work in real-time with tool usage, elapsed time, and cost
- Syntax-highlighted diff viewer for completed fixes
- Triage results with confidence scores and implementation plans
- One-click actions: Start, Accept, Discard, Skip, Retry
- Triage feedback — propose an alternative approach during confirmation; Claude revises the plan in real-time without re-exploring the codebase
- Settings management and connection testing for all integrations
- First-run setup wizard — configure everything from the browser
Notifications
Optional Telegram integration with forum topics — each task gets its own thread with live progress updates and inline action buttons.
Smart Pipeline
- Triage first — Claude reads the codebase and decides if a task is actionable before spending time on it
- Priority queue — critical issues are handled first. Queue pauses while awaiting your approval
- Isolated worktrees — every fix runs in its own git worktree. Your working tree is never touched
- Session continuity — triage context carries over to implementation, so Claude doesn't re-read the codebase twice
- Auto-commit — tests committed separately from code changes for a clean PR history
- Lint/format gate — optional
lintCommandruns after implementation, auto-commits formatting fixups, and fails the task if unfixable lint errors remain - Test plan in PR — Claude generates manual verification steps included in every PR description
Development
bun run dev # daemon + Vite dev server with HMR on :5173
bun test # run the test suiteAdding a new source integration
- Implement
SourceAdapterfromsrc/sources/types.ts - Add config type in
src/config.ts - Wire it up in
src/daemon.ts
Adding a notification channel
- Create
src/notifications/yourchannel.tsmatching the Telegram interface - Add to
WorkspaceRuntimeinsrc/daemon.ts
