/install ecto
ecto - Ghost.io Admin API CLI
Manage Ghost.io blogs via the Admin API. Supports multi-site configuration, markdown-to-HTML conversion, and JSON output for scripting.
Quick Reference
Authentication
ecto auth add \x3Cname> --url \x3Cghost-url> --key \x3Cadmin-api-key>
ecto auth list
ecto auth default \x3Cname>
ecto auth remove \x3Cname>
Environment overrides: GHOST_URL, GHOST_ADMIN_KEY, GHOST_SITE
Posts
ecto posts [--status draft|published|scheduled|all] [--limit N] [--json]
ecto post \x3Cid|slug> [--json] [--body]
ecto post create --title "Title" [--markdown-file file.md] [--stdin-format markdown] [--tag tag1,tag2] [--status draft|published]
ecto post edit \x3Cid|slug> [--title "New Title"] [--markdown-file file.md] [--status draft|published]
ecto post delete \x3Cid|slug> [--force]
ecto post publish \x3Cid|slug>
ecto post unpublish \x3Cid|slug>
ecto post schedule \x3Cid|slug> --at "2025-01-25T10:00:00Z"
Pages
ecto pages [--status draft|published|all] [--limit N] [--json]
ecto page \x3Cid|slug> [--json] [--body]
ecto page create --title "Title" [--markdown-file file.md] [--status draft|published]
ecto page edit \x3Cid|slug> [--title "New Title"] [--markdown-file file.md]
ecto page delete \x3Cid|slug> [--force]
ecto page publish \x3Cid|slug>
Tags
ecto tags [--json]
ecto tag \x3Cid|slug> [--json]
ecto tag create --name "Tag Name" [--description "desc"]
ecto tag edit \x3Cid|slug> [--name "New Name"] [--description "desc"]
ecto tag delete \x3Cid|slug> [--force]
Images
ecto image upload \x3Cpath> [--json]
Site Info
ecto site [--json]
ecto settings [--json]
ecto users [--json]
ecto user \x3Cid|slug> [--json]
ecto newsletters [--json]
ecto newsletter \x3Cid> [--json]
Webhooks
ecto webhook create --event \x3Cevent> --target-url \x3Curl> [--name "Hook Name"]
ecto webhook delete \x3Cid> [--force]
Events: post.published, post.unpublished, post.added, post.deleted, page.published, etc.
Multi-Site
Use --site \x3Cname> to target a specific configured site:
ecto posts --site blog2
Common Workflows
Create and publish from markdown:
ecto post create --title "My Post" --markdown-file post.md --tag blog --status published
Pipe content from stdin:
echo "# Hello World" | ecto post create --title "Quick Post" --stdin-format markdown
Schedule a post:
ecto post schedule future-post --at "2025-02-01T09:00:00Z"
Batch publish drafts:
for id in $(ecto posts --status draft --json | jq -r '.posts[].id'); do
ecto post publish "$id"
done
Limitations
- Ghost API does not support listing images or webhooks
- Member/subscription management not available via Admin API
- Read-only access to users
Full Docs
Run ecto --ai-help for comprehensive documentation.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ecto - After installation, invoke the skill by name or use
/ecto - Provide required inputs per the skill's parameter spec and get structured output
What is Ecto?
Ghost.io Admin API CLI for managing blog posts, pages, tags, and content. It is an AI Agent Skill for Claude Code / OpenClaw, with 1908 downloads so far.
How do I install Ecto?
Run "/install ecto" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Ecto free?
Yes, Ecto is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Ecto support?
Ecto is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Ecto?
It is built and maintained by visionik (@visionik); the current version is v0.1.0.