← Back to Skills Marketplace
visionik

Ecto

by visionik · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
1908
Downloads
1
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install ecto
Description
Ghost.io Admin API CLI for managing blog posts, pages, tags, and content.
README (SKILL.md)

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.

Usage Guidance
This package appears to be a legitimate Ghost Admin API CLI. Before installing, consider the following: - The tool requires a Ghost Admin API key (GHOST_ADMIN_KEY) and site URL (GHOST_URL) to function, but the skill metadata did not declare these. Expect to provide an admin-level API key. If you don't trust the source, do not provide credentials. - The CLI saves API keys to a local config file (default: ~/.config/ecto/config.json, or XDG_CONFIG_HOME/ecto/config.json). Ensure you are comfortable storing the key on disk and check file permissions; you can set XDG_CONFIG_HOME to control the path. - The repository source is bundled, but there is no automatic install URL in the metadata — verify the binary you run (or build from source yourself) and prefer installing from a trusted release (official GitHub release or vendor). If you plan to allow an agent to invoke the skill autonomously, be aware that the agent could perform any action the Admin API key permits (create/delete/publish posts, webhooks, upload images). - If you want least privilege, create a Ghost integration with only the permissions you need (if Ghost supports scoped keys) or use a dedicated integration account and rotate keys regularly. If you need higher assurance, ask the publisher for a verified homepage or release artifacts, or review/build the source locally and inspect ~/.config/ecto/config.json after first run.
Capability Analysis
Type: OpenClaw Skill Name: ecto Version: 0.1.0 The OpenClaw AgentSkills skill bundle 'ecto' is a command-line interface for the Ghost.io Admin API. Its functionality, including reading/writing files (e.g., markdown for posts, images) and making network calls to the Ghost API, is directly aligned with its stated purpose of managing blog content. Sensitive API keys are handled appropriately by storing them in `~/.config/ecto/config.json` with `0600` permissions or via environment variables. The `SKILL.md` and `--ai-help` documentation provide clear instructions for using the tool and do not contain any prompt injection attempts or instructions for the agent to perform unauthorized actions. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, or obfuscation.
Capability Assessment
Purpose & Capability
The name/description, README, SKILL.md and code are coherent: this is a CLI for the Ghost Admin API (posts, pages, tags, images, webhooks, etc.). However the skill metadata lists no required environment variables or primary credential even though both the docs and code expect GHOST_URL and GHOST_ADMIN_KEY (and optionally GHOST_SITE). Also the README/SKILL.md declare a config file (~/.config/ecto/config.json) where API keys are saved — this is expected for the stated purpose but is not reflected in the declared requirements.
Instruction Scope
SKILL.md restricts instructions to Ghost Admin API operations and common CLI workflows (reading markdown files, reading stdin, uploading images). The runtime instructions and code only read files the user specifies (markdown/image files) and the skill's own config file; they do not try to read unrelated system files or send data to unexpected endpoints beyond the Ghost site configured by the user.
Install Mechanism
No install spec is declared (instruction-only), which is lowest-risk from an installer perspective. The repository contains full Go source files and a README showing 'go install' usage — there is no automatic download/install URL or extract step in the skill metadata. Note: the presence of source code in the package means someone could build/run it locally; the skill package itself doesn't declare installing arbitrary third-party binaries.
Credentials
The skill metadata declares no required env vars or primary credential, but both SKILL.md and the code expect and use GHOST_URL, GHOST_ADMIN_KEY (Admin API key), and optionally GHOST_SITE or a config file entry. The tool will persist the API key into a local config file (~/.config/ecto/config.json or XDG_CONFIG_HOME/ecto/config.json). Not declaring these credentials in the metadata is an inconsistency that may cause the platform not to prompt for required secrets and makes the required scope unclear.
Persistence & Privilege
always:false (normal). The skill reads and writes its own config file in the user's config directory (XDG_CONFIG_HOME or the default ~/.config/ecto/config.json) to store site entries and API keys — this is a normal behavior for a CLI that manages remote sites, but it means your Admin API key will be written to disk in that location.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ecto
  3. After installation, invoke the skill by name or use /ecto
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release of ecto CLI for Ghost.io Admin API. - Manage Ghost blog posts, pages, tags, images, webhooks, and site data via command line. - Supports multiple site configurations and environment variable overrides. - Features markdown-to-HTML conversion, JSON output for scripting, and stdin piping for content creation. - Includes workflows for creating, editing, publishing, scheduling, and deleting content. - Limitations: No API for listing images/webhooks; member management not supported; user data is read-only.
Metadata
Slug ecto
Version 0.1.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

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.

💬 Comments