perchCODE REVIEW COMPARISONS
Perch vs Semgrep Code · reviewed 2026-10-14

Semgrep comparison for English rules and semantic checks

Perch accepts an English ensure requirement and checks it against parsed application code with relevant context. It is useful when the repeated correction is easier to describe as behavior than as a syntax pattern.

perch check reads working files; perch scan reads Git HEAD. Relevant source is sent to TypeSafe’s hosted models. The MIT CLI does not run model inference offline.

Run it locallyCheck uncommitted files
Keep the ruleVersion it with the code
Read each methodWithin the selected parsed scope
Pay for checksNo per-developer subscription

Catch the fix an agent removes later.

A saved requirement makes a recurring mistake checkable. In this Perch capture from September 20, 2026, the same rule flags a missing guard and passes after the guard is restored.

The regression

def refund(order, payment):
    payment.refund(order.total)
    order.status = "refunded"
    return order

1 check, 1 broken. Refunded orders cannot be refunded again.

The guarded method

def refund(order, payment):
    if order.status == "refunded":
        return order
    payment.refund(order.total)
    order.status = "refunded"
    return order

1 check, nothing to report.

Source: public order-service checkout.py at the linked commit. The captured standalone file is refund.py. Perch command output and timestamp. This saved-rule demonstration does not measure Semgrep Code's detection rate.

Perch vs Semgrep Code: what your team runs.

Perch turns project behavior into focused checks that agents can run before committing. Use these differences to choose the review workflow and billing model your team needs.

Published Perch capabilities and Semgrep Code documentation, reviewed 2026-10-14
CapabilityPerchSemgrep Code
Billing10¢ per 1,000 fresh rule checks. Cached checks free. No seat fees.Teams Code: $30/contributor/month. Free supports 10 repositories and 10 contributors.Vendor documentation ↗
Before commitperch check reads the files on disk, including uncommitted edits.Local and CI CLI with open CE and paid Pro analysis.Vendor documentation ↗
Custom requirementsEnglish ensure rules in perch.yaml: project, file or method scope. No paid custom-rule tier.YAML pattern, taint and custom-rule configuration.Vendor documentation ↗
CoverageEach parsed non-test application method in the selected scan scope is read, with caller and callee context. No method-count cap.CE scans within files; Pro adds cross-file analysis.Vendor documentation ↗
Open sourceMIT-licensed CLI. Hosted model analysis is a paid service.LGPL-2.1 CE engine; commercial Pro engine.Vendor documentation ↗

Semgrep comparison for English rules and semantic checks

Perch lets a developer write the intended behavior as an English ensure statement. A method check reads relevant caller and callee context, and the agent can rerun it immediately after editing. That workflow adds semantic requirements alongside pattern and taint rules.

Review before committing

Semgrep Code: Local and CI CLI with open CE and paid Pro analysis. Semgrep Code workflow documentation.

Perch reads the current working file with perch check. For a known requirement, select its rule name and method instead of requesting another broad review. A local CLI describes where the command runs; Perch sends relevant source to hosted TypeSafe models for analysis.

How do saved requirements differ?

Semgrep Code: YAML pattern, taint and custom-rule configuration. Semgrep Code rule documentation.

Perch stores English ensure rules in perch.yaml or .perch/rules/. Project, file and method scopes determine what is checked. Run the named check after an edit and after the repair; a rule finding can fail the command and a CI gate. Perch rules · Working-file checks.

What does the review bill depend on?

Compare Semgrep Code's billing unit and Perch's usage estimate

Is the CLI open source and offline?

Semgrep Code: LGPL-2.1 CE engine; commercial Pro engine. Semgrep Code product or license source.

Perch’s CLI is MIT-licensed; hosted model inference is a separate paid service included in its published check rate. It does not run the model offline. Unchanged requests can reuse cached answers for free. Fresh judgments can vary, and a passing requirement check does not prove application correctness. Perch MIT license.

When does Semgrep Code fit the workflow?

Semgrep offers pattern and taint rules through local and CI analysis. Its Community engine and paid Pro capabilities have distinct licenses and scopes; deterministic rules remain useful beside probabilistic semantic judgments.

Make the agent check its next edit.

Save a behavior rule

perch rules add refund-once \
  --where refund.py --each method \
  --ensure "Refunded orders cannot be refunded again."

The captured rule checks the requirement shown above. Rule syntax and selectors

Use perch scan for repository code at Git HEAD and changed-code CI checks for pull requests. New model judgments can vary. Repeatability comes from cached answers for unchanged requests; a pass does not prove application correctness.

Keep your project requirements checkable.

Choose Perch when you want an MIT CLI, English behavior rules and usage pricing that stays independent of team size. Give your coding agent a saved check it can run after every relevant edit.

Install Perch