npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@autoblogwriter/cli

v0.1.3

Published

Postiz-style agent CLI for AutoBlogWriter

Readme

AutoBlogWriter CLI

Postiz-style automation CLI for AutoBlogWriter.

Agent Skill

If you're using agent workflows, see SKILL.md for the optimized command contract and usage guidance.

Install the hosted skill:

npx skills add auto-blog-writer-app/autoblogwriter-skill

Example prompt:

/skill generate 5 blogs using these keywords: saas onboarding, activation metrics, product adoption, churn reduction, user retention

Install

npm i -g @autoblogwriter/cli

Authentication

The CLI uses API keys. Resolution order:

  1. AUTOBLOGWRITER_API_KEY environment variable
  2. Stored key in OS keychain (via set-key or login)

API URL resolution order:

  1. --api-url flag (when supported)
  2. AUTOBLOGWRITER_API_URL
  3. Stored profile value (~/.autoblogwriter/config.json)
  4. Default: https://api.autoblogwriter.app

Commands

Output format:

  • JSON is enabled by default for all commands
  • Use --no-json for human-readable text output

status

Show authentication status and API URL.

autoblogwriter status
autoblogwriter status --no-json

set-key

Store an API key in keychain.

autoblogwriter set-key --key ba_pk_xxx
autoblogwriter set-key --key ba_pk_xxx --api-url http://localhost:7777
autoblogwriter set-key --key ba_pk_xxx --no-json

login

Browser-based login flow. Opens UI approval page, waits for callback, exchanges code, and stores key.

autoblogwriter login
autoblogwriter login --workspace my-workspace
autoblogwriter login --workspace my-workspace --api-url http://localhost:7777
autoblogwriter login --scopes workspace:read,ideas:write,posts:write,posts:schedule,posts:publish,integrations:read

logout

Remove stored API key from keychain.

autoblogwriter logout
autoblogwriter logout --no-json

workspaces:list

List accessible workspaces for current key.

autoblogwriter workspaces:list
autoblogwriter workspaces:list --no-json

workspaces:get <workspace>

Get one workspace by slug or ID.

autoblogwriter workspaces:get my-workspace
autoblogwriter workspaces:get 65f... --no-json

integrations:list

List workspace integrations details.

autoblogwriter integrations:list --workspace my-workspace
autoblogwriter integrations:list --workspace my-workspace --no-json

integrations:status

Get high-level integration status.

autoblogwriter integrations:status --workspace my-workspace
autoblogwriter integrations:status --workspace my-workspace --no-json

ideas:generate

Generate ideas from a JSON payload.

autoblogwriter ideas:generate --workspace my-workspace --json-file payload.json
autoblogwriter ideas:generate --workspace my-workspace --json-file payload.json --no-json

Example payload:

{
  "targetKeywords": ["saas onboarding", "activation"],
  "contentStyle": "Educational",
  "difficulty": "MEDIUM",
  "count": 3
}

ideas:list

List current idea items.

autoblogwriter ideas:list --workspace my-workspace
autoblogwriter ideas:list --workspace my-workspace --no-json

ideas:use-bulk

Convert idea IDs into draft posts.

autoblogwriter ideas:use-bulk --workspace my-workspace --idea-ids id1,id2,id3
autoblogwriter ideas:use-bulk --workspace my-workspace --idea-ids id1,id2,id3 --no-json

posts:list

List posts.

autoblogwriter posts:list --workspace my-workspace
autoblogwriter posts:list --workspace my-workspace --page 1 --limit 50 --status DRAFT --no-json

posts:schedule-bulk

Schedule multiple posts via JSON payload.

autoblogwriter posts:schedule-bulk --workspace my-workspace --json-file schedule.json
autoblogwriter posts:schedule-bulk --workspace my-workspace --json-file schedule.json --no-json

Example payload:

{
  "postIds": ["id1", "id2"],
  "strategy": "fixed_time",
  "timezone": "America/New_York",
  "startAt": "2026-03-01T09:00",
  "fixedTimeOfDay": "09:00",
  "skipWeekends": true
}

posts:publish-bulk

Publish multiple posts, optional integration flags via JSON payload.

autoblogwriter posts:publish-bulk --workspace my-workspace --post-ids id1,id2
autoblogwriter posts:publish-bulk --workspace my-workspace --post-ids id1,id2 --json-file publish.json --no-json

Example payload (publish.json):

{
  "publishNow": true,
  "wordpress": { "enabled": true, "postStatus": "publish" },
  "shopify": { "enabled": false, "postStatus": "draft" }
}

posts:create

Generate a post JSON payload (content + SEO + metadata), optionally save it as a draft and queue image generation.

# Generate only (not saved)
autoblogwriter posts:create --workspace my-workspace --inline '{\"keywords\":[\"saas onboarding\"]}'

# Generate + save draft
autoblogwriter posts:create --workspace my-workspace --inline '{\"keywords\":[\"saas onboarding\"]}' --save-draft

# Generate + save + queue hero image (counts image limit)
autoblogwriter posts:create --workspace my-workspace --inline '{\"keywords\":[\"saas onboarding\"]}' --save-draft --image --image-style PHOTO

runs:validate

Validate a workflow spec.

Inputs:

  • --file <path> accepts .json, .yaml, .yml
  • --inline <spec> accepts inline JSON or YAML
  • exactly one of --file or --inline
autoblogwriter runs:validate --file workflow.json
autoblogwriter runs:validate --inline '{"version":"1",...}'
autoblogwriter runs:validate --file workflow.json --var WORKSPACE=my-workspace --no-json

runs:start

Execute a full workflow (idea -> draft -> schedule -> publish).

Options:

  • --file <path> or --inline <spec>
  • --resume <runId>
  • --force-resume
  • --var key=value (repeatable)
autoblogwriter runs:start --file workflow.json
autoblogwriter runs:start --inline '{"version":"1",...}' --no-json
autoblogwriter runs:start --resume run_123

runs:status <runId>

Show persisted run status.

autoblogwriter runs:status run_123
autoblogwriter runs:status run_123 --no-json

runs:logs <runId>

Show run event logs (line-delimited JSON).

autoblogwriter runs:logs run_123
autoblogwriter runs:logs run_123 --no-json

runs:list

List run states in .autoblogwriter/runs.

autoblogwriter runs:list
autoblogwriter runs:list --no-json

JSON Output Contract

By default, commands return a JSON envelope:

{
  "ok": true,
  "command": "ideas:generate",
  "data": {},
  "meta": {},
  "error": null
}

Exit Codes

  • 0 success
  • 2 partial success
  • 10 auth/config error
  • 11 validation/spec error
  • 12 API/network failure
  • 13 rate/plan limit

Workflow Example (JSON)

{
  "version": "1",
  "workspace": "my-workspace",
  "inputs": {
    "keywords": ["saas onboarding"],
    "contentStyle": "Educational",
    "count": 2
  },
  "schedule": {
    "strategy": "fixed_time",
    "startAt": "2026-03-01T09:00",
    "timezone": "America/New_York",
    "fixedTimeOfDay": "09:00",
    "skipWeekends": true
  },
  "publish": {
    "mode": "scheduled"
  },
  "execution": {
    "continueOnError": false,
    "retry": { "maxAttempts": 2, "backoffMs": 1000 },
    "concurrency": 1
  },
  "flow": ["idea", "draft", "schedule", "publish"],
  "outputs": {
    "summaryFile": ".autoblogwriter/runs/latest-summary.json"
  }
}