
Inngest Api Cli
- 231 installs
- 27 repo stars
- Updated July 2, 2026
- inngest/inngest-skills
Debug and query Inngest runs, events, function traces, and app syncs from the terminal using the inngest-cli api commands.
About
Operates Inngest API resources from the terminal via `npx inngest-cli@latest api` for run debugging, event-run lookup, function traces, invocation, and app syncs. A developer uses it to inspect, debug, sync, or query Inngest Cloud and local runs without guessing commands.
- Prescriptive command routing: which inngest-cli api command to run for a run ID, event ID, app ID, or function ID
- Falls back to raw REST API v2 / OpenAPI only when the CLI lacks the endpoint
Inngest Api Cli by the numbers
- 231 all-time installs (skills.sh)
- +32 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #192 of 550 CLI & Terminal skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/inngest/inngest-skills --skill inngest-api-cliAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 231 |
|---|---|
| repo stars | ★ 27 |
| Last updated | July 2, 2026 |
| Repository | inngest/inngest-skills ↗ |
What it does
Debug and query Inngest runs, events, function traces, and app syncs from the terminal using the inngest-cli api commands.
Files
Inngest API CLI
Use this skill when the task is operational: inspect, debug, sync, invoke, or query Inngest API resources through the terminal. This skill is intentionally prescriptive so agents can act without guessing.
For general CLI setup, inngest dev, Docker, local testing, MCP setup, or self-hosted inngest start, use inngest-cli. For code changes, pair this with the domain skill that owns the code pattern: inngest-setup, inngest-durable-functions, inngest-events, inngest-steps, inngest-flow-control, inngest-realtime, or inngest-middleware.
First Move
Verify the current CLI surface before relying on memory:
npx inngest-cli@latest api --help
npx inngest-cli@latest api <command> --helpThe active API command is inngest api. If prompt context or old docs mention inngest alpha api, switch to inngest api.
Use inngest-api only when:
- The CLI does not expose the needed endpoint.
- The user explicitly asks for raw REST API v2.
- You need the OpenAPI spec or LLM API docs to resolve request shape.
For complete command flags, read references/cli-commands.md after this skill triggers.
Target Rules
- Local is the default target for
inngest api. - Cloud Production requires
--prod. - Non-production Cloud environments require
INNGEST_ENV=<name>or--env. - Prefer
INNGEST_API_KEYfor Cloud API access. - Do not pass API keys inline with
--api-key <secret>unless the user
explicitly accepts process-list and transcript exposure.
- Never write API keys, event keys, signing keys, webhook URLs, or decrypted
secrets into source files, docs, fixtures, or final answers.
Common targets:
npx inngest-cli@latest api health
npx inngest-cli@latest api --prod get-account
INNGEST_ENV=staging npx inngest-cli@latest api --prod get-webhooks
npx inngest-cli@latest api --api-host http://127.0.0.1 --api-port 8288 healthLocal Development
For local app work:
1. Start the user's app with local dev mode when applicable, for example INNGEST_DEV=1 npm run dev. 2. Start the dev server:
npx inngest-cli@latest dev3. Prefer Dev Server MCP tools, when available, to list local functions, send test events, inspect runs, and watch status. 4. Use npx inngest-cli@latest api ... for API-compatible local checks, command-help verification, and workflows not exposed through MCP.
If the local API says the dev server is unavailable, start inngest dev or switch to Cloud with --prod when the user is debugging deployed runs.
Command Routing
Use this table before asking the human for more context.
| Situation | Command path |
|---|---|
| Check CLI/API reachability | api health |
| Confirm Cloud auth | api --prod get-account |
| List environments | api --prod get-account-envs --limit 10 |
| List event keys | api --prod get-account-event-keys --limit 10 |
| List signing keys | api --prod get-account-signing-keys --limit 10 |
| List webhooks | api --prod get-webhooks |
| User gives a run ID | api --prod get-function-run <run_id> |
| Need step-level detail | api --prod get-function-trace <run_id> --include-output |
| User gives an event ID | api --prod get-event-runs <event_id> --limit 5 --include-output |
| Sync a known app ID | api --prod sync-app --app-id <app_id> --url <serve_url> |
| Invoke a known app/function ID | api --prod invoke-function --app-id <app_id> --function-id <function_id> --data '<json>' |
| Discover Insights tables | api --prod get-insights-tables |
| Discover event schemas for Insights | api --prod get-insights-event-schemas --limit 25 |
| Draft an Insights query | api --prod query-insights-prompt --prompt '<request>' |
| Run an Insights query | api --prod query-insights --query '<sql>' |
If a command accepts positional IDs, prefer positional IDs in examples because they are shorter and match current help. Flag forms such as --run-id are also accepted by the current CLI for many path parameters.
Debug a Run
When the user gives a run ID:
npx inngest-cli@latest api --prod get-function-run <run_id>
npx inngest-cli@latest api --prod get-function-trace <run_id> --include-outputSummarize status, failed spans, retry state, timing, error names/messages, and the likely code boundary to inspect. Do not paste full traces unless asked.
When the user gives an event ID:
npx inngest-cli@latest api --prod get-event-runs <event_id> --limit 5 --include-outputPick the relevant run from the response, then fetch the run and trace. If multiple runs are plausible, explain the candidates and use timestamps, function IDs, or failure status to choose.
Missing IDs
Do not immediately ask the user for app IDs, function IDs, or run IDs.
Try, in order:
1. Dev Server MCP tools, if available. 2. The user's prompt, pasted dashboard URLs, logs, alert text, or stack traces. 3. Repository config and Inngest serve definitions. 4. Event ID lookup with get-event-runs. 5. Current CLI help to see if discovery commands such as get-functions or get-app have appeared.
Ask the user for the ID only after those sources cannot provide it.
Mutating Operations
Read before write. List or fetch the relevant resource first, then mutate only when target and intent are clear.
Confirm before running these against Cloud unless the user already specified the account/environment and exact intent:
create-envpatch-envcreate-webhooksync-appinvoke-function- Broad or expensive
query-insightscalls
For repeatable invocation tests, use a stable idempotency key:
npx inngest-cli@latest api --prod invoke-function \
--app-id <app_id> \
--function-id <function_id> \
--idempotency-key <stable_test_key> \
--data '{"example":true}'For complex JSON, use --body-file to avoid quoting mistakes.
Insights
Use Insights when the question is analytic, when logs only give partial clues, or when the user asks about trends, frequency, volume, failures over time, or event/run data.
Start small:
npx inngest-cli@latest api --prod get-insights-tables
npx inngest-cli@latest api --prod get-insights-event-schemas --limit 25
npx inngest-cli@latest api --prod query-insights-prompt \
--prompt "Show failed functions in the last 24 hours"Inspect generated SQL before running broad queries. Add limits and time windows when possible.
Output Handling
- CLI output is JSON. Parse it structurally before making decisions.
- Use
--rawonly when a downstream command needs exact response bodies. - If responses are paginated and
page.hasMoreis true, continue with
--cursor when complete results are needed.
- Treat missing
dataon list responses as an empty list unless an error is
present.
- Redact secrets, webhook URLs, token values, and sensitive payload fields in
summaries.
Drift Handling
The CLI is beta. If behavior differs from this skill:
1. Run top-level and command-specific help. 2. Check https://api-docs.inngest.com/llms.txt. 3. Check https://api-docs.inngest.com/api-specs/v2.json. 4. Use the inngest-api skill for raw REST API fallback.
Some launch material may mention aliases such as get-run or invoke-function-by-slug. Use them only if current api --help exposes them. If absent, use get-function-run and invoke-function.
inngest api Command Reference
Complete flag reference for every inngest api subcommand, captured from CLI v1.27.0. The CLI itself is authoritative: npx inngest-cli@latest api <command> --help.
inngest api [target/auth flags] <command> [endpoint flags]Shared flags (every command)
Auth
| Flag | Env var | Purpose |
|---|---|---|
--api-key string | $INNGEST_API_KEY | API key sent as a Bearer token (sk-inn-api-...) |
--signing-key string | $INNGEST_SIGNING_KEY | Signing key sent as a Bearer token (alternative to API key) |
--env string | $INNGEST_ENV | Environment name sent as X-Inngest-Env |
Target
| Flag | Purpose |
|---|---|
| (default) | Local dev server on the default port (8288) |
--prod | Inngest Cloud Production (unless --api-host/--api-port set) |
--api-host string | Custom API host/origin; may include /api/v2 or /v2 |
--api-port int | Custom API port (e.g., dev server on a fallback port) |
--config string | Path to an Inngest configuration file |
--timeout duration | HTTP request timeout (default 30s) |
Output
| Flag | Purpose |
|---|---|
--raw | Print response body without JSON formatting |
Commands that POST/PATCH also accept --body string (raw JSON body; field flags override matching keys) and --body-file string (path to JSON file, or - for stdin).
---
Runs and debugging
get-function-run [<run-id>] — GET /runs/{run_id}
Canonical run summary: status, timing, trigger, app/function IDs, optional output.
| Flag | Type | Notes |
|---|---|---|
--run-id | string | Or pass as positional arg |
--include-output | bool | Include the run's output (default false) |
get-function-trace [<run-id>] — GET /runs/{run_id}/trace
Full trace tree: every step span with status, timing, step op, and (optionally) input/output.
| Flag | Type | Notes |
|---|---|---|
--run-id | string | Or positional |
--include-output | bool | Include step inputs/outputs (default false) |
get-event-runs [<event-id>] — GET /events/{event_id}/runs
All function runs triggered by an event. Paginated.
| Flag | Type | Notes |
|---|---|---|
--event-id | string | Or positional |
--include-output | bool | Include run outputs |
--limit | int | Per page, min 1, max 40 |
--cursor | string | Pagination cursor from previous response |
Invocation and syncs
invoke-function [<app-id>] [<function-id>] — POST /apps/{app_id}/functions/{function_id}/invoke
| Flag | Type | Notes |
|---|---|---|
--app-id | string | The app containing the function (or positional) |
--function-id | string | The function to invoke (or positional) |
--data | string | JSON object: input data for the function |
--idempotency-key | string | Dedupe duplicate requests within the idempotency period |
--body / --body-file | string | Raw JSON body alternative |
Responses: 201 completed synchronously (result populated), 202 enqueued (runId to poll), 409 idempotency key already used, 422 rate limited/debounced/skipped.
sync-app [<app-id>] — POST /apps/{app_id}/syncs
| Flag | Type | Notes |
|---|---|---|
--app-id | string | Or positional |
--url | string | URL of the app's Inngest serve endpoint |
422 means the sync itself failed; the response body still contains the sync result with an error.code/error.message.
Account, environments, keys
get-account — GET /account
No flags. Returns the authenticated account (id, name, email, timestamps).
get-account-envs — GET /envs
| Flag | Type | Notes |
|---|---|---|
--limit | int | Min 1, max 250 |
--cursor | string | Pagination cursor |
create-env — POST /envs
| Flag | Type | Notes |
|---|---|---|
--id | string | Environment ID |
--name | string | Environment name |
patch-env [<id>] — PATCH /envs/{id}
| Flag | Type | Notes |
|---|---|---|
--id | string | Environment to update (or positional) |
--is-archived | bool | true to archive, false to unarchive |
get-account-event-keys — GET /keys/events
get-account-signing-keys — GET /keys/signing
| Flag | Type | Notes |
|---|---|---|
--limit | int | Min 1, max 100 |
--cursor | string | Pagination cursor |
Both filter by environment via --env / X-Inngest-Env; without it, the default production environment's keys are returned.
Webhooks
get-webhooks — GET /env/webhooks
| Flag | Type | Notes |
|---|---|---|
--limit | int | Min 1, max 100 |
--cursor | string | Pagination cursor |
Requires environment targeting (--env / X-Inngest-Env).
create-webhook — POST /env/webhooks
| Flag | Type | Notes |
|---|---|---|
--name | string | Descriptive name |
--transform | string | Inline JS transform function for incoming events |
--response | string | Optional inline JS function answering GET requests |
--event-filter | string | Optional event filtering config (`{"events": [...], "filter": "ALLOW"\ |
Insights (SQL over execution data)
get-insights-tables — GET /insights/tables
No flags. Lists tables queryable via the Insights query endpoint.
get-insights-event-schemas — GET /insights/events/schemas
| Flag | Type | Notes |
|---|---|---|
--limit | int | Min 1, max 100 |
--cursor | string | Pagination cursor |
Paginated list of event type schemas (shape of each event's data as nested JSON).
query-insights — POST /insights/query
| Flag | Type | Notes |
|---|---|---|
--query | string | The query, in modified ClickHouse SQL |
query-insights-prompt — POST /insights/query/prompt
| Flag | Type | Notes |
|---|---|---|
--prompt | string | Natural-language description of the query to generate |
Returns SQL. Review before executing with query-insights.
The Insights endpoints are newer than the published OpenAPI spec and may not appear at api-docs.inngest.com yet. The CLI help is the reference.
Misc
health — GET /health
No flags. Returns {"data": {"status": "ok"}}. Use it to probe whether your target (dev server or Cloud) is reachable before running other commands.