productivity
Novu CLI for AI Agents
Use the Novu CLI from KosmoKrator to call Novu tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Novu CLI Setup
Novu can be configured headlessly with `kosmokrator integrations:configure novu`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure novu --set api_key="$NOVU_API_KEY" --enable --read allow --write ask --json
kosmokrator integrations:doctor novu --json
kosmokrator integrations:status --json Credentials
Authentication type: API key api_key. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
api_key | NOVU_API_KEY | Secret secret | yes | API Key |
url | NOVU_URL | URL url | no | Novu API URL |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call novu.novu_list_notifications '{"page":1,"limit":1,"channel":"example_channel"}' --json kosmo integrations:novu novu_list_notifications '{"page":1,"limit":1,"channel":"example_channel"}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs novu --json
kosmo integrations:docs novu.novu_list_notifications --json
kosmo integrations:schema novu.novu_list_notifications --json
kosmo integrations:search "Novu" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
novu.novu_list_notifications
List notifications from Novu. Returns a paginated list of notifications, optionally filtered by channel (e.g., in_app, email, sms, chat, push).
read - Parameters
- page, limit, channel
kosmo integrations:call novu.novu_list_notifications '{"page":1,"limit":1,"channel":"example_channel"}' --json kosmo integrations:novu novu_list_notifications '{"page":1,"limit":1,"channel":"example_channel"}' --json novu.novu_get_notification
Get details of a specific notification in Novu by its ID. Returns the full notification object including status, channel data, and content.
read - Parameters
- id
kosmo integrations:call novu.novu_get_notification '{"id":"example_id"}' --json kosmo integrations:novu novu_get_notification '{"id":"example_id"}' --json novu.novu_list_subscribers
List subscribers from Novu. Returns a paginated list of all notification subscribers with their details.
read - Parameters
- page, limit
kosmo integrations:call novu.novu_list_subscribers '{"page":1,"limit":1}' --json kosmo integrations:novu novu_list_subscribers '{"page":1,"limit":1}' --json novu.novu_get_subscriber
Get details of a specific subscriber in Novu by their ID. Returns the subscriber profile including email, phone, and preferences.
read - Parameters
- id
kosmo integrations:call novu.novu_get_subscriber '{"id":"example_id"}' --json kosmo integrations:novu novu_get_subscriber '{"id":"example_id"}' --json novu.novu_create_subscriber
Create a new subscriber in Novu. Requires an email address. Optionally include first name, last name, and phone number.
write - Parameters
- email, firstName, lastName, phone
kosmo integrations:call novu.novu_create_subscriber '{"email":"example_email","firstName":"example_firstName","lastName":"example_lastName","phone":"example_phone"}' --json kosmo integrations:novu novu_create_subscriber '{"email":"example_email","firstName":"example_firstName","lastName":"example_lastName","phone":"example_phone"}' --json novu.novu_trigger_event
Trigger a notification event in Novu. Sends a notification based on a workflow template to one or more subscribers. The "to" field can be a subscriber ID, email address, or an array of recipients.
write - Parameters
- name, to, payload
kosmo integrations:call novu.novu_trigger_event '{"name":"example_name","to":"example_to","payload":"example_payload"}' --json kosmo integrations:novu novu_trigger_event '{"name":"example_name","to":"example_to","payload":"example_payload"}' --json novu.novu_get_current_user
Get the currently authenticated Novu user. Returns user profile information including name, email, and organization details.
read - Parameters
- none
kosmo integrations:call novu.novu_get_current_user '{}' --json kosmo integrations:novu novu_get_current_user '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
novu.novu_list_notifications 3 parameters
kosmo integrations:schema novu.novu_list_notifications --json | Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (1-based, default: 1). |
limit | integer | no | Number of notifications per page (default: 10, max: 100). |
channel | string | no | Filter by notification channel. Options: in_app, email, sms, chat, push. |
novu.novu_get_notification 1 parameters
kosmo integrations:schema novu.novu_get_notification --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The notification ID. |
novu.novu_list_subscribers 2 parameters
kosmo integrations:schema novu.novu_list_subscribers --json | Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number for pagination (0-based, default: 0). |
limit | integer | no | Number of subscribers per page (default: 10, max: 100). |
novu.novu_get_subscriber 1 parameters
kosmo integrations:schema novu.novu_get_subscriber --json | Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The subscriber ID. |
novu.novu_create_subscriber 4 parameters
kosmo integrations:schema novu.novu_create_subscriber --json | Parameter | Type | Required | Description |
|---|---|---|---|
email | string | yes | The subscriber's email address. |
firstName | string | no | The subscriber's first name. |
lastName | string | no | The subscriber's last name. |
phone | string | no | The subscriber's phone number (e.g., "+1234567890"). |
novu.novu_trigger_event 3 parameters
kosmo integrations:schema novu.novu_trigger_event --json | Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | The workflow trigger key / template name (e.g., "onboarding-welcome"). |
to | string | yes | Recipient — a subscriber ID, email address, or JSON-encoded array of recipient identifiers. |
payload | object | no | Key-value pairs to pass as template variables (e.g., {"name": "John", "plan": "Pro"}). |
novu.novu_get_current_user 0 parameters
kosmo integrations:schema novu.novu_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.