What is this?
Perch is a command-line semantic code linter that scans a codebase for real issues using Decision Models, rather than plain syntax rules, and ranks what it finds worst-first.
Is this a CLI tool or does it work from inside my editor?
It is primarily a CLI tool (perch issues, perch check), but it also installs 'agent skills' so coding assistants like Claude Code, Codex, Cursor and pi can use it directly.
How do I get it running?
Create an API key at console.typesafe.ai, set it as the PERCHAPIKEY environment variable, then run perch issues to see your first scan results.
Do I need an API key before I can scan anything?
Yes, perch calls a hosted service and requires a PERCHAPIKEY generated from console.typesafe.ai before it can run.
Is the ranking of issues a fixed rule check, or more of a judgment call?
Scans work by walking a graph of questions and turning probabilities into a ranking, so results are closer to a weighted judgment than a deterministic rule match.
What is the difference between perch issues and perch check?
perch issues lists all findings worst-first and lets you open one; perch check re-scans work in progress after a fix and records what it still finds.
What does .perch/closed.jsonl store?
It records findings you dismissed along with the reasons you gave, and is meant to be committed alongside your rules.
Which coding agents can perch integrate with?
perch setup installs instructions into .claude/, .codex/, .pi/, or .cursor/ folders, covering Claude Code, Codex, pi, and Cursor.
What are similar projects?
openqodex, jevlint, knip, jev-code-reviewer, ast-grep, oc, GitNexus, react-doctor
Which topics is it in?
tree-sitter, code-analysis, linter, devtools, code-quality, code-review, static-analysis, ci, cli-tool, cursor, command-line, agent-skills