Back to browse
GitHub Repository

The first open-source GEO linter. 92 rules for SEO, GEO, and content quality — built for AI agents to run, read, fix, and re-lint automatically.

23 starsTypeScript

Geo-lint – Claude Code skill that auto-fixes SEO/GEO violations in loop

by ijonis·Mar 6, 2026·1 point·1 comment

AI Analysis

●●●BangerSolve My ProblemZero to One

First GEO linter (92 rules for AI search engines), deterministic analysis, agent auto-fix loop with zero hallucination.

Strengths
  • Novel category: GEO is real—AI search cite differently than Google ranks. This is the first tool to formalize it.
  • Deterministic rules mean agents get unambiguous violations + fix suggestions, eliminating hallucination in the fix loop.
  • Claude Code skill with parallel subagents scales to multi-file projects; works without AI in the analysis layer itself.
Weaknesses
  • Niche audience: only relevant if you publish content and care about AI search visibility (ChatGPT, Perplexity, Claude).
  • No benchmarks on whether GEO rules actually improve citation rates in real AI search engines—mostly theoretical alignment.
Target Audience

Content creators, technical writers, and marketing teams using Claude or AI agents for content production

Similar To

ESLint (code linting) · Prettier (code formatting)

Post Description

Hey HN, I built geo-lint — an open-source linter for content (Markdown/MDX) that checks 92 deterministic rules across SEO, GEO (Generative Engine Optimization), content quality, and technical issues.

GEO is the idea that AI search engines (ChatGPT, Perplexity, Claude) cite content differently than Google ranks it. Things like question-formatted headings, FAQ sections, entity density, E-E-A-T signals, and citation-ready statistics all matter for whether an LLM will pull from your content. geo-lint has 35 rules specifically for this.

The interesting part is the lint loop. It ships as a Claude Code skill — you run /geo-lint audit and it spawns parallel subagents, one per file. Each agent reads the violations, edits the content, re-lints, and repeats until clean (max 5 passes). The linter is fully deterministic (no LLM in the rules themselves), so the agent gets unambiguous violation + suggestion pairs to act on. Zero hallucination risk in the analysis layer.

It also works without Claude Code — npx geo-lint --format=json gives you a flat JSON array any agent (Cursor, Copilot, Windsurf) can consume. The rules are the same either way.

MIT licensed, zero runtime deps beyond gray-matter. npm: @ijonis/geo-lint

GitHub: https://github.com/IJONIS/geo-lint

Similar Projects

SaaS●●Solid

Potatometer – Check how visible your website is to AI search (GEO)

The Potatometer nails a fun, focused angle: deterministic SEO checks plus an explicit 'GEO / AI visibility' score and support for modern signals like llms.txt and schema detection. The site promises instant, prioritized fixes (code snippets and time estimates) and a playful 'Potato Scale' that actually helps frame results for non-SEO folks. That said, the real value will hinge on how accurately its checks map to actual LLM citation behavior — the landing page shows confidence but stops short of proof or case studies.

Niche GemSlickShip It
apswin
463mo ago