← plumbing.sh

plumb vs Critique

Both exist because an agent saying it is finished and the work being finished are different events. They disagree completely about who decides which one happened.

Critique asks a model. It uploads your diff and a reviewer model gives an opinion. plumb runs your repository’s own checks. It finds what your Makefile, your package scripts and your CI already declare, runs one, and reports what happened.

Everything below came from installing @critiquedotsh/cli 0.3.0 and running it. Where their marketing and their binary disagree, this page reports the binary.

Where the analysis runs
plumb

Your machine

Critique

critique.sh servers

Your code
plumb

Never leaves the host

Critique

Diff uploaded, up to 2 MB

What judges it
plumb

The commands your repo declares

Critique

A reviewer model — DeepSeek v4 Flash by default

Account required
plumb

No

Critique

Yes — device authorization

Works with the network off
plumb

Yes

Critique

No

Price
plumb

$96 / year — $48 for the first 100

Critique

$19 – $149 / month

What plumb does that Critique does not

Your code cannot leave the building. Critique uploads your diff. If that is prohibited where you work, the comparison ends there.

You want the same answer twice. plumb selects the same command every time and runs it. ⚠️ The outcome is whatever your test suite returns — if your tests are flaky, plumb faithfully reports flaky results. What is deterministic is the selection and the verdict logic, not your test suite.

You want it to admit ignorance. plumb has five verdicts and three are refusals: BLOCKED when a check could not run, INCONCLUSIVE when running it settled nothing, NOT-RUN when nothing was declared. A tool that answers pass or fail to all five situations is wrong in three of them.

The authority is yours. plumb never asserts a standard. It executes the one your repository already wrote down, and cites the file and line it came from.

Check it yourself

Do not take this page’s word for any of it. Both commands below have been run; neither needs a license.

Does plumb reach the network?
# turn your wi-fi off, then:
plumb
plumb rules
# both work. no network, no account, no key.

Or watch it under tcpdump if you prefer. ⚠️ To be exact: plumb links no networking module, and the one path that can reach the network is plumb update, which you run. It shells out to the curl already on your machine. Turn the reminder off for good with plumb update --no-remind.

Does Critique reach the network?
npm install --global @critiquedotsh/cli
# with the network off:
critique check
→ infrastructure_error
→ “Every selected Critique specialist failed.”

critique doctor reports its default reviewer: deepseek/deepseek-v4-flash-latest. That is not a criticism — it is how the product works, and it is why it can review a repository that declares nothing.

What plumb will not do

plumb has no opinion about readability or naming, and it will never invent a check nobody wrote. It runs what your repository declares — and when your repository declares nothing, it says so and stops rather than guessing. ⚠️ That refusal is the point: a tool that returns an answer in every situation is manufacturing one in some of them, and from the output you cannot tell which. Everything plumb reports, you can re-run yourself and get back the same thing.

Something wrong on this page? support@plumbing.sh. Corrections are welcome and get made — Critique 0.3.0 was current when this was written.

buy a seat — $48 / year →