NEWv2 · CLI, Skills & MCP endpoint

A content pipeline
your agent can run.

BlogCLI ships with a first-class CLI, a set of packaged Skills for Claude and other agent runtimes, and an MCP endpoint. Delegate keyword research, outlining, drafting, scheduling and publishing — and watch the work happen in your dashboard.

Browse Skills
npm i -g blogcli Claude · Cursor · Aider MCP compatible
~/acme-blog — blogcli
$blogcli plan --from keywords.csv --brand acme
Loaded 48 keywords · brand acme (voice: warm, technical)
Clustering by intent… ✓ 11 clusters
Drafting outlines… ✓ 11/11
Scheduling across 4 weeks (Mon/Wed/Fri)
$blogcli generate --plan cur --concurrency 4 --watch
Generating 11 posts
01 · how-to-migrate-to-next-15 2,140w · 4.2s
02 · app-router-vs-pages 1,860w · 3.9s
03 · edge-vs-node-runtime 2,020w · 4.0s
04 · server-actions-in-production writing…
05 · isr-revalidation-patterns queued
…5 more
$blogcli publish --channel wordpress --channel headless
Published to acme.com/blog · api.acme.com/content

Install the CLI

$npm i -g blogcli && blogcli login
Capabilities

Everything the dashboard does, scriptable.

Every command you run in the UI has a mirror on the CLI. No hidden primitives, no "chat-only" features. If you can click it, your agent can run it.

01 / plan

Turn a keyword list into a content calendar

Feed a CSV, a sitemap, or a seed topic. BlogCLI clusters by intent, dedupes against your existing posts, and schedules drafts across a cadence you specify — respecting timezone and quiet hours.

$ blogcli plan --from keywords.csv --cadence mwf --weeks 4
02 / research

Pull live SERP and question data

Search volume, intent, competitor headers, and "People also ask" — all structured JSON, cached per workspace.

$ blogcli research "headless cms"
03 / generate

Drafts that sound like you, not a model

Per-brand voice, reading level, heading style, internal links and citations. Deterministic seeds for reproducible output.

$ blogcli generate post_01 --brand acme
04 / schedule

Calendar-aware batch scheduler

Shift by day, re-balance a plan, or snap to publish windows. Dry-runs print diffs before you commit.

$ blogcli schedule --shift +2d --dry-run
05 / publish

One command, many channels

WordPress, Shopify, Ghost, Webflow, or your own Next.js via the Headless API. Rollbacks are a flag away.

$ blogcli publish --channel all
06 / workflow

Compose commands into a single pipeline

Declarative YAML workflows check in to your repo. Run them from CI, a cron, your agent, or a teammate's laptop — same result, every time. Every step is idempotent and resumable.

$ blogcli run ./workflows/weekly.yml
07 / stream

Watch everything your agent does, live

A websocket event stream mirrors every action — `plan.started`, `post.generated`, `publish.ok` — so your dashboard stays honest about what the automation is doing.

$ blogcli stream --filter publish.*
Claude Skills

Drop-in Skills for Claude, Cursor & Aider.

Seven packaged Skills your agent can invoke by name. Each one is a small, testable unit — not a monolithic "do my blog" prompt — with clear inputs, outputs and safety rails.

~/.claude/skills/blogcli/
  • blogcli.research-keywordstool
  • blogcli.outline-posttool
  • blogcli.batch-generateworkflow
  • blogcli.humanizetool
  • blogcli.publishtool
  • blogcli.schedule-shifttool
  • blogcli.streamstream
blogcli.research-keywordstool
What it does

Expand a seed into long-tail variants with live volume, CPC and difficulty.

Example invocation
$ blogcli research-keywords --seed 'ai agent' --limit 40

Hand the pipeline to your agent. Then go ship something else.

View on npm