ProsewireDocs

Automate publishing with the CLI

Install the Prosewire CLI, configure a scoped key, and distinguish reads from mutations.

Install

pnpm add --global @prosewire/cli
prosewire --help

The CLI supports Node.js 24 or newer.

Use --url to override PROSEWIRE_API_URL, --blog to override PROSEWIRE_BLOG, and --key to override PROSEWIRE_API_KEY. The URL defaults to http://localhost:3000; a publication slug is always required for public reads.

Read public content

export PROSEWIRE_API_URL=https://your-prosewire-deployment
export PROSEWIRE_BLOG=fieldnotes

prosewire posts --search portable
prosewire get shipping-with-confidence

posts and get are read-only. They use public endpoints and do not require an API key.

Mutate content

Create a publication-scoped key in Settings → Developer, grant content:write, and keep it out of shell history and committed files.

export PROSEWIRE_API_KEY=pw_live_...

prosewire create --data post.json
prosewire update 00000000-0000-4000-8000-000000000000 --data changes.json
prosewire archive 00000000-0000-4000-8000-000000000000 --yes

create and update are mutating. archive is destructive because it removes the post from public surfaces; it refuses to run without explicit --yes confirmation. All private commands are limited to the publication and scopes of the supplied key.

JSON request files

Create accepts the management API’s post-create shape. blogId and authorId are UUIDs, not slugs:

{
  "blogId": "00000000-0000-4000-8000-000000000000",
  "authorId": "00000000-0000-4000-8000-000000000001",
  "title": "Shipping with confidence",
  "slug": "shipping-with-confidence",
  "contentMarkdown": "## Start here\n\nWrite the useful part first.",
  "status": "draft",
  "locale": "en"
}

Update accepts a partial post body, for example:

{
  "seoTitle": "Shipping with confidence",
  "seoDescription": "A practical release checklist.",
  "status": "published"
}

Use an existing authenticated post response or portable export to resolve publication and author IDs. The current management API does not expose a standalone author-list endpoint.