Features
Specter is a local-first content engine. It pulls your Shopify, WordPress, or Ghost site down to a folder of plain markdown on your Mac, lets you edit that folder with any tool — your hands, a script, or an AI model you trust — and pushes the changes back to the CMS in a safe, observable stream.
That sentence sounds simple. The features below are what makes it actually hold up when you’re working across thousands of posts, three platforms, and the kind of bulk operations a browser admin panel was never designed for.
Full-site context for AI
Every post on your site lives as a .md file in one folder on your disk. Title, body, tags, slug, status, dates, custom excerpts — all in standard YAML frontmatter with the body as plain markdown. Nothing proprietary, nothing locked behind a database.
That single design choice unlocks the most defensible thing Specter does: the AI you already run can see your whole site at once. Point Claude Code, Cursor, Aider, Continue, or any agent at the folder and the model reads every post as context. When it generates a new article it can weave accurate internal links to posts that actually exist. When it rewrites a category page it can match the tone of the surrounding archive. When it suggests SEO improvements it can spot the duplicate intros you’ve been writing for years without noticing.
This is what AI tools cannot do through a CMS API. The API only ever serves them one post at a time, on demand, with no awareness of the rest of the site. With Specter the whole archive is just files — and any tool that can read files can reason across them.
You don’t need a vector database or a RAG pipeline to get this. You don’t need our cloud. You don’t need to copy-paste posts into a chat window one by one. The file system is the context layer.
Bulk operations that don’t crash
Running a global content update through a CMS admin is a study in friction. The web editor only opens one post. The API rate-limits aggressively, throws timeouts on long runs, and gives you no rollback when something halfway through fails. AI plugins that promise “bulk rewrites” usually mean “we’ll call the API in a loop and hope for the best.”
Specter does the bulk operation locally first. You run your script — or your AI agent — across the markdown folder, get the result on disk, review the diff, then ask Specter to sync. Specter then streams the changes back to your CMS at a pace the platform can handle: throttled per platform, retrying on transient errors, queuing on persistent ones, and reporting which posts moved and which still need attention.
Things that become possible:
- Rewrite 1,200 product article intros to match a new positioning, all in a single AI pass over the folder.
- Regenerate every meta description across a 3,000-post blog using the post body as input.
- Fix a typo, a product name change, or a marketing angle pivot across every page that mentions the old term.
- Translate your whole archive into five languages and push each translation back as a localized post.
- Enforce a style guide — heading hierarchy, oxford comma, brand-voice rules — globally with a script.
Each of these would take days or weeks through a browser. With Specter they’re a few hours, most of which is letting the AI run.
Cross-CMS migration
Specter handles Shopify, WordPress, and Ghost in the same clean markdown format. The body is markdown either way. The frontmatter normalizes the platform-specific fields — Ghost’s featured flag, Shopify’s handle, WordPress’s categories and tags — into a consistent shape on disk.
Which means: migration stops being a project. Pull your content from one platform into the folder, repoint Specter at the destination platform, push. The body and the metadata that translates cleanly will move; the platform-exclusive surface (Ghost cards, Shopify metafields, WP block-editor blocks) gets flagged so you know what needs hand-attention.
This works for the obvious case — leaving one platform for another — but the more interesting case is running multiple CMSes in parallel. A Shopify storefront blog and a Ghost newsletter, both syndicating from the same source folder. A WordPress flagship site and three localized Ghost mirrors. The folder is the canonical source of truth; the CMSes are render targets.
Two-way sync
The whole point of “sync” is that both ends are live. Edit a post in your local markdown folder — Specter pushes it to the CMS within seconds. Edit a post in the CMS web editor — Specter pulls the change down to disk on the next sync cycle. Every post round-trips with frontmatter preserved.
You set the sync mode in the app: continuous (watch the folder and push immediately), scheduled (every N minutes), or manual (you click Sync). Conflict policy is configurable per workspace — ask every time, always prefer local, always prefer remote, or always create a duplicate.
Dry-run preview
Before any sync touches your CMS or your disk, you can click Preview Sync. Specter shows you exactly which posts would be created, which updated, which deleted, and which flagged as conflicts — with diffs. Nothing leaves your machine.
This is the safety net that makes the bulk operations above survivable. You ran an AI pass over 1,500 posts. The diff looks right on 1,490, but on 10 the model went off the rails and rewrote intros into corporate-speak. Preview catches those before they hit production. You roll back the bad 10, re-run, sync the clean 1,490.
Conflict prompts
When both you and the CMS changed the same post since the last sync, Specter doesn’t silently overwrite either side. It pauses, shows you both versions side by side, and asks. You pick one, merge by hand, or set a default if you’d rather not be interrupted (“always keep mine”, “always keep CMS”).
If you collaborate with a team that edits in the CMS while you edit locally, this is the feature that keeps the two sides from clobbering each other.
Point any AI at your posts
Specter is not an AI. It doesn’t ship a model, doesn’t charge you for tokens, doesn’t lock you into one vendor. It’s the bridge that gets your content into a format every other tool already understands.
That means you can use:
- Claude Code, Cursor, Aider, Continue, Zed AI for IDE-style editing
- Claude, ChatGPT, Gemini in chat windows with the folder uploaded
- OpenAI/Anthropic/Groq APIs for scripted bulk runs
- Local models via Ollama for fully offline work
- Plain bash, sed, awk, ripgrep when an AI is overkill
Every one of those tools already knows how to read markdown. Specter just makes sure the markdown is always in sync with the live site.
No lock-in, ever
The folder is yours. Pick anywhere — your Documents folder, an Obsidian vault, a git repo, an encrypted disk image. If you cancel Specter tomorrow, the folder stays exactly as it was. Standard YAML frontmatter, standard markdown body, no proprietary wrappers.
This is the inverse of every other CMS-AI tool. The point of Specter is to make your content more portable, not less.
Local-first, by design
Your markdown lives on your Mac. Your API credentials live in the macOS Keychain. Specter does not stream your content through our servers — it talks directly from your machine to your CMS’s admin endpoint. There is no cloud middleman, no telemetry on your post bodies, no third party to trust with your unpublished drafts.
Licensing is handled through a separate, minimal endpoint that only ever sees your license key and a hashed machine identifier. The content layer never touches our infrastructure.
Ready to see the surface in your own workflow? Buy Specter Pro →, or use the free open-source project on GitHub.