Native SEO audits for OpenCode V2.
A community fork of Claude SEO by Agrici Daniel.
What this is · Origin · What we added · Install · What is inside · Verification · Extensions
OpenCode SEO is a community fork of Claude SEO, rebuilt for OpenCode V2. It keeps the original 26 sub-skills and 19 specialist agents, plus the Python tooling, references and safety checks. The OpenCode layer is new: native skills, agents, slash commands, a local plugin, background subagents, permissions and MCP configuration.
OpenCode is the primary target. Claude Code and other harnesses remain supported through the canonical skills/, agents/, hooks/, CLAUDE.md and AGENTS.md layout.
This repository is not the upstream project. It is maintained by MADEVAL.
| Repository | |
|---|---|
| This fork | MADEVAL/opencode-seo |
| Upstream | AgriciDaniel/claude-seo |
| License | MIT, inherited from upstream |
- Original project: Claude SEO by Agrici Daniel, MIT licensed. The SEO methodology, skill bodies, agents, references, Python scripts, schemas and safety rules come from that project.
- This fork: the OpenCode V2 adaptation. It adds the generated
.opencode/target, native commands, a local plugin, an OpenCode installer, an extension installer, MCP wiring, background subagent orchestration and a separate OpenCode test surface. - Canonical layer:
skills/,agents/,hooks/,CLAUDE.mdand.claude-plugin/stay in the repository so Claude Code and other harnesses keep working. - Upstream demos and results: videos, screenshots, star history and marketing material from the original project are not copied here as claims about this fork.
- 26 skills in
.opencode/skills, with OpenCode frontmatter and relative reference paths. - 19 agents in
.opencode/agents, usingmode: subagent,stepsand orderedpermissions. Agents inherit the session model instead of pinning Anthropic models. - 35 commands under
.opencode/commands, including/seo,/seo/audit,/seo/page,/seo/technical,/seo/schema,/seo/sitemap,/seo/geo,/seo/local,/seo/maps,/seo/google,/seo/drift,/seo/setupand extension commands. - Local plugin
opencode-seowith theseotool for the managed Python runtime (run,setup,doctor,path,read), anexecute.afterJSON-LD validation hook, cached interpreter/doctor probes in plugin storage, and a prompt hook that routes a bareseo <subcommand>prompt to the matching skill. - Native image generation option:
/seo image-genuses OpenCode'simage_generatetool when available. The banana extension (Gemini via nanobanana-mcp) remains a fully supported alternative for exact aspect presets, 2K/4K output, thinking level, and multi-image references. - Task tracking and delegation limits:
experimental.todofor multi-step audits andexperimental.subagent_depth: 1so specialists cannot fan out further. - Background subagent protocol for audits: launch independent specialists together, collect reports as they arrive, keep partial findings, and fall back to inline work when a child cannot start.
install-opencode.shandinstall-opencode.ps1install skills, agents, commands, plugin and the isolated Python runtime.extensions/install-opencode.shandextensions/install-opencode.ps1install extension skills, agents andmcp.serversentries.- OpenCode credentials use
~/.config/opencode-seoand caches use~/.cache/opencode-seo. Existing Claude files are read as a fallback, so an upgrade does not lose Google, Matomo, Moz, Bing or Common Crawl credentials. - The
seotool usesctx.location.directory, so worktrees, moved sessions and multi-location servers write audit artifacts to the right project. - Permission denials propagate as
Tool.Errorinstead of being returned as ordinary tool output.
- Windows credential files get an explicit current-user ACL grant before inheritance is removed.
- Matomo is treated as a REST API, not an MCP server.
- Extension commands tell the user which extension to install when its skill is missing.
- The generator has regression checks for
seo run run, legacy credential paths, vendor-matrix content and cross-skill references. - The full test suite covers 2372 passing tests, with 33 platform-specific skips on this Windows machine.
- OpenCode V2. This fork is verified on OpenCode 2.2.7.
- Python 3.11 to 3.14.
- Node.js 20 or newer only when you install an MCP extension.
- Git when you clone the repository.
git clone https://github.com/MADEVAL/opencode-seo.git
cd opencode-seo
./install-opencode.shgit clone https://github.com/MADEVAL/opencode-seo.git
cd opencode-seo
.\install-opencode.ps1Set OPENCODE_CONFIG_DIR to install somewhere other than ~/.config/opencode:
OPENCODE_CONFIG_DIR=/opt/opencode ./install-opencode.sh --no-setupThen use:
/seo
/seo/audit https://example.com
/seo/page https://example.com
/seo/technical https://example.com
@seo
opencode plugin list
opencode debug agents
opencode debug config
opencode mcp listExpected on a clean install:
opencode-seoappears inopencode plugin list;- 19
seo-*agents appear inopencode debug agents; - 26 skills are discovered under
.opencode/skillsor~/.config/opencode/skills; /seoand/seo/auditare available in the command list.
If the runtime is not ready yet:
/seo setup
Or run:
python ~/.config/opencode/opencode-seo/scripts/runtime.py setupThe original Claude Code installation paths still work:
git clone https://github.com/MADEVAL/opencode-seo.git
bash opencode-seo/install.shClaude Code reads CLAUDE.md, skills/, agents/, hooks/ and .claude-plugin/. Cursor, Codex, Cline, Aider and Antigravity read AGENTS.md and skills/. The upstream Claude Code marketplace install is documented by the original project.
| Component | Count | Location |
|---|---|---|
| SEO skills | 26 | skills/, generated to .opencode/skills/ |
| Specialist agents | 19 | agents/, generated to .opencode/agents/ |
| OpenCode commands | 35 | .opencode/commands/ |
| Python scripts | 68 | scripts/ |
| Extensions | 9 | extensions/ |
| Tests | 2372 passing | tests/ |
The skills cover technical SEO, Core Web Vitals, E-E-A-T and content quality, Schema.org, sitemaps, image SEO, GEO and AI search, local SEO, maps, backlinks, Google APIs, e-commerce, international SEO, drift monitoring, content clustering, SXO, programmatic SEO, competitor pages, the FLOW framework and agent readiness.
- Load the skill.
/seo/auditloadsseo-auditand the mainseorouter. - Render and crawl. The runtime fetches pages with SSRF protection and uses Playwright when a page needs JavaScript.
- Launch specialists. The orchestrator starts technical, content, schema and other relevant agents with the
subagenttool. Children run in the background. - Merge findings. Each specialist writes partial findings under
{domain}-audit/findings/. - Report. The parent merges the evidence into a scored report, an action plan and optional PDF or JSON artifacts.
Reports stay on your machine. Optional extensions can call third-party APIs when you provide your own credentials.
Run the same checks locally:
python scripts/build_opencode.py --check
.venv/Scripts/python.exe -m pytest tests -q
opencode plugin list
opencode debug agents
opencode mcp listLast verification in this repository:
python scripts/build_opencode.py --check
OpenCode target is up to date.
.venv\Scripts\python.exe -m pytest tests -q
2372 passed, 33 skipped
opencode plugin list
opencode-seo local
opencode debug agents
19 seo-* agents, mode: subagent
opencode debug config
permissions and subagent_depth present, no duplicate instructions
opencode mcp list
No MCP servers configured
The seo tool was also exercised directly through the bundled plugin harness:
path: D:/_DEV/_SKILLS/opencode-seo
run-status: 200 title: Example Domain
read-bytes: 10015
permission-propagated: true
hooks: execute.after
hook-result: schema validation placeholder warning
- OpenCode: native target, verified on 2.2.7.
- Claude Code: canonical layer retained, not removed.
- Other harnesses:
AGENTS.mdandskills/remain readable. - Models: OpenCode agents inherit the session model. Claude agents keep the original model presets.
- Runtime: Python 3.11 to 3.14.
seo setupcreates an isolated environment and does not install packages globally. - Network: Core Web Vitals are lab estimates when Google API credentials are not configured. Indexing data is inferred from the page.
- Extensions: optional. The core audit works without them.
Optional add-ons, installed separately:
- DataForSEO: live SERP, keyword, backlink and business data.
- Firecrawl: full-site crawling and site maps.
- Banana: AI image generation for SEO assets.
- Ahrefs: backlink and keyword data.
- SE Ranking: AI share of voice.
- Profound: LLM citation tracking.
- Bing Webmaster: Bing data and IndexNow submission.
- Matomo: self-hosted analytics reports.
- Unlighthouse: multi-page Lighthouse audits.
./extensions/install-opencode.sh dataforseo --username me@example.com --password secret
./extensions/install-opencode.sh firecrawl --key fc-...
./extensions/install-opencode.sh matomo --url https://analytics.example.com --key token --site-id 1See docs/OPENCODE-MCP.md for MCP details.
skills/ Canonical portable skills, Claude compatible
agents/ Canonical Claude-compatible agents
hooks/ Claude hooks plus the shared schema validator
.claude-plugin/ Claude plugin manifest
.opencode/ Generated OpenCode target, committed
opencode/ OpenCode command and plugin sources
scripts/ Python runtime, installers and tooling
extensions/ Optional MCP and data extensions
docs/ Installation, MCP, commands, architecture and port notes
tests/ Full test suite
Regenerate the OpenCode target after changing canonical skills or agents:
python scripts/build_opencode.py
python scripts/build_opencode.py --check- OpenCode installation
- OpenCode MCP and extensions
- Commands
- Architecture
- Troubleshooting
- Port plan and verification
- Security
- Privacy
- Contributors
- Upstream author: Agrici Daniel, creator of Claude SEO.
- Fork maintenance: MADEVAL, OpenCode V2 adaptation.
- Community contributions: see CONTRIBUTORS.md.
- License: MIT. See LICENSE.
Contributions are welcome. Read CONTRIBUTING.md first and include the checks you ran in your pull request.