Specter for Ghost

Edit your whole Ghost blog with AI, in your browser.

Connect your Ghost blog in the browser and your whole archive opens as clean, structured content. Run AI recipes across every post at once, review each change as a diff, and Specter publishes back over the Ghost Admin API.

Ghost 5.x · self-hosted or Ghost(Pro) · nothing to install · browsing & diffs are free · workspaces open with 500 free credits.

Also for: WordPress →  ·  Shopify →  ·  Webflow →

Specter webapp showing an active Ghost connection with an AI recipe diff ready to review

Why Ghost users reach for Specter

Ghost’s editor opens one post at a time. AI deserves more.

The Ghost web editor is built for writing a single post. The Admin API is fine for one-off scripts but rate-limits hard on bulk runs. And the "AI for Ghost" plugins on the market are mostly closed-loop GPT wrappers that charge per article and only ever see one post at a time. Specter breaks that ceiling: connect your blog in the browser, run AI recipes with your whole archive as context, review every change as a diff, and publish back over the Admin API — without the timeouts.

What you can do

The workflow layer between Ghost and AI

Specter isn’t an AI and it isn’t a CMS. It’s the workflow and control layer: connect your live Ghost blog in the browser, run AI recipes across the whole archive, and review every change before it ships — so the model can finally reach your content, all of it, at once.

Full-archive context for AI

Connect your Ghost blog and every post lands in one workspace as clean, structured content. AI recipes run with your whole archive as context — so they weave accurate internal links, match your tone across the blog, and stop generating duplicates.

Edit Ghost with AI →

Bulk SEO across every Ghost post

Run an AI recipe across thousands of posts — rewrite meta descriptions, fix outdated mentions, regenerate SEO titles, swap CTAs. Review the whole pass as a diff, approve what is right, and publish back over the Ghost Admin API.

Bulk-edit SEO →

Translate the whole blog

Run a translation recipe across every post into five languages, preserving Ghost tags, feature images, and slugs — and review each change before it ships.

Translate Ghost with AI →

Recipes, not one post at a time

AI runs as recipes across your connected content, not pasted post-by-post into a chat window. The whole Ghost blog is the context — and you review every change as a diff before publishing.

Ghost AI writer alternative →

Two-way sync, no surprises

Edit in your workspace and the change publishes back. Edit in the Ghost admin and Specter pulls it in. Every post round-trips with frontmatter, tags, and authors preserved.

Dry-run diff before you publish

Every run shows up as a diff first — exactly which Ghost posts would be created, updated, or flagged as conflicts. Browsing and reviewing diffs are free; you approve what ships, and every publish keeps a snapshot for rollback.

Conflict-safe by default

If a post changed on both sides since the last sync, Specter pauses and shows you both versions instead of silently overwriting one. If a team edits in the Ghost admin alongside you, this keeps the two sides from clobbering each other.

Credits, not lock-in

Connecting Ghost, browsing posts, and reviewing diffs are free. Only AI runs spend credits, and every workspace opens with 500 free — enough to see exactly what a recipe does across your archive. Your content stays yours.

How it works on Ghost

Three steps. No drama.

01

Step

Get your Admin API key

In Ghost: Settings → Advanced → Integrations → Add custom integration. Copy the Admin API key. Walkthrough →

02

Step

Connect Ghost in the browser

Open your Specter workspace, add a Ghost blog, paste your blog URL + Admin API key. Specter tests the connection, then pulls your whole archive into the workspace. Connect Specter to Ghost →

03

Step

Run a recipe, review the diff, publish

Edit a post by hand or run an AI recipe across the whole blog. Review every change as a diff, approve what is right, and Specter publishes back to Ghost. Every publish keeps a snapshot for rollback.

What round-trips today

The Ghost capability map

Specter syncs the text content of your Ghost blog — body, frontmatter, tags, authors, scheduled status. Members, newsletters, themes, and Stripe are deliberately out of scope.

Pushes and pulls today

Post and page body (projected from Ghost Lexical), title, slug, status (draft/published/scheduled), publish date, tags, authors, custom excerpt, feature image URL and alt, local image upload, codeinjection_head, codeinjection_foot, canonical URL, meta title, meta description, OG title, OG description, Twitter title, Twitter description, visibility (public/members/paid).

Specter never touches

Members, subscribers, newsletter sends, Stripe keys, themes, routes.yaml, integrations other than its own, redirects, staff users. Read the full capability matrix → for the exact, current state.

Credits, not lock-in

Browsing is free. Only AI runs spend credits.

Connecting Ghost, reviewing diffs, and publishing edits cost nothing. Only AI recipe runs spend credits, and every workspace opens with 500 free.

Prefer your own machine?
Desktop
  • Run the engine locally, your posts as plain .md files on disk
  • Open-source and self-hostable
  • Nothing routed through our servers
  • Desktop Core is $99/year; engine is free on GitHub
Desktop & open-source edition →

FAQ

Ghost questions, answered

