Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when inspecting or operating Inngest accounts, environments, keys, webhooks, app syncs, function invocations, runs, or traces through the Inngest CLI alpha REST API wrapper. Covers `npx inngest-cli@latest alpha api`, Cloud Production with `--prod`, local/custom API targets, authentication environment variables, safe secret handling, JSON body flags, and run/debug workflows.
.claude/skills/asymmetric-al-inngest-api/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 310% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 160% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 246% | 0% |
Use the alpha API CLI when the user needs account/environment operations, webhook management, app syncs, direct function invocation, or Cloud/local run inspection from Codex.
Because this command is alpha, verify the current interface before relying on memorized flags:
bashnpx inngest-cli@latest alpha api --prod --help npx inngest-cli@latest alpha api <command> --help
If the user asks about CLI agent experience, product friction, or why an agent is stuck, also read agent-friction.md.
INNGEST_API_KEY,INNGEST_SIGNING_KEY, and INNGEST_ENV.
.env files, or commandexamples.
--api-key <secret> in shell commands because it exposes the key in thetranscript and process list.
INNGEST_API_KEY in their shell/session and confirm when it is available.
listing key resources, redact sensitive token values.
By default, the command targets the local dev server.
bash# Local dev server npx inngest-cli@latest alpha api health # Inngest Cloud Production npx inngest-cli@latest alpha api --prod get-account # Branch/customer environment in Cloud INNGEST_ENV=staging npx inngest-cli@latest alpha api --prod get-webhooks # Custom API origin npx inngest-cli@latest alpha api --api-host http://127.0.0.1 --api-port 8288 health
Common target/auth flags:
--prod: target Inngest Cloud Production unless --api-host or --api-portis set.
--api-host, --api-port: target a custom API server.--config: read target configuration from an Inngest config file.--timeout: adjust HTTP timeout.--env: send X-Inngest-Env, or use INNGEST_ENV.--api-key: Bearer token, or use INNGEST_API_KEY.--signing-key: Bearer token, or use INNGEST_SIGNING_KEY.--raw: print the response body without JSON formatting.For env-scoped write operations, do not rely on implicit production targeting. Set INNGEST_ENV or pass --env explicitly and confirm the target environment before running create-webhook, sync-app, invoke-function, or patch-env.
Account and environment:
health: GET /healthget-account: GET /accountget-account-envs: GET /envs, supports --cursor and --limitcreate-env: POST /envs, supports --id, --name, --body,--body-file
patch-env: PATCH /envs/{id}, supports --id, --is-archived,--body, --body-file
Keys and webhooks:
get-account-event-keys: GET /keys/events, supports --cursor,--limit
get-account-signing-keys: GET /keys/signing, supports --cursor,--limit
get-webhooks: GET /env/webhooks, supports --cursor, --limitcreate-webhook: POST /env/webhooks, supports --name,--event-filter, --transform, --response, --body, --body-file
Apps, functions, and runs:
sync-app: POST /apps/{app_id}/syncs, supports --app-id, --url,--body, --body-file
invoke-function: POST /apps/{app_id}/functions/{function_id}/invoke,supports --app-id, --function-id, --data, --idempotency-key, --body, --body-file
get-function-run: GET /runs/{run_id}, supports --run-id,--include-output
get-function-trace: GET /runs/{run_id}/trace, supports --run-id,--include-output
Current discovery limitation: the alpha CLI does not expose list-apps, list-functions, or list-runs. If the user has not provided the required app_id, function_id, or run_id, first explain that the CLI cannot discover those IDs yet and ask for the ID or an alternate source such as the dashboard.
When validating a provided API key or a new CLI install, start with low-risk read-only calls:
bashnpx inngest-cli@latest alpha api --prod get-account npx inngest-cli@latest alpha api --prod get-account-envs --limit 5
These confirm that authentication, Cloud targeting, and account/environment access work before making changes such as app syncs, webhooks, or invocations.
INNGEST_API_KEY through the environment, notin source files or visible command text.
INNGEST_ENV.bash npx inngest-cli@latest alpha api --prod get-function-run --run-id <run_id>
bash npx inngest-cli@latest alpha api --prod get-function-trace --run-id <run_id> --include-output
Do not paste large raw traces unless the user asks.
Use sync-app when validating Cloud registration for an app URL and you already know the app ID. The current command shape is a re-sync for an existing app, not a first-time "register this serve URL" workflow.
bashnpx inngest-cli@latest alpha api --prod sync-app --app-id <app_id> --url https://example.com/api/inngest
After sync, inspect the response for registration errors and compare them to the project's serve() endpoint, INNGEST_SIGNING_KEY, and deployed URL.
Use direct invocation for manual smoke tests or operational one-offs.
bashnpx inngest-cli@latest alpha api --prod invoke-function \ --app-id <app_id> \ --function-id <function_id> \ --idempotency-key <stable_test_key> \ --data '{"example":true}'
Prefer stable idempotency keys for repeatable tests. For complex payloads, use --body-file to avoid escaping mistakes.
Before creating a webhook, list existing webhooks to avoid duplicates:
bashnpx inngest-cli@latest alpha api --prod get-webhooks
For create-webhook, prefer a body file when transforms, filters, or response templates contain quotes or multiline strings.
--raw only when a downstream toolneeds the exact response body.
actionable errors are usually enough.
page object. If page.hasMore is true,continue with --cursor <cursor> when the user needs complete results.
data; treat a missing data field as an emptylist unless an error is present.
and never write them to docs, source files, or committed fixtures.
The CLI is suitable for Codex usage because common failure modes are concise and actionable:
401 Unauthorized with access_denied;first verify a key was actually provided, then ask the user to provide or rotate INNGEST_API_KEY through the environment.
missing required --run-id.
inngest dev should be started or--prod should be used for Cloud.
404 Not Found with env_not_found; listenvironments with get-account-envs before retrying.
--raw returns compact JSON and is still parseable; prefer default formattedJSON for human summaries.
--help may hide inherited target/auth flags; check the top-levelalpha api --help when target or auth behavior is unclear.
Treat create-env, patch-env, create-webhook, sync-app, and invoke-function as mutating or side-effecting operations. Use read-only checks first, then confirm intent and target environment before running them.
These upstream Inngest instructions are vendored for agent tooling and integration work in this monorepo.
Use this skill when inngest-api matches the current Inngest task. If the right skill is unclear, start with docs/ai/skills/inngest/SKILL.md.
integration.
inngest-brownfield-audit before changing existing app workflows orfragile background work.
AGENTS.md, reporulebooks, framework docs, and runtime evidence.
INNGEST_* envrequirements out of agent-tooling-only changes.
or dependencies.
workflow behavior.
port.
docs/ai/skills/inngest/references/upstream.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→pass | 11,226 | 4,922 | -56% | 1 | 1 | 0% | 1,835 | 3,387 | +85% | 0 | 0 | — |
case-05 | pass→pass | 10,066 | 4,454 | -56% | 1 | 1 | 0% | 1,749 | 3,272 | +87% | 0 | 0 | — |
case-03 | fail→pass | 10,643 | 18,464 | +73% | 1 | 1 | 0% | 1,907 | 3,631 | +90% | 0 | 0 | — |
case-20 | pass→pass | 13,021 | 10,471 | -20% | 1 | 1 | 0% | 2,500 | 4,518 | +81% | 0 | 0 | — |
case-01 | fail→pass | 6,290 | 11,739 | +87% | 1 | 1 | 0% | 1,099 | 4,503 | +310% | 0 | 0 | — |
case-02 | fail→pass | 12,673 | 3,340 | -74% | 1 | 1 | 0% | 1,175 | 3,051 | +160% | 0 | 0 | — |
case-06 | pass→pass | 11,195 | 5,449 | -51% | 1 | 1 | 0% | 1,959 | 3,436 | +75% | 0 | 0 | — |
case-07 | fail→pass | 5,827 | 4,864 | -17% | 1 | 1 | 0% | 983 | 3,406 | +246% | 0 | 0 | — |
case-08 | fail→pass | 8,265 | 3,310 | -60% | 1 | 1 | 0% | 1,438 | 3,129 | +118% | 0 | 0 | — |
case-09 | fail→pass | 11,917 | 4,764 | -60% | 1 | 1 | 0% | 2,019 | 3,313 | +64% | 0 | 0 | — |
case-10 | pass→pass | 7,118 | 2,962 | -58% | 1 | 1 | 0% | 1,308 | 3,051 | +133% | 0 | 0 | — |
case-11 | fail→pass | 12,620 | 6,134 | -51% | 1 | 1 | 0% | 1,963 | 3,549 | +81% | 0 | 0 | — |
case-12 | fail→pass | 8,487 | 3,394 | -60% | 1 | 1 | 0% | 1,605 | 3,100 | +93% | 0 | 0 | — |
case-13 | fail→pass | 5,444 | 4,798 | -12% | 1 | 1 | 0% | 940 | 3,280 | +249% | 0 | 0 | — |
case-14 | fail→pass | 8,062 | 3,521 | -56% | 1 | 1 | 0% | 1,315 | 3,079 | +134% | 0 | 0 | — |
case-15 | fail→pass | 12,019 | 2,603 | -78% | 1 | 1 | 0% | 1,957 | 2,926 | +50% | 0 | 0 | — |
case-16 | fail→pass | 10,797 | 2,927 | -73% | 1 | 1 | 0% | 1,921 | 3,023 | +57% | 0 | 0 | — |
case-17 | fail→pass | 14,210 | 7,237 | -49% | 1 | 1 | 0% | 2,504 | 3,771 | +51% | 0 | 0 | — |
case-18 | fail→pass | 11,607 | 2,287 | -80% | 1 | 1 | 0% | 2,000 | 2,828 | +41% | 0 | 0 | — |
case-19 | fail→pass | 12,893 | 5,818 | -55% | 1 | 1 | 0% | 2,056 | 3,478 | +69% | 0 | 0 | — |
case-21 | pass→pass | 11,499 | 8,421 | -27% | 1 | 1 | 0% | 2,407 | 4,177 | +74% | 0 | 0 | — |
case-22 | pass→pass | 3,206 | 2,966 | -7% | 1 | 1 | 0% | 633 | 3,031 | +379% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +73 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.