CLI (nwp)
Drive your NextWave site from the terminal. One binary, every resource, machine-readable output.
The nwp command-line tool talks to your own WordPress site over the nwp/v1 REST API. Every operation runs as the connected user and is gated by that user's WordPress capabilities — there is no central key.
Install
Run it on demand with npx — no global install required:
$ npx @island-pitch/nextwave-cli <command>Or install it globally so the bare nwp binary is on your PATH:
$ npm i -g @island-pitch/nextwave-cliConnect
The CLI reads three environment variables — your site URL, the WordPress username, and that user's Application Password. Export them once per shell:
export WORDPRESS_SITE_URL=https://members.example.com
export WORDPRESS_USERNAME=jane@example.com
export WORDPRESS_APP_PASSWORD="xxxx xxxx xxxx xxxx xxxx xxxx"Prefer not to manage env vars by hand? Run nwp configure to write a saved connection, nwp doctor to verify connectivity and surface misconfiguration, and nwp whoami to confirm which user you're authenticated as.
Commands
Every command follows the same shape: nwp <resource> <action> — for example nwp members list or nwp benefits create. The resource groups map one-to-one onto the REST surface:
| Group | What it manages |
|---|---|
members | Membership records — create, list, update, renew, and expire members. |
tiers | Membership tiers, pricing, and duration/lifetime configuration. |
benefits | Benefit definitions and their assignment to tiers. |
venues | Venues where benefits are redeemed and check-ins occur. |
redemptions | Benefit redemption records and usage tracking. |
nfc-cards | NFC card provisioning and member linkage. |
campaigns | QR and marketing campaigns. |
event-signups | Event sign-up submissions. |
signup-lists | Sign-up list definitions that collect submissions. |
landing-pages | Campaign and sign-up landing pages. |
renewal-config | Renewal reminder automation settings. |
renewal-logs | A history of sent renewal reminders. |
emcee | The live Emcee Controller experience state. |
wyr | Would You Rather experience content and rounds. |
caption-clash | Caption Clash experience content and rounds. |
ask-speaker | Ask the Speaker audience questions. |
settings | Plugin-wide settings. |
feature-flags | License-gated feature registry state. |
license | License status and activation. |
system | System info and health checks. |
cron | Scheduled task status and manual triggers. |
provision | First-run provisioning and seed operations. |
Machine-readable output
Add --output json (alias --json) to any command to get a stable JSON envelope instead of a formatted table — ideal for scripts and agents. Use --output table for the human-readable default.
$ nwp members list --output jsonSuccessful calls return a { success: true, data } envelope. Failures return the same envelope with success: false and a structured error, so you can branch on the error code rather than parsing prose:
{
"success": false,
"error": {
"code": "rest_forbidden",
"message": "You are not allowed to manage members.",
"status": 403
}
}Exit codes
The process exit code mirrors the outcome so scripts can react without parsing output:
| Exit | Meaning |
|---|---|
0 | Success. |
1 | Unexpected crash or transport failure (network, DNS, TLS). |
2 | Not found (HTTP 404) — the resource or route does not exist. |
3 | Forbidden, validation error, or a disabled feature (HTTP 403). |
4 | Unauthenticated (HTTP 401) — credentials missing or rejected. |
Stuck on an exit code or auth error? See Troubleshooting. For common multi-step workflows, see Recipes.
Self-hosted
nwp command targets the site in WORDPRESS_SITE_URL — your own WordPress install, not a shared NextWave host. Your data never leaves your infrastructure.