README.md

July 31, 2026 · View on GitHub

DispatchSEO logo

DispatchSEO

License: AGPL-3.0 Built for Claude Code and Codex Self-host in one command Join the Discord

Turn your AI agent into your SEO manager


DispatchSEO: an open-source alternative to SEObot and Outrank.

Works today with Claude Code and Codex - both first-class, including the unattended overnight builder.

Other SEO tools learn about your product by crawling your homepage. Your agent already knows it,
so DispatchSEO gives that agent the missing half: keyword research, content that ships as pull requests, and rank tracking.

Claude Code   Codex   MCP   GitHub   Google Search Console   Google   Docker


Install in one command   Read the docs   Watch the demo

Website  ·  Self-host on your computer  ·  Self-host on a VPS  ·  Discord  ·  Discussions  ·  Hosted version

Self-hosted has zero feature limitations. Everything the paid
cloud does, this repo does today, in your own accounts, at \$0.

DispatchSEO preview video - the dashboard, the queue, and a pipeline-built pull request, walked through end to end
▶ Watch the preview


⚡ How it works

  1. Your agent researches. Claude Code or Codex connects to DispatchSEO over MCP, reads the served playbook, and mines keywords from your Search Console data, Google Autocomplete, and what it already knows about your product. Ideas land in a queue with the reasoning attached.
  2. You approve, or don't. Each idea is a card on the dashboard: the keyword, why it's winnable, the angle. Approve, reject, or reorder. Prefer full autopilot? Flip on auto mode and skip the queue entirely.
  3. The pipeline builds. Every morning a scheduled job picks the oldest approved idea and builds it into a real pull request against your site's repo: a guide or a small free tool, checked against the live SERP and run through a sameness reviewer so page twelve doesn't read like page three.
  4. It tracks what happened. Daily rank checks, hourly Search Console snapshots, index verification, and a journey view that tells you which SEO stage you're actually in. When a scheduled job breaks, you get a red banner and an email instead of silence.

The backend is deliberately boring: state, scheduling, and an approval gate. The thinking happens in your agent, where your product knowledge already lives.

The dashboard Home: journey stage, publishing pace, and live Search Console stats for a connected site
The queue: keyword ideas with volume and difficulty, each waiting for approval or set to auto A pull request the pipeline built: target keyword, SERP gate verdict, archetype, and information-gain asset, all named in the description
Search traffic: clicks and impressions from Google Search Console, snapshotted hourly Keyword rankings: daily position checks with 30-day trend sparklines

🤖 Which coding agent

DispatchSEO talks to your agent over MCP, so "which agent" is a real question with a real answer — including the parts that aren't finished yet.

AgentConnect + every toolUnattended overnight builder
Claude Code
Codex
Cursor · Gemini CLI · Copilot · any MCP client

Connecting is one paste and gets you the whole tool set: research, the queue, approvals, backlinks, reports, and building a guide when you ask for one. The overnight builder is the separate thing — scheduled jobs that run an agent with nobody watching — and both Claude Code and Codex do that too. Every workflow carries both and asks the dashboard which to run, so switching agent takes effect on the next scheduled run with no repo change.

The honest difference is who pays: Claude Code runs on a subscription you already have, while Codex is metered by OpenAI per run.

docs/AGENTS.md has the details, the support tiers, and how to add an agent.

✅ What you need before you start

  • Your site's source in a GitHub repo. The pipeline ships content as pull requests, so git-based sites only - WordPress won't work.
  • A coding agent. Your agent is the engine. Claude Code runs on the Claude subscription you already pay for; Codex does everything Claude Code does here, including the overnight builder, but OpenAI meters it per run — see the table above.
  • A machine with Docker (~1 GB RAM). A laptop works for a test drive, but a machine that stays on is much better for daily use - a $5 VPS, a Raspberry Pi, a desktop that never sleeps. Schedules only run while the machine is awake.
  • Google Search Console access to your site.

That's the whole list. No API keys to buy, and no account on our side.

🚀 Quick start

