Your error tracker has been telling you about the same unhandled null for three weeks. It is correct, it is well-formatted, and it has never once written a patch. Patcherly drafts the change, you approve it, and it applies on your own infrastructure.
PHP · Python · Node.js · WordPress | connector source is open | EU-hosted, Frankfurt
Correct, if the AI decides. The whole design here is that it does not. There are six gates between a model producing a diff and a byte changing on your disk, and you own four of them.
A new target applies nothing. It collects, analyses and proposes, and waits. You decide when — and whether — that changes.
Every fix waits for a human. Low-confidence proposals need a second, separate confirmation before they can be applied at all.
Monitored paths, excluded paths and patch-exclusion paths are per target. Whole trees can be declared untouchable, and stay that way.
Every path in the patch is snapshotted on your own host first, with sha256-verified backup manifests. The restore copy never leaves your machine.
The file is parsed before and after the write. Then a health request runs against your target, plus tests or deeper checks on supported plans.
A failed check triggers restore from the local snapshot. You can also roll back any applied patch yourself, whenever you like. Docs →
Auto Apply does exist. It is opt-in, scoped to a single target, revocable in one click, and it still runs the backup, the syntax check, the health check and the rollback. It is a decision you make per target after you have watched it work — not a default you have to remember to turn off.
Sentry, Rollbar, Bugsnag and Datadog do tracing, performance, release health, session replay and a breadth of SDKs Patcherly does not attempt. If you are evaluating this as a swap, you will be disappointed, and we would rather say that here than in month three.
Patcherly picks up where they hand off. The error is known. The stack trace is beautiful. Somebody still has to open the file, work out what changed, write the patch, get it reviewed and ship it. That gap is the product.
Read the product scope doc before you buy. It is written to set expectations, not to sell.
Not “we take security seriously”. The actual list, so you can decide whether it is acceptable before you install anything.
API keys, passwords and tokens are pattern-redacted before anything reaches a model or a log line.
Inbound is a signed patch payload. Unsigned or replayed messages are refused, and signing cannot be disabled.
Log lines are attacker-influenceable input on their way to a model. Suspicious payloads are quarantined and flagged instead of analysed, with a per-target protection mode. How →
Connectors pair through a short-lived device-code grant with fixed scopes that never widen for the life of the connection. Revoke from the dashboard and the connector is dead immediately.
Frankfurt. The Art. 28 DPA and the subprocessor list are on the site, not behind a sales call. Full detail on the security page.
Patcherly started as a research question, tested across a million simulated sessions before it was a product. The numbers and the methodology are both published.
Errors resolved without a human.
Against roughly 5% without enriched context. Same error pool, same review process.
Drop in resolution time.
Base scenario. Includes human approval time, not just machine time.
Errors still needing a person.
Roughly one in eight handed back to automation. Not a revolution — a real dent.
You are going to find these in week two anyway. Better you find them now and decide with the real shape of the thing in front of you.
It reacts to errors your application emits. It does not poll your endpoints every minute to tell you the box is alive. Keep your monitoring stack.
Checks confirm the app loads and tests pass. They cannot prove every user journey works. Bugs behind rare paths still need QA.
It patches source. It does not migrate a schema, edit a database row, or rewrite your infrastructure config.
Environment-specific and race-condition errors may not reproduce on a post-apply check, so verification tells you less than you would like.
No post-fix test runs or restarts on the WordPress plugin, by directory rule and by design. Use the standalone connectors where you need that. Docs →
PHP, Python, Node.js and WordPress. Go, Ruby, Rust, Java and .NET are roadmap, not shipping. Tell us what you run.
Nothing to import, no middleware to wire, no build step. The connector reads the logs you already write. Your PR flow and your CI do not move an inch.
Connector source is open — read it before you run it, which is rather the point.
curl -sSL https://api.patcherly.com/install.sh | sudo bash
The Connect modal in your dashboard hands you the same command with the pairing code already in it. All connectors · Install docs
The ones we would ask too. Not answered here? Ask directly — the founder is also the person on call for Patcherly itself.
No, and we would rather say so than lose the argument later. Those products do tracing, performance, release tracking, session replay and breadth of SDKs that Patcherly does not attempt. Patcherly starts where they finish: you already know the error exists, and something still has to write the patch. Plenty of teams run both.
No. The connector sends the error message, the file path and line, a scrubbed snippet around the error, and environment metadata. Secrets are pattern-redacted before anything leaves the host. Your repository is never mirrored, cloned or stored, and your code is never used to train third-party foundation models.
The apply step is gated by default. New targets start in dry run, every patch waits for an explicit approval, and low-confidence proposals need a second confirmation. Auto Apply exists, but it is opt-in, scoped per target, and revocable in one click. The failure mode people rightly worry about with autonomous remediation is the one this architecture removes.
The connector snapshots every path in the patch before writing, verifies syntax before and after, then runs a post-apply health request against your target URL, and on supported plans tests or deeper checks. If verification fails, rollback restores from the local snapshot — automatically, or manually whenever you want.
On the standalone Python, Node.js and PHP connectors, yes — they run as separate processes and can be granted permission to execute commands. The WordPress plugin cannot, ever: it only changes files. That is a WordPress plugin-directory rule and a deliberate safety boundary, not an oversight.
Error text is untrusted input that reaches a model, so it is treated as hostile. Suspicious payloads are quarantined and flagged rather than analysed, and a per-target protection mode controls how aggressively that gate closes. The mechanism is documented rather than described in marketing terms.
The EU, in Frankfurt. Your code and your pre-apply backups stay on your own machine and never reach us. A Data Processing Agreement is published rather than gated behind a sales call, and the subprocessor list is public.
It patches code files, not database rows or configuration. Post-patch verification is best-effort inside the workflow — it can confirm the app loads and tests pass, not that every user journey works. Intermittent and environment-specific bugs may not reproduce on a check. And it is not uptime monitoring; it reacts to errors your application emits.
Add one target in dry run and watch what it proposes for a week. It cannot write anything until you let it, so the worst case is that you learn what your logs have been hiding.
Full Pro plan for 30 days. No credit card. Free Personal plan after that, for as long as you like.