Specter — sync your Ghost blog to local markdown (so you can bulk-edit it / use AI)

I built this because Ghost’s editor was slowly driving me up the wall, and I figure some of you have hit the same thing.

I’ve got a few hundred posts. Every time I wanted to change something across all of them — fix a phrase I’d overused, swap out an old CTA, redo meta descriptions — I was clicking into posts one at a time. No find-and-replace, no way to hand the archive to an AI, no editing on a plane. Fine for writing one post; miserable for maintaining an archive.

So I made Specter. It pulls your posts down into a folder of plain markdown and keeps that folder in sync with Ghost both ways. Once they’re just files, you can do whatever you want with them — edit in Obsidian, run a sed script, point Claude or Cursor at the folder and rewrite every intro in one go — and it pushes the changes back up.

The part I was most nervous about is cards. Ghost stores post bodies as Lexical now, and anything that goes Ghost → HTML → back can mangle callouts, buttons, headers with layout settings, that kind of thing. Plain prose round-trips cleanly; I’m upfront on the site about where the messier cards still don’t. Wanted to say that here too rather than have someone batch-edit 200 posts and discover it after.

It’s a little Mac menu-bar app, one-time price (not a subscription), and there’s a free tier so you can pull your blog down and poke at it before paying anything. It shows you a dry-run of exactly what’ll change before it writes anything, which calmed my nerves a lot the first time I ran an AI pass over the whole thing.

It’s here if you want to give it a try: spectersync.com. And if you’re already editing Ghost as local markdown some other way I’d honestly love to hear it, I spent a while assuming I was the only person doing this.