Getting started

One command to the first result. Node 22.18 or newer; nothing to sign up for.

Scan a URL

npx geopilot scan https://www.example.com

GEO fetches /robots.txt first and respects it for its own user agent, reads the sitemap, and crawls same-origin pages through server HTML (25 pages, depth 3 by default). Private and local addresses are only fetched when you name them yourself.

Scan a repository

cd my-next-app
npx geopilot scan .

On a Next.js App Router or static HTML repository, findings carry a source location and a provenance level. Without a URL, rules whose HTTP sub-checks cannot run are not_evaluated, so the display is usually insufficient evidence. That is by design: a repository-only scan finds and traces problems; it does not claim readiness.

Both: the strongest evidence

pnpm next dev --port 3000 &
npx geopilot scan . --url http://127.0.0.1:3000

Configure the facts GEO will never guess

npx geopilot init --origin https://www.example.com --language en

init previews geo.config.json and writes it only after you approve. GEO never infers your origin, language, crawler policy or app identifiers; canonical checks and origin-dependent fixes stay unavailable until you declare them.

Fix

npx geopilot fix                       # dry run: diffs, preconditions, required verification
npx geopilot fix --apply               # safe fixes
npx geopilot fix --apply --approve G1-b75653d6 --serve

Guarded fixes need their own id; --yes never approves one. Fixes that require runtime verification (V4) are reported as applied_unverified (exit 6) unless GEO starts your dev server itself after the write — see Fixes & verification. Every apply can be undone with geopilot fix --rollback <runId>.

Use it from your agent

/plugin install geopilot --marketplace moelzanaty3/geopilot

Then run /geopilot:scan in Claude Code. It reads your code on any framework, with no package install or running site, and gives you a code score and the fixes to do first. For GitHub Copilot CLI, OpenCode, OpenAI Codex and team installs, see Agent plugins.

In CI

npx geopilot@0 scan https://preview.example.com --format markdown --output geo.md --fail-on high

Gates are opt-in: nothing fails unless you pass a threshold. An unreachable target exits 0 with an incomplete assessment unless you add --fail-on-incomplete (exit 4).