| name | inngest-ctl |
| description | Inngest CLI for querying events and function runs. Use this skill when you need to:
list Inngest events, send events, get event details, check run status, monitor job duration,
list runs for an event, or cancel running functions. Trigger phrases include "list events",
"send event", "event status", "run status", "check run", "cancel run", "inngest events",
"function runs", "job status".
|
inngest-ctl Reference
A CLI tool for interacting with Inngest events and function runs.
IMPORTANT: ALWAYS use inngest-ctl for Inngest operations. NEVER fall back to raw curl commands, direct fetch calls, or constructing HTTP requests manually. The CLI handles authentication, URL construction, and response formatting automatically.
Setup
Running the CLI
bunx @ctdio/inngest-ctl <command>
alias inngest-ctl="bunx @ctdio/inngest-ctl"
Environment Variables (Required)
export INNGEST_EVENT_KEY="your-event-key"
export INNGEST_SIGNING_KEY="your-signing-key"
For Local Dev Server
Use --dev flag:
inngest-ctl events list --dev --pretty
Override URL:
export INNGEST_DEV_URL="http://localhost:9000"
Commands
List Events
inngest-ctl events list [--name <name>] [--limit <n>] [--pretty] [--dev]
Examples:
inngest-ctl events list --pretty
inngest-ctl events list --name "user.signup" --limit 10 --pretty
inngest-ctl events list --dev --pretty
Send Event
inngest-ctl events send --name "<name>" --data '<json>' [--id <id>] [--env <env>] [--dev]
inngest-ctl events send --name "<name>" --data-file <path> [--id <id>] [--env <env>] [--dev]
Providing event data — use a heredoc for anything beyond trivial payloads:
Heredoc (recommended — single command, no escaping issues):
inngest-ctl events send --name "order.created" --data "$(cat <<'EOF'
{
"orderId": "ord-123",
"items": [
{"sku": "WIDGET-1", "qty": 2, "price": 9.99},
{"sku": "GADGET-3", "qty": 1, "price": 24.50}
],
"customer": {
"id": "cust-456",
"email": "user@example.com"
}
}
EOF
)" --dev
Inline JSON (only for simple, flat payloads):
inngest-ctl events send --name "user.signup" --data '{"userId": "123"}' --dev
--data-file (when JSON already exists on disk):
inngest-ctl events send --name "user.signup" --data-file /tmp/event-data.json --dev
More send examples:
inngest-ctl events send --name "test.event" --data '{}' --dev
inngest-ctl events send --name "user.signup" --data '{"userId": "u1"}' --id "dedup-123"
inngest-ctl events send --name "order.created" --data '{"orderId": "o1"}' --env "feature/my-branch"
inngest-ctl events send --name "user.created" --data "$(cat <<'EOF'
{
"userId": "u-789",
"profile": {
"name": "Jane Doe",
"email": "jane@example.com",
"roles": ["admin", "editor"]
}
}
EOF
)" --dev
Get Event Details
inngest-ctl events get <event-id> [--pretty] [--dev]
Example:
inngest-ctl events get 01H08W4TMBNKMEWFD0TYC532GG --pretty
List Runs for Event
inngest-ctl events runs <event-id> [--pretty] [--dev]
Example:
inngest-ctl events runs 01H08W4TMBNKMEWFD0TYC532GG --pretty
Get Run Status
Monitor run status and duration.
inngest-ctl runs status <run-id> [--pretty] [--dev]
Example:
inngest-ctl runs status 01H08W5TMBNKMEWFD0TYC532GH --pretty
Get Run Details (Jobs/Steps)
inngest-ctl runs get <run-id> [--pretty] [--dev]
Example:
inngest-ctl runs get 01H08W5TMBNKMEWFD0TYC532GH --pretty
List Runs by Event
inngest-ctl runs list --event <event-id> [--pretty] [--dev]
Example:
inngest-ctl runs list --event 01H08W4TMBNKMEWFD0TYC532GG --pretty
Cancel Runs
inngest-ctl cancel --app <app> --function <fn> --started-after <time> --started-before <time> [--if <expr>]
Example:
inngest-ctl cancel --app my-app --function my-func --started-after 1h --started-before now
Global Flags
| Flag | Description |
|---|
--pretty | Human-readable output with colors |
--output <file> | Export results to JSON file |
--dev | Use local dev server (localhost:8288) |
--port <port> | Dev server port (default: 8288) |
Common Workflows
Local Development
npx inngest-cli@latest dev
inngest-ctl events list --dev --pretty
inngest-ctl events send --name "test.event" --data '{"test": true}' --dev
inngest-ctl events runs <event-id> --dev --pretty
inngest-ctl runs status <run-id> --dev --pretty
Debugging Function Runs
inngest-ctl events list --pretty
inngest-ctl events get <event-id> --pretty
inngest-ctl events runs <event-id> --pretty
inngest-ctl runs status <run-id> --pretty
inngest-ctl runs get <run-id> --pretty
Production Monitoring
inngest-ctl events list --name "user.signup" --limit 50 --pretty
inngest-ctl runs status <run-id> --pretty
inngest-ctl events list --limit 100 --output events.json
Output Format
Default output is JSON. Use --pretty for colored human-readable output:
- Event names colored by type:
- Red: error/fail events
- Green: success/complete events
- Yellow: warn events
- Blue: default
- Run status badges:
[OK], [ERR], [RUN]
- Durations show "(running)" for active runs
- Timestamps in gray