The friendly Ghost CLI. Agents are the primary user β humans are welcome too.
Named after Caspar, the tiny town in Mendocino County, California β and yeah, the friendly ghost too.
Ghost has no good agent-friendly interface. The existing MCP server dumps 34 tool definitions into your context window, requires Node.js, and is brittle to set up. Caspar takes a different approach: a clean Go CLI that Claude shells out to, with a skill file that costs ~400 tokens instead of ~4000.
Built on the linctl pattern.
go install github.com/manzanita-research/caspar@latestcaspar auth loginPrompts for your Ghost site URL and admin API key, validates the connection, and saves config to ~/.caspar.json.
You can also set environment variables:
export CASPAR_URL=https://your-site.ghost.io
export CASPAR_ADMIN_API_KEY=your-id:your-secretcaspar
βββ auth login|status|logout
βββ site
βββ post list|get|create|update|delete
βββ page list|get|create|update|delete
βββ tag list|get|create|update|delete
βββ member list|get|create|update
βββ newsletter list|get
βββ image upload
Pass --json for structured output. Use --fields to request only what you need and keep token costs low.
caspar post list --json --fields id,title,slug,status --limit 10Pipe content in with --stdin to avoid putting HTML in flag values:
echo "<p>Hello world</p>" | caspar post create --title "New Post" --stdin --jsonWithout --json, output is styled with Charm β tables, colors, the works.
caspar post list --limit 10
caspar post get my-post-slug
caspar tag list| Flag | Description |
|---|---|
--json |
Structured JSON output |
--fields |
Comma-separated field list |
--limit |
Number of results |
--filter |
Ghost NQL filter expression |
--order |
Sort order |
--formats |
Content formats on get (e.g. html) |
--visibility |
Access control: public, members, paid, tiers |
--custom-excerpt |
Custom excerpt for previews and cards |
--stdin |
Read content from stdin |
list β ls Β· get β show Β· create β new Β· update β edit Β· delete β rm
caspar skill installCopies the built-in skill file to ~/.claude/skills/caspar/SKILL.md. Claude reads it once (~400 tokens), then knows how to use caspar for any Ghost content task.
Under active development. We're building this because we needed it.
MIT