Installing is one command on any machine with Docker. On a VPS, ssh in first and run it there instead of on your own computer. Run it from any plain folder (not inside your website's repo - it creates its own dispatchseo folder):

git clone https://github.com/NeoZi12/dispatchseo &&
  cd dispatchseo &&
  sh start.sh

On Windows, paste this version instead. It works in plain PowerShell (Git must be installed) and installs into your user folder no matter where the window opened:

cd ~; git clone https://github.com/NeoZi12/dispatchseo; cd dispatchseo; .\start.cmd

That one command really is the whole install: database, migrations, schedules, and a headless builder for your agent all come up together. Nothing on the internet needs to reach your machine, so there is no domain or port forwarding to set up.

When it finishes it prints your dashboard URL. Open it and the setup wizard takes over: name your site, connect Search Console, point it at your GitHub repo.

The last step is pasting one command into your coding agent inside your site's repo - the dashboard hands out the right one for whichever agent you picked. Your agent does the rest of the install itself, including writing its own workflow files and setting its own secrets.

Step-by-step walkthroughs, with screenshots: install on your computer · install on a VPS. The VPS guide also covers your own domain with automatic HTTPS.

Stuck? The troubleshooting page covers the errors people actually hit. If yours isn't there, ask in the Discord or in Discussions - questions get answered and usually turn into a docs fix.

📖 Documentation

Everything is at dispatchseo.com/docs - every page, every setting, every tool.

New hereWhat DispatchSEO is · How it works · Cloud or self-hosted
InstallYour own computer · A VPS · From source
Set upInstall Claude Code · Install Codex · The setup wizard · Search Console · Keyword data · Publishing · Connect your site
Use itDay to day · The dashboard · Automations · Agent commands
ReferenceConcepts · MCP tools · Environment variables · Schedules · Architecture
HelpTroubleshooting · Common questions · Security · Upgrading

Pointing an agent at this? Add .md to any docs URL for clean markdown, or fetch the entire documentation set in one request: llms-full.txt. There's an index at llms.txt and a SKILL.md that walks an agent through connecting a site.

🗓️ Using it day to day

Once the wizard is done, the loop is small on purpose:

WhenYou doIt does
Once a week, 5 minutesOpen the dashboard, work through the queue - approve, reject, reorderRefills the queue with researched ideas and the reasoning behind each one
Every morningNothingBuilds the oldest approved idea into a pull request on your repo
When a PR landsReview and merge (or let auto-merge do it)Logs the page, requests indexing, starts tracking its keyword
Whenever you wantAsk your agent: "research keywords for me", "what should I write next?", "how are we ranking?"Answers from live data over MCP - same state the dashboard shows

The dashboard's Home page always names the next action, so you don't have to work out what to do when you open it.

🧰 What's in the box

  • MCP server with the full tool set: the queue, keywords, rankings, pages, GSC stats, backlink prospects, trend topics, site profile. Anything the dashboard can do, your agent can do over MCP; parity between the two is a hard rule in this codebase.
  • Trend radar: scan for rising topics in your niche, expand a topic into concrete guide angles, and queue the good ones.
  • Guide and tool builders: guides publish at most one per day, flat and permanent (so a queue of thirty approved ideas doesn't become thirty posts in a week); free-tool ideas build on approval.
  • Backlink playbook: a prospect list prefilled with your product's copy, tracked per submission.
  • Multi-site: one deployment manages any number of sites. Each project gets its own MCP token, its own data, its own settings.
  • A password-gated dashboard for the one human in the loop.

💵 What it costs to run

Nothing, unless you want paid data. The tiers stack:

TierPriceWhat you get
Search Console only$0Rankings from GSC, keyword ideas from Autocomplete plus your own impression data
+ SerpApi free key$0Live SERP checks, real positions weekly (250 free searches/month)
+ DataForSEOpay per callSearch volume, keyword difficulty, domain rating

Free mode finds keywords you can win. Paid mode also knows which ones are worth winning.

☁️ Cloud version

There's a hosted version for people who'd rather not run a machine: we host it, bundle the SERP + volume data into one bill, and replace the Google service-account ritual with one click. It's at dispatchseo.com. Self-hosting stays feature-complete either way - the cloud sells convenience, not capability.

🧑‍💻 Developing from source

git clone https://github.com/NeoZi12/dispatchseo
cd dispatchseo
pnpm install
cp .env.local.example .env.local
pnpm dev

This is the contributor path, not the way to self-host (that's the Docker command above). Fill in .env.local (Supabase + the three secrets) before starting, then open the dashboard on localhost:3000.

pnpm build is the typecheck - run it before opening a PR. There is no separate lint or test setup.

🏗️ Architecture, briefly

Next.js App Router, Postgres for state (a bundled container when self-hosted, Supabase in the cloud version), mcp-handler for the MCP server at /api/mcp. Schedules and builds run in-stack (cron + builder containers) or on GitHub Actions. One deployment is multi-tenant: the MCP bearer token selects the project, crons loop over all projects, the dashboard switches with a cookie.

Architecture covers this properly. CLAUDE.md has the full conventions; it's written for agents, which turns out to make it decent documentation for people.

🤝 Contributing

Issues before PRs, and you must understand every line you submit, including the AI-assisted ones. Details in CONTRIBUTING.md. Questions go to Discussions or the Discord; vulnerabilities go through private reporting.

📄 License

AGPL-3.0. Use it, self-host it, fork it. If you run a modified version as a service, share the source. That's the whole deal.


Built by NeoZi12 · If DispatchSEO is useful to you, a ⭐ helps other people find it.