Specter for Ghost

Edit your whole Ghost blog
with any AI, in one pass.

Specter pulls your Ghost blog down to a folder of local markdown. Now Claude, ChatGPT, Gemini — or your own scripts — can read every post at once, rewrite at scale, and Specter streams the changes back over the Ghost Admin API.

Ghost 5.x · self-hosted or Ghost(Pro) · macOS 13+ · paid official app · free forever on GitHub.
Also for: WordPress →  ·  Shopify →
Specter settings window with an active Specter Pro license, sync mode set to watch-and-sync automatically, and conflict strategy set to ask every time

Every Ghost post in one folder

Posts, drafts, scheduled posts, pages — all sit as plain markdown files in one folder. Any AI you point at it sees the whole archive while it edits.

Ghost cards round-trip cleanly

Frontmatter preserves Ghost-specific fields: tags, authors, custom excerpts, feature images, codeinjection. Cards convert to portable markdown both directions.

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: your whole Ghost blog becomes a folder of markdown that any tool can read at once, then Specter streams the changes back over the Admin API — without the timeouts.

What you can do

The bridge between Ghost and everything else

Specter isn't an AI and it isn't a CMS. It does one thing: keep your live Ghost blog and a folder of local markdown perfectly in sync — so every other tool you own can finally reach your content, all of it, at once.

Full-archive context for AI

Your whole Ghost blog lives in one folder of plain markdown. Point Claude Code, Cursor, or any agent at that folder and the AI sees every post — so it can weave accurate internal links, match your tone across the archive, and stop generating duplicates. Edit Ghost with Claude →

Bulk SEO across every Ghost post

Run an AI pass across thousands of posts — rewrite meta descriptions, fix outdated mentions, regenerate SEO titles, swap CTAs. Specter streams the result back through the Ghost Admin API in the background without throttling. Bulk-edit SEO →

🌐

Translate the whole blog

Hand the folder to any LLM and translate every post into five languages, preserving Ghost tags, feature images, and slugs. Translate Ghost with AI →

Any AI, no lock-in

Claude, ChatGPT, Gemini, Copilot, your own scripts — they all read the same markdown on disk. Specter is the bridge; you bring the intelligence. Ghost AI writer alternative →

Two-way sync, no surprises

Edit locally → Specter pushes. Edit in the Ghost admin → Specter pulls down. Every post round-trips with frontmatter, tags, and authors preserved.

👁

Dry-run preview before you sync

Click Preview Sync and see exactly which Ghost posts would be created, updated, or flagged as conflicts. Essential before a 1,000-post AI edit goes live.

📁

Works with Obsidian (or anything)

Point Specter at a folder inside your Obsidian vault and the two coexist. If you used the old Obsidian Ghost-sync plugin, Specter is a strict upgrade. Migrate from the Obsidian plugin →

🔒

Your Admin API key never leaves your Mac

Stored in the macOS Keychain. No cloud middleman, no third-party server, no telemetry on your content. Revoke from your Ghost admin any time.

How it works on Ghost

Three steps. No drama.

Get your Admin API key

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

Paste it into Specter

Open Specter, add a Ghost blog, paste your blog URL + Admin API key. Specter tests the connection before continuing. Connect Specter to Ghost →

Pick a folder and write

One picker. The folder you choose is where your Ghost posts live as markdown. Open them in Obsidian or VS Code, or hand the whole folder to Claude for a bulk edit. Save. Specter pushes back.

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 body (markdown ↔ Ghost Lexical), title, slug, status (draft/published/scheduled), publish date, tags, authors, custom excerpt, feature image URL, feature image alt, 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.

Pricing

One annual subscription. Every platform.

Buy the signed, supported app, or use the open-source GitHub project for free forever.

Open source
$0
  • Free forever on GitHub
  • Inspect, fork, and build the source
  • Good fit for technical users
  • No signed installer or priority support
View on GitHub
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)?
They round-trip as portable markdown blocks with structured frontmatter. Specter keeps the data; the rendering is reapplied on the Ghost side when you push back. See 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 come down with status: draft in the frontmatter; scheduled posts come down with status: scheduled and the publish date. Edit either locally, sync, 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 a dialog with 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-markdown conversion, and keeping a local mirror that AI tools can read. 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

Buy the official app, or build the free open-source version.

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 every Ghost post at once

Add a CTA, affiliate disclosure, or footer to all your blog posts: sync to local markdown with Specter, append the block across the archive, preview, and sync back.

Guide

Bulk edit Ghost tags: clean up your taxonomy with AI

Bulk edit Ghost tags and clean up a messy taxonomy: sync posts to local markdown with Specter, normalize tags across the archive with AI, preview, and sync back.

Guide

Connect Specter to your Ghost blog (first sync)

Connect Ghost markdown sync in minutes: paste your site URL and Admin API key, test, pick a folder, and run your Ghost CMS first sync to pull posts.

Guide

Enforce a style guide across your whole Ghost blog

Keep your blog style guide consistent at scale: sync Ghost posts to local markdown with Specter, apply voice and formatting rules with AI, review, and sync back.

Guide

Find and fix outdated content across your Ghost blog

Update outdated blog content at scale: sync your Ghost posts to local markdown with Specter, run an AI audit to flag stale facts and dates, review, and sync back.

Guide

Generate meta descriptions for every Ghost post in bulk

Generate Ghost meta descriptions in bulk with AI: sync posts to local markdown with Specter, fill in missing excerpts across the archive, preview, and sync back.

Guide

Ghost internal linking: bulk update links across your blog

Bulk Ghost internal linking: sync your blog to local markdown, use AI to add contextual links and fix broken ones across every post, preview, and sync back.

Guide

Ghost version history: real version control for your blog

Ghost version history is limited to a few recent edits per post. Sync your posts to local markdown with Specter and put the folder under git for real history.

See all 22 Ghost guides →

Comparisons

How Specter stacks up against the usual alternatives

See all comparisons →

Troubleshooting

Ghost-specific fixes

Ghost troubleshooting index →

Specter also supports