cd /news/ai-tools/show-hn-jeff-a-read-only-cli-for-sem… · home topics ai-tools article
[ARTICLE · art-133983] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=· neutral

Show HN: Jeff – A read-only CLI for semantic code review using Jev

Alurith released Jeff, a read-only Go command-line tool that semantically checks code files against 20 rules via the Jev engine from TypeSafe, running locally or in CI. Jeff exposes rules GEN001 through GEN020 covering issues such as unclear responsibility, weak error handling, missing input validation, and difficult-to-test structures, and requires a TYPESAFE_API_KEY or a credential stored through "jeff auth login" in the operating system keyring. The CLI emits text or JSON output via --output-format and returns exit code 0 for all checks passed, 1 for a conclusive violation, and 2 for usage, configuration, input, provider, internal, or inconclusive results.

read3 min views2 publishedSep 18, 2026
Show HN: Jeff – A read-only CLI for semantic code review using Jev
Image: Michielbdejong (auto-discovered)

Catch code issues before they catch you.

A read-only Go CLI that semantically checks your files against your rules using Jev, locally or in CI.

jeff check [--output-format text|json] [--no-cache] [PATH...]

jeff auth login
jeff auth logout

Set TYPESAFE_API_KEY or store a credential with jeff auth login. Stored credentials use the operating system's keyring; jeff auth logout removes the saved credential.

Use TYPESAFE_BASE_URL to point to a compatible endpoint during testing.

Code Rule Description
GEN001 Unclear responsibility Finds files that mix unrelated responsibilities.
GEN002 Misleading naming Finds important names that do not match their behavior or purpose.
GEN003 Excessive responsibility Finds components responsible for too many distinct concerns.
GEN004 Low cohesion Finds unrelated concepts, data, or dependencies grouped together.
GEN005 Hidden side effects Finds significant side effects that are not apparent from the API.
GEN006 Weak error handling Finds errors that may be hidden, ignored, or handled unsafely.
GEN007 Poor error context Finds errors that lack useful diagnostic context.
GEN008 Missing input validation Finds external or untrusted input used without adequate validation.
GEN009 Implicit assumptions Finds important assumptions that are neither enforced nor documented.
GEN010 Unnecessary complexity Finds implementations that are more complex than necessary.
GEN011 Premature abstraction Finds abstractions that add complexity without a clear benefit.
GEN012 Inappropriate coupling Finds unnecessary coupling between distinct components or concerns.
GEN013 Abstraction leak Finds abstractions that expose implementation details to callers.
GEN014 Duplicated domain knowledge Finds the same business rule or domain knowledge represented in multiple places.
GEN015 Redundant comments Finds comments that restate code without adding useful information.
GEN016 Missing rationale Finds non-obvious behavior without an explanation of why it exists.
GEN017 Fragile control flow Finds control flow that is unnecessarily difficult to reason about.
GEN018 Invalid state representable Finds designs that make invalid or contradictory state easy to represent.
GEN019 Poor boundary separation Finds core logic mixed with infrastructure or external-system concerns.
GEN020 Difficult to test Finds structures that make important behavior unnecessarily difficult to test.

Jeff is designed for both interactive CLI use and automation:

  • text output highlights failed checks and prints a summary;
  • --output-format json emits structured results and errors for CI;
  • 0 means all applicable checks passed;
  • 1 means a conclusive check found a violation and no error occurred;
  • 2 means a usage, configuration, input, provider, internal, or inconclusive result.

Jev reference documentation is available in docs/references/jev.

── more in #ai-tools 4 stories · sorted by recency
── more on @jeff 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-jeff-a-read-…] indexed:0 read:3min 2026-09-18 ·