New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@lakeday/perch

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lakeday/perch

Semantic code linting with Jev

latest
Source
npmnpm
Version
0.4.3
Version published
Maintainers
1
Created
Source

perch

npm ci node license perch

perchscan.com  ·  docs  ·  benchmarks  ·  Discord

Semantic code linting with decision models.

Writing a rule, and perch catching this README with it

Getting started

npm install -g @lakeday/perch
perch login
perch scan

Run perch login to sign in to Perch Cloud. The first $5 is free. Since decisions are cached, running perch again on unchanged code is free. Perch Cloud also scans pull requests in CI, without writing any workflows.

$ perch scan
checkout.py
  ID        Line  Severity  Type    Confidence  Problem                     Method
  bdc67421    14  P1 (0.8)  defect         81%  wrong_order                 place_order
  ddc5c917    24  P1 (0.8)  defect         92%  inverted_condition          can_fulfil

cart.py
  ID        Line  Severity  Type    Confidence  Problem             Method
  287bfb9d     9  P1 (1.0)  defect         90%  off_by_one          subtotal
  80d6ebbb    29  P1 (1.4)  defect         89%  unhandled_null      cheapest

✖ 20 problems in 5 files, all failing

Run perch issues to see them worst first, and perch issues <id> to view one.

perch check <id> asks again after you think you've fixed it. It doesn't record anything.

Agent skills

perch setup claude-code   # .claude/skills/perch/SKILL.md
perch setup codex         # .codex/skills/perch/SKILL.md
perch setup pi            # .pi/skills/perch/SKILL.md
perch setup cursor        # .cursor/rules/perch.mdc

Semantic linting

You can extend perch with your own linting rules by adding them to perch.yaml:

- name: private-logs
  where: "src/**/*.ts"
  each: method
  ensure: >
    Keep passwords and access tokens out of logs.

Models

By default, Perch Cloud routes your questions to the best model for answering them. To ask a specific decision model, override the endpoint, key, and model:

export PERCH_BASE_URL=https://api.typesafe.ai/v1/systemone
export PERCH_API_KEY='paste-your-TypeSafe-key-here'
export PERCH_MODEL_ID=jev-latest
ModelPERCH_BASE_URLPERCH_MODEL_ID
Jevhttps://api.typesafe.ai/v1/systemonejev-latest
Liquid AI d1https://api.liquid.ai/decisions/v1/systemoned1:free
OpenAI gpt-6-lunahttps://api.openai.com/v1/decisionsgpt-6-luna
DiffusionGemma Jev on Beamhttps://app.beam.cloud/v1/models/jev/diffusiongemma/invokejev/diffusiongemma
SemiF on Beamhttps://app.beam.cloud/v1/models/jev/semif/invokejev/semif

Any endpoint that supports the System One format will work, and so does OpenAI's Decisions API: perch recognizes a PERCH_BASE_URL ending in /decisions and reads its key from OPENAI_API_KEY when PERCH_API_KEY is not set. Each model gets as many questions per request as it says it takes. For a model that doesn't say, set PERCH_MAX_QUESTIONS. See the benchmarks for a comparison.

Documentation

Getting startedInstall, sign in, the first scan.
Reading issuesThe list, the filters, closing what does not matter.
Semantic lintingwhere, each, sees, min, gate, and the longhand grammar.
Checking a changeperch check on work in progress.
perch in CIWhat a build can gate on, and what it cannot.
Command referenceEvery command, its flags, and what each exit code means.
Inside a scanThe graph walk, the questions, and how probabilities turn into a ranking.

Perch files

LocationContents
.perch/Generated scan results and cache files, alongside the committed files below. Use --out <directory> to choose another results location.
.perch/rules/Custom rules split across .yaml and .yml files. Commit these files.
.perch/closed.jsonlDismissed findings and their reasons. Commit this file.
perch.yamlCustom rules. Updated by perch rules add, edit, and remove.
.claude/, .codex/, .pi/, .cursor/Instructions installed for the selected assistant by perch setup <assistant>.

Development

npm run check     # lint, typecheck, test
npm run build     # bundle src/cli.js into dist/cli.mjs

To install perch from a checkout, run npm install && npm run build && npm link.

FAQs

Package last updated on 11 Oct 2026

Related posts