What it sends back CLI Trust Sign in Scan a repo

We clean, maintain and optimize your code.
You just approve it.

CleanCode finds the duplicated, dead and out-of-date code across all your repositories, writes the fix, and sends it over as a pull request.

The cards stacking up behind are examples, arriving at the real rate. About three quarters of pull requests are now merged without anyone reading them.

Why there is suddenly so much mess.

Machines write most of the code now, and it gets merged faster than anyone can read it. The tidying up that used to happen afterwards has quietly stopped. These are public numbers, and none of them is controversial.

1 in 26

changes are now tidying up old code. It used to be 1 in 5.

GitClear

2x

as much copy-pasted code, counted across 623 million lines of changes.

GitClear

28x

more money spent on AI coding tools over the same period.

DX, Q2 2026

What it feels like from inside

“There's more like 30 of them per day and most people are just rubber stamping them. Our codebase is gradually becoming more and more vibe coded.”

A staff engineer, on reviewing agent-written pull requests. Hacker News, 2026

Nothing on a dashboard shows this. The review step is still on the board and still shows green. It is just being done by people who ran out of hours, on code nobody wrote. You cannot fix that by asking them to try harder.

What you actually get.

One fix at a time, with the change already written and the reason explained. It stops and waits for a person. Nothing reaches your code until someone on your team presses approve.

cleancode/dedupe-retry-helper Waiting on you

Four teams wrote this retry helper. Keep one.

The same backoff logic exists in billing, checkout, growth and mobile-api. This change deletes three of them and points the callers at the oldest one, which is the only version with tests.

services/checkout/retry.ts
- export function retryWithBackoff(fn, attempts = 3) {
- let wait = 250
- // copied from services/billing in March
- }
+ import { retryWithBackoff } from '@acme/billing/retry'
export { retryWithBackoff }
Approve Request changes Nothing merges until you say so

An example of what arrives. Turn one down with a note and the next one takes it into account.

What that changes.

None of this is time your team has to find. The work turns up already done, in pieces small enough to actually read, and waits for a yes.

  • You stop planning a cleanup sprint. The work turns up a bit at a time, instead of waiting for a quiet quarter that never comes.
  • You find the same work done twice by different teams. No single team can spot this, because from inside one repository it is invisible.
  • Version upgrades stop eating the weeks you set aside for features. It is the most boring work you have, and the easiest to hand over.
  • Your reviewers spend their attention where a human is actually needed. The routine changes turn up already correct.

What it does not do: review your team's own pull requests for them. That queue stays yours. CleanCode's job is to stop making it longer.

Why one repository is not enough

Nobody did anything wrong here.

Four teams wrote the same piece of code in the same year. Each one looked in their own repository first, and each one was right that it was not in there.

platform retryWithBackoff() in services/billing March
checkout retryWithBackoff() in services/checkout June
growth withRetry() in lib/http August
mobile-api retry() in internal/net September

Looking at one repository, you cannot see this. Looking at all of them at once, it is obvious. That is the job Fleet does.

One problem. Start wherever it hurts.

One repository

The CLI

Point it at one repository and it tells you what is missing: tests, security checks, build setup, documentation and more. Free, and it runs on your machine or in your pipeline.

$ cleancode scan fastapi/fastapi
Scan started: 92e43a15
Status: analyzing
 
# 3,139 files in 16 seconds
Live now Install it

Every repository

Fleet

The same check across every repository you own at once, so work done twice finally shows up. What you get back is a queue of fixes to approve, not a report to read.

Design partners Apply

Everything written next

Code Coaching

A check that runs before code is merged, holding everyone to the same standard, whether a person or a machine wrote it. No scores, no leaderboard, no ranking your engineers against each other.

In development Tell me when it ships

Two people who have run this problem at a scale almost nobody has seen.

Jared Green

Chief Executive, co-founder

Twenty-five years in developer productivity, most recently at VP level inside Microsoft and LinkedIn. He has spent his career on what an engineering organisation actually gets for what it spends.

Dominique Walter

Chief Operating Officer, co-founder

Eighteen years in operations and revenue, including VP Operations at Instabase and revenue operations at Chargebee. She builds the part of a company that has to survive its own growth.

Read one repository properly.

It takes about twenty minutes. You can point it at a public repository first if you would rather not point it at your own.