SoonPatch

SoonPatch docs

SoonPatch is a free MCP server for Claude Code. You paste a Slack bug report and ask Claude to resolve it; SoonPatch finds which of your repos the report is about — across every project on your machine — and fixes it in the session you're already in. No app to open, no context-switch.

What it is

A single Claude Code session only sees the repo you're in. SoonPatch's job is the part that's annoying by hand: figuring out where a vague Slack report actually lives, then fixing it there.

When you ask Claude to resolve a report, SoonPatch hands it a case brief of every workspace on your machine — discovered from ~/.claude/projects, with each repo's branches, recent commits, recently-changed files, and active sessions. Claude uses that to locate the right repo (even one you're not currently in), investigate the cause, and draft the fix.

It exposes four tools to Claude Code:

  • soonpatch_locate — returns the case brief; Claude investigates in your session (fast, preferred).
  • soonpatch_draft_brief — drafting guidance for the fix, with cross-repo "also-applies-to" context.
  • soonpatch_resolve / soonpatch_draft — the same two, but run in a spawned local claude if your session can't investigate itself (slower fallback).

You don't call these by name — the installed skill drives them for you.

How it looks in Claude Code

You paste a Slack permalink and say "resolve this with soonpatch." A run looks like this:

> resolve this and use soonpatch: https://acme.slack.com/archives/C04BUG/p171…

soonpatch ▸ skill
soonpatch_locate ▸ scanned 14 workspaces
located: app-backend  [branch: main]  ·  confidence high
  reason: channel #bug-reporting + grep hit in ChatValidationService.php

investigating…  read ChatValidationService.php, EmojiMap.php
root cause: the emoji sanitizer strips U+200D, breaking ZWJ sequences

✎ ChatValidationService.php  (+5 −2)   fix applied

Want me to commit it?

  Fix emoji sanitizer stripping U+200D (ZWJ sequences)

  Resolved-with: SoonPatch

It applies the fix in your working tree, then asks if you want it committed — showing the exact message it would use. Nothing is committed unless you say so.

Install

One line (macOS or Linux):

curl -fsSL https://soonpatch.com/install-mcp.sh | sh

This verifies a checksum, drops a static binary in ~/.soonpatch/bin, installs the soonpatch skill, and adds a one-line directive to ~/.claude/CLAUDE.md so Claude reaches for SoonPatch when you paste a Slack link. Then register it:

claude mcp add --scope user soonpatch -- ~/.soonpatch/bin/soonpatch-mcp

Restart Claude Code. To update later, re-run the same curl line and restart.

Connect Slack

SoonPatch does not fetch Slack itself — your Claude Code reads the thread with its own Slack connector, then hands it to SoonPatch. Connect Slack's official MCP once:

claude plugin install slack

then approve the login in your browser. Manual alternative:

claude mcp add --transport http slack https://mcp.slack.com/mcp
# then run /mcp in Claude Code, pick slack, and Authenticate

Some workspaces need a Slack admin to approve the integration. Without Slack connected, Claude can't read the thread behind a permalink. (You can also paste the thread text in directly instead.)

Resolve a report

In any Claude Code session, paste a Slack permalink and ask:

resolve this and use soonpatch: <slack permalink>

Claude fetches the full thread (replies and screenshots included), calls soonpatch_locate, tells you the located repo and the root cause, and — if you want it resolved — applies the fix. Saying "use soonpatch" is the most reliable phrasing; it tells Claude to lead with the skill instead of grepping blind.

It's fine if you're in the wrong repo when you ask — locating the right one across your machine is the whole point.

Choosing where to apply the fix

If the located repo has more than one worktree (several branches checked out in parallel), SoonPatch won't pick one silently — Claude lists them and asks which to apply the fix in:

This bug is in the mobile app, which has several worktrees checked out.
Which one should I apply the fix in?
  1. meowtel-mobile          [service-zone-offmap-dashes]
  2. meowtel-app-3.0         [vrf+modification-highlights]
  3. Q1/new-earnings-page    [test-feat-dist]

Pick one and it applies the fix there.

Privacy

  • Runs locally and drives the Claude Code you already use. No SoonPatch account, backend, or API key.
  • Your source never leaves your machine; only the prompt and the result move.
  • SoonPatch sends anonymous, content-free usage stats — an install count and which tools run, never your messages, code, or repo names. Opt out anytime with SOONPATCH_NO_TELEMETRY=1 or DO_NOT_TRACK=1.
  • It keeps itself up to date: a background check installs new releases for the next launch, so you never re-run the installer. It adds no startup delay and never sends your code. Opt out with SOONPATCH_NO_UPDATE=1.
  • It investigates and proposes fixes; you review and commit with git. Nothing auto-merges.

FAQ

How much does it cost? Free. It runs on the Claude Code you already pay for — there's no SoonPatch subscription.

Which platforms? macOS and Linux. The Linux build is a static binary, so it runs on any distro with no dependencies.

Is my code sent anywhere? No. There's no backend and your source stays on disk. SoonPatch sends only anonymous, content-free usage stats (install count + which tools run) — never your code, messages, or repo names. Opt out with SOONPATCH_NO_TELEMETRY=1 or DO_NOT_TRACK=1.

Does it auto-merge or commit? No. It applies a fix in your working tree; you review and commit (or discard) with git.

Questions or feedback? Email lucas@soonpatch.com.