Free Rust SEO and GEO toolkit powered by TypeSafe Jev: 58-rule audits, site crawls, AI citation checks, rank drift, CI gates, 15-tool MCP. Zero cost.
# Add to your Claude Code skills
git clone https://github.com/AkashPriyadarshii/jev-seoLast scanned: 9/25/2026
{
"issues": [
{
"file": "CLAUDE.md",
"line": 17,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-09-25T09:26:16.243Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how jev-seo compares with popular alternatives.
jev-seo is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by AkashPriyadarshii. Free Rust SEO and GEO toolkit powered by TypeSafe Jev: 58-rule audits, site crawls, AI citation checks, rank drift, CI gates, 15-tool MCP. Zero cost. It has 96 GitHub stars.
Yes. jev-seo passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/AkashPriyadarshii/jev-seo" and add it to your Claude Code skills directory (see the Installation section above). jev-seo ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
jev-seo is primarily written in Rust. It is open-source under AkashPriyadarshii on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh jev-seo against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Run the binary. Prefer JSON output when chaining commands. Never invent scores; every number below comes from a command.
jev-seo crawl <url> --max-pages 50 then jev-seo llms <domain>.jev-seo gsc auth, then jev-seo gsc query --site <url> for free Search Console clicks and positions.jev-seo audit docs/ --min-pass 60 --html report.html --pdf report.pdf --md report.md.jev-seo geo <file> --query "<query>", jev-seo robots <domain>, jev-seo schema <file>, jev-seo sitemap <url>.jev-seo link docs/ --limit 10 suggests one contextual target per page, or no_link.jev-seo doctor.Health, Score, and Grade lines are deterministic 0-100 values with A-F grades.Top Actions are ranked by impact with effort bands; ids like RULE-R01 map to the rule registry (R01-R64) in src/rules.rs.check + verify, .jev-seo/policy.toml, regional --country/--language/--device, GSC inspect/winners/losers, bing sites/queries, --sarif/--junit, R59-R64, citation struct, seo_index, 4 new MCP tools (19 total), jev:// resources, evidence snapshots. Portable manifest (plugin.json + mcp.json + .app.json), annotated tools, bundled skills/jev-audit/SKILL.md, bridge GET /health. New in v0.3.0 (2 Oct 2026): serve, capabilities --json, watch --diff-only, fix-plan, crawl sitemap seeding (closes #3), R32/R08/R56 breadth, JS feature gate, GEO trends with sparkline SVG, offline --rescore. v0.1.2 shipped 26 Sep: explain, report --baseline, crawl --vitals, query --provider dfs, seo_cite_check, seo_gap, keyless GEO, drift gates.insufficient_context, Flags print the runner-up, every fan-out appends to ~/.jev-seo/eval.jsonl. Question version rides the spend line.Completeness says what was skipped (caps, missing sitemap, missing robots). A capped crawl is a sample, not a verdict.Needs review marks Jev answers below the confidence bar. Treat those lines as unverified.--json keeps stdout machine-clean; progress goes to stderr.Run it over stdio: npx -y @akashpriyadarshii/jev-seo (or jev-seo mcp with a local build). Client config:
{ "mcpServers": { "jev-seo": { "command": "npx", "args": ["-y", "@akashpriyadarshii/jev-seo"] } } }
No local build? Set JEV_SEO_BIN=/path/to/jev-seo and the wrapper uses it instead of downloading. First npx run needs network for the one-time download; musl/Alpine systems cannot run the glibc builds and must use JEV_SEO_BIN with a local cargo build.
seo_cite_check reports whether an AI answer names the target domain. Three paths, first one that works wins: pass answer to score your own words (works everywhere); omit it and sampling-capable clients answer via sampling/createMessage; otherwise you get needs_answer: true plus the prompt, answer it naturally as you would a user, and re-call with answer. Result fields: cited (bool), since_last (previous verdict or null), source (answer/sampling/engine), excerpt (300 chars).
Agentic loop: seo_gap ranks the Search Console queue (needs site auth once via gsc auth); work it top down; seo_cite_check each query; seo_report surfaces drift alerts (citation lost/gained, geo drops). seo_geo scores keyless without any key; TYPESAFE_API_KEY upgrades it to Jev judgment. Paid engines (Perplexity, OpenRouter, Ollama) plug in via JEV_SEO_LLM_KEY + JEV_SEO_LLM_MODEL (+ optional JEV_SEO_LLM_URL) and answer cite checks server-side. Deploy gate: drift baseline --report audit.json --label v1 before a change, drift compare --report new.json --label v1 after. One-file handoff: audit --digest digest.md, canonical close: bundle audit.json --out bundle.md.
audit --min-pass or crawl health deltas via --diff, not vibes. --fail-on blocking (default) fails only on deterministic rules; judgment calls warn. --forbid names non-negotiables.--csv for spreadsheets; rebuild past runs with --rescore, no spend.TYPESAFE_API_KEY. Without it the tool still runs; semantic sections report local-only output.--max-pages deliberately.jev-seo capabilities --json reports {version, rule_set, rules, mcp_tools, mcp_tool_names[], commands[]}. This is the machine source of truth. Do not parse counts from the README.
jev-seo serve --addr 0.0.0.0:8787 exposes Streamable HTTP at POST /mcp plus GET /plugin.json and /extensions/* for ChatGPT Plugin Extensions.
jev-seo audit docs/ --json > audit.json && jev-seo fix-plan audit.json --json: deterministic rule to patch to verify per finding (fact or heuristic, confidence capped), sorted blocking first. One hint per finding. Verify with jev-seo audit <file> --json | jq '.findings | no RULE-Rxx'.
jev-seo watch docs/ --once --no-jev or jev-seo watch https://example.com --once --json; loop mode jev-seo watch docs/ --every 30. Compares against watch-<slug> sqlite baseline, emits clean|regressed|improved|baseline with delta, blocking counts, drift alerts. Polling, not inotify.
title: "jev-seo: Free Rust SEO & GEO CLI + MCP for Devs and Agents" description: "Free Rust SEO and GEO toolkit powered by TypeSafe Jev: 64-rule audits, site crawls, AI citation checks, rank drift, CI gates, 19-tool MCP. Zero cost." canonical: "https://github.com/AkashPriyadarshii/jev-seo" image: "https://github.com/AkashPriyadarshii/jev-seo/raw/master/docs/assets/banner.png" author: "Akash Priyadarshi" license: "MIT" language: "en" topic: "developer-tools" tags:
What is jev-seo? It is a free, open-source SEO and GEO command-line tool written in Rust. You install one binary from crates.io or a release archive. It audits local content and live sites under 64 stable rules, scores pages for AI answer-engine citation with TypeSafe AI Jev, stores rank history in local SQLite, gates CI on blocking rules, and exposes 19 MCP tools so coding agents can run the same checks. The free path uses DuckDuckGo and local files only. Optional paid backends stay off until you pass a flag and key.
Who is it for? Developers, indie hackers, technical writers, and autonomous coding agents (Claude Code, Gemini CLI, Cursor, Antigravity) who need SEO evidence without a $130/month dashboard seat.
What does it cost? Rules, crawls, reports, rank history: free. Jev semantic calls: fractions of a cent under --jev-budget (default $0.25 per run).
jev-seo is a single static Rust binary for developers who refuse a $130/month SEO seat. It audits local Markdown and HTML trees under 64 stable rules, crawls live hosts with robots.txt honored, scores pages for answer-engine citation with TypeSafe AI Jev typed primitives, tracks rank drift in a local SQLite file, and exposes the same surface as a 19-tool stdio MCP server. Free search data comes from DuckDuckGo. Semantic scores sit behind --jev-budget (default $0.25 per run). Paid backends never fire without an explicit flag and key.
One command proves the pitch:
$ jev-seo explain R19
R19 | content | Medium | advisory (warning only) | effort 2 (about a day)
title: AI slop markers
fix: Rewrite flagged boilerplate in plain words.
$ jev-seo audit docs/ --min-pass 40 && echo gate_ok
gate_ok
Trust strip: battle-tested numbers
<img src="do