Which Ghost versions does Specter support?
Ghost 5.x and later, via the Admin API. Self-hosted Ghost works exactly the same as Ghost(Pro) — Specter only talks to your blog’s admin endpoint.
What permissions does the Admin API key need?
A standard custom-integration Admin API key. Specter uses it to read and write posts, pages, tags, and authors. It can’t see members, Stripe, or themes through that key. You generate the key, you control it, and you can revoke it from Settings → Advanced → Integrations at any time. Walkthrough →
What happens to Ghost cards (callouts, bookmarks, galleries)?
Ordinary writing — paragraphs, headings, lists, links, bold and italic — round-trips cleanly. Ghost stores posts as Lexical, not Markdown, so Specter makes a faithful projection of each post and translates your edits back on publish. Card-heavy posts (galleries, embeds, complex callouts) are where two formats that don’t perfectly overlap can’t always come back byte-for-byte — and Specter flags it in the diff rather than letting you discover it later. How Specter handles Ghost cards →
Does Specter touch members, newsletters, or Stripe?
No. By design. Specter syncs content only — posts, pages, tags, authors, and their frontmatter. Members, subscribers, Stripe, themes, and routes.yaml are out of scope, period.
Scheduled posts and drafts?
Both round-trip. Drafts carry status: draft; scheduled posts carry status: scheduled and the publish date. Edit either in your workspace, publish, and Ghost honors the new state.
Will Specter overwrite Ghost edits I made in the admin?
Not without asking. By default Specter flags any conflict where both you and Ghost changed the same post since the last sync, and shows you both versions. You can set a default of "always keep mine" or "always keep Ghost’s" if you’d rather not be interrupted.
Why not just use the Ghost Admin API directly?
You can — and for one-off scripts the Admin API is great. Specter exists because doing this continuously across thousands of posts means handling rate limits, retries, conflicts, two-way sync, Lexical-to-content conversion, AI recipes with the whole archive as context, and a diff you review before anything ships. Why not just the API →
Does Specter work with self-hosted Ghost?
Yes. Self-hosted is a first-class target. Specter only needs HTTPS access to your blog’s /ghost/api/admin/ endpoint and a valid Admin API key. Self-host Ghost →

Bring AI to your whole Ghost blog

Connect in the browser and start with 500 free credits. Prefer files on your own disk? There’s a desktop and open-source edition too.

Guides

Get the most out of Specter + Ghost

Hand-picked walkthroughs for the things people actually do with Specter on Ghost.

Guide

Add a CTA or disclosure to all your posts

Add a CTA, affiliate disclosure, or footer to all your blog posts: connect Ghost to Specter in the browser, append the block across the whole archive, review the diff, and publish back.

Read guide →

Guide

Clean up your Ghost tags across the whole blog

Bulk edit Ghost tags and clean up a messy taxonomy: connect your blog to Specter in the browser, normalize tags across the whole archive with AI, review the diff, and publish back.

Read guide →

Guide

Connect Specter to your Ghost blog (first sync)

Connect your Ghost blog to Specter in the browser: paste your site URL and Admin API key, test, and run your first sync to pull every post into your workspace.

Read guide →

Guide

Make your whole blog follow one style guide

Keep your blog style guide consistent at scale: connect Ghost to Specter in the browser, apply voice and formatting rules with an AI recipe, review the diff, and publish back.

Read guide →

Guide

Audit your blog for things that have gone stale

Update outdated blog content at scale: connect your Ghost posts to Specter in the browser, run an AI recipe to flag stale facts and dates, review the diff, and publish back.

Read guide →

Guide

Write meta descriptions for your whole blog at once

Generate Ghost meta descriptions in bulk with AI: connect your blog to Specter in the browser, fill missing excerpts across the whole archive, review the diff, and publish back.

Read guide →

Guide

Add internal links across your whole Ghost blog at once

Bulk Ghost internal linking in the browser: connect your blog to Specter, run an AI recipe to add contextual links and fix broken ones across every post, review the diff, and publish back.

Read guide →

Guide

Real version control for your Ghost posts

Ghost version history is limited to a few recent edits per post. Specter keeps a snapshot behind every publish, so you can review the diff and revert — or mirror to git for permanent history.

Read guide →

See all 22 Ghost guides →

Comparisons

How Specter stacks up against the usual alternatives

Comparison

The review-first alternative to Ghost AI writers

A Ghost AI writer alternative: instead of autogenerating posts and pushing them live, connect Ghost in your browser, run AI recipes across your existing posts, and review every change as a diff before it publishes.

Read comparison →

Comparison

Ghost markdown vs the web editor

Ghost markdown editing in your own tools vs the browser editor. A fair comparison of when each wins, and how to get local markdown with Ghost.

Read comparison →

Comparison

Obsidian Publish vs Ghost

Obsidian Publish turns your vault into a website; Ghost is a full publishing platform with newsletters and memberships. Here's how they compare — and how to keep writing in Obsidian while publishing to Ghost.

Read comparison →

Comparison

Specter vs the Obsidian Ghost Publish plugin

The Obsidian Ghost Publish plugin pushes notes to Ghost one way. Specter connects your whole Ghost blog in the browser, runs AI recipes across it, and reviews every change as a diff — both directions. Here's the side-by-side.

Read comparison →

Comparison

Ulysses & iA Writer for Ghost: the two-way sync they don't do

Looking for a Ulysses Ghost alternative or iA Writer Ghost sync that round-trips existing posts? Here is where each app stops and where Specter fits.

Read comparison →

Comparison

Why not just script the Ghost Admin API yourself?

You can script the Ghost Admin API to sync posts to markdown yourself. Here's the build-vs-buy on what a robust two-way ghost api sync actually takes.

Read comparison →

See all comparisons →

Troubleshooting

Ghost-specific fixes

Ghost troubleshooting index →