Skip to content
HN On Hacker News ↗

sem

▲ 175 points 60 comments by rohanucla 1mo ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully AI-generated

96 %

AI likelihood · overall

AI
0% human-written 100% AI-generated
SEGMENTS · HUMAN 0 of 3
SEGMENTS · AI 3 of 3
WORD COUNT 520
PEAK AI % 98% · §1
Analyzed
Jun 6
backend: pangram/v3.3
Segments scanned
3 windows
avg 173 words each
Distribution
0 / 100%
human / AI fraction
Verdict
AI
Pangram v3.3

Article text · 520 words · 3 segments analyzed

Human AI-generated
§1 AI · 98%

Know what changed. Semantic understanding on top of Git. Diff, blame, impact, log. Functions, not lines. copied $ brew install sem-cli

~/project

Same commit. Different lens. Left: what git shows you. Right: what actually happened.

git diff diff --git a/src/auth/login.ts b/src/auth/login.ts index 4a2b1c0..8f3d2e1 100644 --- a/src/auth/login.ts +++ b/src/auth/login.ts @@ -12,6 +12,18 @@ +export function validateToken(token: string) { + const decoded = jwt.verify(token, SECRET); + if (!decoded.exp || decoded.exp < Date.now()) { + throw new TokenExpiredError(); + } + return decoded; +} + @@ -24,8 +36,10 @@ export async function authenticateUser( - const user = await db.findUser(email); - if (!user) return null; + const user = await db.findUser(email); + if (!user) throw new UserNotFoundError(); + await rateLimiter.check(email); @@ -45,12 +59,0 @@ -export function legacyAuth(user, pass) { - return db.query('SELECT * FROM users - WHERE email = ? AND password = ?', - [user, pass]); -}

sem diff ┌─ src/auth/login.ts ──────────────── │ │ ⊕ function validateToken [added] │ ∆ function authenticateUser [modified] │ ⊖ function legacyAuth [deleted] │ └────────────────────────────────────

3 entities changed across 1 file

AI agents are 2.3x more accurate when given sem output vs raw line diffs. See the benchmark.

Six commands.

§2 AI · 98%

One binary. Everything works in any Git repo. No config. No plugins.

sem diff What changed? Entity-level diffs with rename detection, structural hashing, and word-level inline highlights. │ ⊕ function validateToken [added] │ ∆ function authenticateUser [modified] │ ⊖ function legacyAuth [deleted]

sem blame Who changed it? Per-entity blame showing the last commit that touched each function, class, or method. │ ⊕ render_inline_diff a1a6fbf Rohan 04-03 │ ⊕ format_terminal a1a6fbf Rohan 04-03

sem impact What breaks? Cross-file dependency graph shows every entity that depends on a given function, plus affected tests. ⊕ function authenticateUser → depends on: db.findUser, rateLimiter ← used by: loginRoute, authMiddleware ! 42 entities transitively affected

sem log How did it evolve? Git history for a single entity. See every commit that touched a specific function. │ ae576ab Rohan 02-05 added │ a105183 Rohan 02-08 modified (logic) │ a1a6fbf Rohan 04-03 modified (logic)

sem entities What's under a path? Lists every function, class, method, and type with line ranges. entities: src/auth/login.ts function validateToken (L12:24) function authenticateUser (L26:45) interface AuthConfig (L47:52)

sem context Smart context for AI. Token-budgeted context window: the entity, its dependencies, and dependents.

§3 AI · 91%

Fits in any LLM prompt. context for authenticateUser (budget: 8000) target: ~705 tokens dependencies: ~256 tokens dependents: ~812 tokens

All commands support --json for machine-readable output. Full reference.

Your stack. Covered. 26 languages. 5 data formats. One binary.

TypeScript JavaScript Python Go Rust Java C C++ C# Ruby PHP Swift Kotlin Elixir Bash HCL Fortran Vue Svelte XML ERB Dart Perl OCaml Scala Zig JSON YAML TOML CSV Markdown

8ms typical diff 26 languages 0 config needed 4,000+ downloads

Try it. 10 seconds. $ brew install sem-cli $ sem setup ✓ Created wrapper script ✓ Set git config --global diff.external = sem ✓ Pre-commit hook installed

Done! Running git diff in any repo will now use sem. To revert, run: sem unsetup One command. Every git diff becomes a sem diff. No config files. Also: cargo install --git https://github.com/Ataraxy-Labs/sem sem-cli