An open-source, self-hosted autonomous SEO engineer. It crawls your site, connects to Search Console, finds what's broken across 425 checks — and then writes the fix into WordPress, Shopify, your Git repo, or the edge. As a diff you can read and revert.
Free forever, self-hosted. No account, no credit card, no telemetry until you say yes.
$ npx agentsean ? What site should Sean work on? https://acme.example ? Where does it live? WordPress ? Connect Search Console? yes → opened 127.0.0.1:7777/connect Crawling acme.example ············· 80 pages · 6s Running 425 checks ············· 14 findings · score 62 critical ONP.TITLE_TOO_SHORT Homepage title is 12 characters high IMG.ALT_MISSING 31 images without alt text high LINK.BROKEN_INTERNAL 4 internal links return 404 …10 more ✓ Sean is watching. 7-day observe window, then it starts fixing. Dashboard http://127.0.0.1:7777 Survive reboot sean service install Stop everything sean freeze
Reports are cheap. The gap in every SEO tool is that a human still has to go and do the work. Sean closes that gap, safely.
A polite, JS-capable crawler with adaptive rendering, RFC 9309 robots.txt handling, sitemap discovery, and incremental re-crawls. Plus Search Console, Analytics, PageSpeed, and CrUX every day.
Prioritization is a published formula, not a vibe. The LLM is used only for narrow judgement calls, it never holds a credential, and it never calls a write API. It emits typed actions that deterministic code validates.
Snapshot, apply, then re-fetch the live page to confirm it actually landed. If it didn't, Sean rolls back on its own. Every change keeps its before-state and a one-command revert.
sean freezeBecause the fixes evaporate the day you cancel, and the technique sits uncomfortably close to cloaking.
| Report-only tools | Proxy "auto-fix" tools | Agent Sean | |
|---|---|---|---|
| Finds issues | Yes | Yes | Yes |
| Writes the fix | No | At a JS proxy | Into your source of truth |
| Fix survives cancellation | — | No | Yes |
| Reviewable diff | — | No | Yes |
| One-click revert | — | — | With a stored snapshot |
| Self-hostable | Sometimes | No | Entirely |
| Your data stays on your machine | No | No | Yes — local-first, BYOK |
A crawling agent's entire input diet is written by people with a financial interest in you ranking worse — and that agent holds keys to your website. Everything below follows from that.
Analysis sees third-party bytes but has no credentials. Planning has neither. Execution has credentials but never sees raw page content. The separation is structural, not a policy.
No action may contain a URL or domain whose first appearance was inside third-party content. One deterministic rule that kills canonical injection, attacker redirects, hreflang poisoning, and disavow attacks.
Binds 127.0.0.1:7777. Host-header allowlist, Origin and Sec-Fetch-Site checks, CSRF header, constant-time token compare, CORS headers stripped. Auth cannot be turned off.
Hidden text, Unicode tag blocks, bidi overrides, base64 and HTML-entity payloads, X-AI header injection, off-site canonicals, JSON-LD hijacks. Adding a payload that gets through is a build failure.
robots.txt, noindex, redirects, canonicals, page deletion, outreach email, disavow files. Not a setting. The constraint is Google's policies and the EU AI Act, not our caution.
Every adapter implements the same six methods, and verify always re-fetches the live page. The API saying "ok" is not evidence.
| Surface | How Sean writes | Rollback |
|---|---|---|
| WordPress | Companion plugin + Application Passwords. Understands Yoast, Rank Math, AIOSEO, SEOPress. | Revision restore |
| Shopify | Admin GraphQL SEO fields and metafields. Theme writes refused. | Field restore |
| Next.js / any Git repo | A branch, a commit, and a pull request you read before merging. | git revert |
| Squarespace · Framer · Duda | Cloudflare Worker overlay. Never branches on user-agent. | Overlay removal |
| Webflow · Ghost · Wix · BigCommerce | Native SEO APIs | Field restore |
| Contentful · Sanity · Strapi · Payload | Generic headless adapter | Field restore |
Self-hosting is not a crippled tier. It is the whole product, and it is free forever. Cloud exists because not everyone wants to run a daemon.
The complete product on your own machine.
We run the daemon, handle Google OAuth, and keep the lights on.
For agencies and teams with procurement, and for regulated estates.
All plans are bring-your-own-LLM-key. That is what keeps the price honest — you pay the model provider directly, at cost.
sean audit runs the full 425-check audit with no daemon, no account, and no
credentials. If it isn't useful, you have lost ninety seconds.
Cloud accounts are opening in batches — join the discussion to get an invite, or talk to us about Enterprise.
OpenSEO proved an open-source SEO platform could work. Agent Sean is the execution layer that writes reversible diffs to your actual site — not a fork of OpenSEO, and not a report that stops at the finding. Selected OpenSEO modules are ported under MIT with attribution.
The core is AGPL-3.0 — a real OSI-approved licence, not a source-available substitute. You can self-host, modify, and redistribute. The network-use clause is what prevents unlicensed resale. The 66k-word engineering plan and the 3 MB of research behind it are published in the repo.