[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-inngest-inngest-api-cli":3,"mdc--cwft55-key":41,"related-org-inngest-inngest-api-cli":1728,"related-repo-inngest-inngest-api-cli":1885},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":36,"sourceUrl":39,"mdContent":40},"inngest-api-cli","operate Inngest API resources via CLI","Use when operating Inngest API resources from the terminal with `npx inngest-cli@latest api`: Cloud\u002Flocal run debugging, event-run lookup, function traces, function invocation, app syncs, webhooks, environments, keys, account checks, and Insights queries. Provides prescriptive command routing for agents: which CLI command to run for a run ID, event ID, app ID, function ID, Cloud environment, API key, missing ID, or potentially mutating operation. Use `inngest-cli` for dev server setup\u002Fgeneral CLI workflows and `inngest-api` only when raw REST API v2 docs or OpenAPI fallback are needed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"inngest","Inngest","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Finngest.png",[12,16,17,20],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"CLI","cli",{"name":21,"slug":22,"type":15},"API Development","api-development",26,"https:\u002F\u002Fgithub.com\u002Finngest\u002Finngest-skills","2026-07-12T07:36:47.58183",null,5,[29,30,31,32,33,34,35],"agent-skill-repository","agent-skills","agentic-skills","ai-agents","claude-code-skills","cursor-skills","openclaw-skills",{"repoUrl":24,"stars":23,"forks":27,"topics":37,"description":38},[29,30,31,32,33,34,35],"Agent Skills for building with Inngest","https:\u002F\u002Fgithub.com\u002Finngest\u002Finngest-skills\u002Ftree\u002FHEAD\u002Fskills\u002Finngest-api-cli","---\nname: inngest-api-cli\ndescription: >-\n  Use when operating Inngest API resources from the terminal with\n  `npx inngest-cli@latest api`: Cloud\u002Flocal run debugging, event-run lookup,\n  function traces, function invocation, app syncs, webhooks, environments,\n  keys, account checks, and Insights queries. Provides prescriptive command\n  routing for agents: which CLI command to run for a run ID, event ID, app ID,\n  function ID, Cloud environment, API key, missing ID, or potentially mutating\n  operation. Use `inngest-cli` for dev server setup\u002Fgeneral CLI workflows and\n  `inngest-api` only when raw REST API v2 docs or OpenAPI fallback are needed.\n---\n\n# Inngest API CLI\n\nUse this skill when the task is operational: inspect, debug, sync, invoke, or\nquery Inngest API resources through the terminal. This skill is intentionally\nprescriptive so agents can act without guessing.\n\nFor general CLI setup, `inngest dev`, Docker, local testing, MCP setup, or\nself-hosted `inngest start`, use `inngest-cli`. For code changes, pair this\nwith the domain skill that owns the code pattern: `inngest-setup`,\n`inngest-durable-functions`, `inngest-events`, `inngest-steps`,\n`inngest-flow-control`, `inngest-realtime`, or `inngest-middleware`.\n\n## First Move\n\nVerify the current CLI surface before relying on memory:\n\n```bash\nnpx inngest-cli@latest api --help\nnpx inngest-cli@latest api \u003Ccommand> --help\n```\n\nThe active API command is `inngest api`. If prompt context or old docs mention\n`inngest alpha api`, switch to `inngest api`.\n\nUse `inngest-api` only when:\n\n- The CLI does not expose the needed endpoint.\n- The user explicitly asks for raw REST API v2.\n- You need the OpenAPI spec or LLM API docs to resolve request shape.\n\nFor complete command flags, read\n[references\u002Fcli-commands.md](references\u002Fcli-commands.md) after this skill\ntriggers.\n\n## Target Rules\n\n- Local is the default target for `inngest api`.\n- Cloud Production requires `--prod`.\n- Non-production Cloud environments require `INNGEST_ENV=\u003Cname>` or `--env`.\n- Prefer `INNGEST_API_KEY` for Cloud API access.\n- Do not pass API keys inline with `--api-key \u003Csecret>` unless the user\n  explicitly accepts process-list and transcript exposure.\n- Never write API keys, event keys, signing keys, webhook URLs, or decrypted\n  secrets into source files, docs, fixtures, or final answers.\n\nCommon targets:\n\n```bash\nnpx inngest-cli@latest api health\nnpx inngest-cli@latest api --prod get-account\nINNGEST_ENV=staging npx inngest-cli@latest api --prod get-webhooks\nnpx inngest-cli@latest api --api-host http:\u002F\u002F127.0.0.1 --api-port 8288 health\n```\n\n## Local Development\n\nFor local app work:\n\n1. Start the user's app with local dev mode when applicable, for example\n   `INNGEST_DEV=1 npm run dev`.\n2. Start the dev server:\n\n   ```bash\n   npx inngest-cli@latest dev\n   ```\n\n3. Prefer Dev Server MCP tools, when available, to list local functions, send\n   test events, inspect runs, and watch status.\n4. Use `npx inngest-cli@latest api ...` for API-compatible local checks,\n   command-help verification, and workflows not exposed through MCP.\n\nIf the local API says the dev server is unavailable, start `inngest dev` or\nswitch to Cloud with `--prod` when the user is debugging deployed runs.\n\n## Command Routing\n\nUse this table before asking the human for more context.\n\n| Situation | Command path |\n| --- | --- |\n| Check CLI\u002FAPI reachability | `api health` |\n| Confirm Cloud auth | `api --prod get-account` |\n| List environments | `api --prod get-account-envs --limit 10` |\n| List event keys | `api --prod get-account-event-keys --limit 10` |\n| List signing keys | `api --prod get-account-signing-keys --limit 10` |\n| List webhooks | `api --prod get-webhooks` |\n| User gives a run ID | `api --prod get-function-run \u003Crun_id>` |\n| Need step-level detail | `api --prod get-function-trace \u003Crun_id> --include-output` |\n| User gives an event ID | `api --prod get-event-runs \u003Cevent_id> --limit 5 --include-output` |\n| Sync a known app ID | `api --prod sync-app --app-id \u003Capp_id> --url \u003Cserve_url>` |\n| Invoke a known app\u002Ffunction ID | `api --prod invoke-function --app-id \u003Capp_id> --function-id \u003Cfunction_id> --data '\u003Cjson>'` |\n| Discover Insights tables | `api --prod get-insights-tables` |\n| Discover event schemas for Insights | `api --prod get-insights-event-schemas --limit 25` |\n| Draft an Insights query | `api --prod query-insights-prompt --prompt '\u003Crequest>'` |\n| Run an Insights query | `api --prod query-insights --query '\u003Csql>'` |\n\nIf a command accepts positional IDs, prefer positional IDs in examples because\nthey are shorter and match current help. Flag forms such as `--run-id` are also\naccepted by the current CLI for many path parameters.\n\n## Debug a Run\n\nWhen the user gives a run ID:\n\n```bash\nnpx inngest-cli@latest api --prod get-function-run \u003Crun_id>\nnpx inngest-cli@latest api --prod get-function-trace \u003Crun_id> --include-output\n```\n\nSummarize status, failed spans, retry state, timing, error names\u002Fmessages, and\nthe likely code boundary to inspect. Do not paste full traces unless asked.\n\nWhen the user gives an event ID:\n\n```bash\nnpx inngest-cli@latest api --prod get-event-runs \u003Cevent_id> --limit 5 --include-output\n```\n\nPick the relevant run from the response, then fetch the run and trace. If\nmultiple runs are plausible, explain the candidates and use timestamps,\nfunction IDs, or failure status to choose.\n\n## Missing IDs\n\nDo not immediately ask the user for app IDs, function IDs, or run IDs.\n\nTry, in order:\n\n1. Dev Server MCP tools, if available.\n2. The user's prompt, pasted dashboard URLs, logs, alert text, or stack traces.\n3. Repository config and Inngest serve definitions.\n4. Event ID lookup with `get-event-runs`.\n5. Current CLI help to see if discovery commands such as `get-functions` or\n   `get-app` have appeared.\n\nAsk the user for the ID only after those sources cannot provide it.\n\n## Mutating Operations\n\nRead before write. List or fetch the relevant resource first, then mutate only\nwhen target and intent are clear.\n\nConfirm before running these against Cloud unless the user already specified\nthe account\u002Fenvironment and exact intent:\n\n- `create-env`\n- `patch-env`\n- `create-webhook`\n- `sync-app`\n- `invoke-function`\n- Broad or expensive `query-insights` calls\n\nFor repeatable invocation tests, use a stable idempotency key:\n\n```bash\nnpx inngest-cli@latest api --prod invoke-function \\\n  --app-id \u003Capp_id> \\\n  --function-id \u003Cfunction_id> \\\n  --idempotency-key \u003Cstable_test_key> \\\n  --data '{\"example\":true}'\n```\n\nFor complex JSON, use `--body-file` to avoid quoting mistakes.\n\n## Insights\n\nUse Insights when the question is analytic, when logs only give partial clues,\nor when the user asks about trends, frequency, volume, failures over time, or\nevent\u002Frun data.\n\nStart small:\n\n```bash\nnpx inngest-cli@latest api --prod get-insights-tables\nnpx inngest-cli@latest api --prod get-insights-event-schemas --limit 25\nnpx inngest-cli@latest api --prod query-insights-prompt \\\n  --prompt \"Show failed functions in the last 24 hours\"\n```\n\nInspect generated SQL before running broad queries. Add limits and time windows\nwhen possible.\n\n## Output Handling\n\n- CLI output is JSON. Parse it structurally before making decisions.\n- Use `--raw` only when a downstream command needs exact response bodies.\n- If responses are paginated and `page.hasMore` is true, continue with\n  `--cursor` when complete results are needed.\n- Treat missing `data` on list responses as an empty list unless an error is\n  present.\n- Redact secrets, webhook URLs, token values, and sensitive payload fields in\n  summaries.\n\n## Drift Handling\n\nThe CLI is beta. If behavior differs from this skill:\n\n1. Run top-level and command-specific help.\n2. Check `https:\u002F\u002Fapi-docs.inngest.com\u002Fllms.txt`.\n3. Check `https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json`.\n4. Use the `inngest-api` skill for raw REST API fallback.\n\nSome launch material may mention aliases such as `get-run` or\n`invoke-function-by-slug`. Use them only if current `api --help` exposes them.\nIf absent, use `get-function-run` and `invoke-function`.\n",{"data":42,"body":43},{"name":4,"description":6},{"type":44,"children":45},"root",[46,54,60,143,150,155,236,263,276,296,309,315,392,397,531,537,542,603,622,628,633,916,929,935,940,1034,1039,1044,1106,1111,1117,1122,1127,1178,1183,1189,1194,1199,1260,1265,1412,1425,1431,1436,1441,1556,1561,1567,1626,1632,1637,1680,1722],{"type":47,"tag":48,"props":49,"children":50},"element","h1",{"id":4},[51],{"type":52,"value":53},"text","Inngest API CLI",{"type":47,"tag":55,"props":56,"children":57},"p",{},[58],{"type":52,"value":59},"Use this skill when the task is operational: inspect, debug, sync, invoke, or\nquery Inngest API resources through the terminal. This skill is intentionally\nprescriptive so agents can act without guessing.",{"type":47,"tag":55,"props":61,"children":62},{},[63,65,72,74,80,82,88,90,96,98,104,106,112,113,119,120,126,127,133,135,141],{"type":52,"value":64},"For general CLI setup, ",{"type":47,"tag":66,"props":67,"children":69},"code",{"className":68},[],[70],{"type":52,"value":71},"inngest dev",{"type":52,"value":73},", Docker, local testing, MCP setup, or\nself-hosted ",{"type":47,"tag":66,"props":75,"children":77},{"className":76},[],[78],{"type":52,"value":79},"inngest start",{"type":52,"value":81},", use ",{"type":47,"tag":66,"props":83,"children":85},{"className":84},[],[86],{"type":52,"value":87},"inngest-cli",{"type":52,"value":89},". For code changes, pair this\nwith the domain skill that owns the code pattern: ",{"type":47,"tag":66,"props":91,"children":93},{"className":92},[],[94],{"type":52,"value":95},"inngest-setup",{"type":52,"value":97},",\n",{"type":47,"tag":66,"props":99,"children":101},{"className":100},[],[102],{"type":52,"value":103},"inngest-durable-functions",{"type":52,"value":105},", ",{"type":47,"tag":66,"props":107,"children":109},{"className":108},[],[110],{"type":52,"value":111},"inngest-events",{"type":52,"value":105},{"type":47,"tag":66,"props":114,"children":116},{"className":115},[],[117],{"type":52,"value":118},"inngest-steps",{"type":52,"value":97},{"type":47,"tag":66,"props":121,"children":123},{"className":122},[],[124],{"type":52,"value":125},"inngest-flow-control",{"type":52,"value":105},{"type":47,"tag":66,"props":128,"children":130},{"className":129},[],[131],{"type":52,"value":132},"inngest-realtime",{"type":52,"value":134},", or ",{"type":47,"tag":66,"props":136,"children":138},{"className":137},[],[139],{"type":52,"value":140},"inngest-middleware",{"type":52,"value":142},".",{"type":47,"tag":144,"props":145,"children":147},"h2",{"id":146},"first-move",[148],{"type":52,"value":149},"First Move",{"type":47,"tag":55,"props":151,"children":152},{},[153],{"type":52,"value":154},"Verify the current CLI surface before relying on memory:",{"type":47,"tag":156,"props":157,"children":162},"pre",{"className":158,"code":159,"language":160,"meta":161,"style":161},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx inngest-cli@latest api --help\nnpx inngest-cli@latest api \u003Ccommand> --help\n","bash","",[163],{"type":47,"tag":66,"props":164,"children":165},{"__ignoreMap":161},[166,194],{"type":47,"tag":167,"props":168,"children":171},"span",{"class":169,"line":170},"line",1,[172,178,184,189],{"type":47,"tag":167,"props":173,"children":175},{"style":174},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[176],{"type":52,"value":177},"npx",{"type":47,"tag":167,"props":179,"children":181},{"style":180},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[182],{"type":52,"value":183}," inngest-cli@latest",{"type":47,"tag":167,"props":185,"children":186},{"style":180},[187],{"type":52,"value":188}," api",{"type":47,"tag":167,"props":190,"children":191},{"style":180},[192],{"type":52,"value":193}," --help\n",{"type":47,"tag":167,"props":195,"children":197},{"class":169,"line":196},2,[198,202,206,210,216,221,227,232],{"type":47,"tag":167,"props":199,"children":200},{"style":174},[201],{"type":52,"value":177},{"type":47,"tag":167,"props":203,"children":204},{"style":180},[205],{"type":52,"value":183},{"type":47,"tag":167,"props":207,"children":208},{"style":180},[209],{"type":52,"value":188},{"type":47,"tag":167,"props":211,"children":213},{"style":212},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[214],{"type":52,"value":215}," \u003C",{"type":47,"tag":167,"props":217,"children":218},{"style":180},[219],{"type":52,"value":220},"comman",{"type":47,"tag":167,"props":222,"children":224},{"style":223},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[225],{"type":52,"value":226},"d",{"type":47,"tag":167,"props":228,"children":229},{"style":212},[230],{"type":52,"value":231},">",{"type":47,"tag":167,"props":233,"children":234},{"style":180},[235],{"type":52,"value":193},{"type":47,"tag":55,"props":237,"children":238},{},[239,241,247,249,255,257,262],{"type":52,"value":240},"The active API command is ",{"type":47,"tag":66,"props":242,"children":244},{"className":243},[],[245],{"type":52,"value":246},"inngest api",{"type":52,"value":248},". If prompt context or old docs mention\n",{"type":47,"tag":66,"props":250,"children":252},{"className":251},[],[253],{"type":52,"value":254},"inngest alpha api",{"type":52,"value":256},", switch to ",{"type":47,"tag":66,"props":258,"children":260},{"className":259},[],[261],{"type":52,"value":246},{"type":52,"value":142},{"type":47,"tag":55,"props":264,"children":265},{},[266,268,274],{"type":52,"value":267},"Use ",{"type":47,"tag":66,"props":269,"children":271},{"className":270},[],[272],{"type":52,"value":273},"inngest-api",{"type":52,"value":275}," only when:",{"type":47,"tag":277,"props":278,"children":279},"ul",{},[280,286,291],{"type":47,"tag":281,"props":282,"children":283},"li",{},[284],{"type":52,"value":285},"The CLI does not expose the needed endpoint.",{"type":47,"tag":281,"props":287,"children":288},{},[289],{"type":52,"value":290},"The user explicitly asks for raw REST API v2.",{"type":47,"tag":281,"props":292,"children":293},{},[294],{"type":52,"value":295},"You need the OpenAPI spec or LLM API docs to resolve request shape.",{"type":47,"tag":55,"props":297,"children":298},{},[299,301,307],{"type":52,"value":300},"For complete command flags, read\n",{"type":47,"tag":302,"props":303,"children":305},"a",{"href":304},"references\u002Fcli-commands.md",[306],{"type":52,"value":304},{"type":52,"value":308}," after this skill\ntriggers.",{"type":47,"tag":144,"props":310,"children":312},{"id":311},"target-rules",[313],{"type":52,"value":314},"Target Rules",{"type":47,"tag":277,"props":316,"children":317},{},[318,329,341,361,374,387],{"type":47,"tag":281,"props":319,"children":320},{},[321,323,328],{"type":52,"value":322},"Local is the default target for ",{"type":47,"tag":66,"props":324,"children":326},{"className":325},[],[327],{"type":52,"value":246},{"type":52,"value":142},{"type":47,"tag":281,"props":330,"children":331},{},[332,334,340],{"type":52,"value":333},"Cloud Production requires ",{"type":47,"tag":66,"props":335,"children":337},{"className":336},[],[338],{"type":52,"value":339},"--prod",{"type":52,"value":142},{"type":47,"tag":281,"props":342,"children":343},{},[344,346,352,354,360],{"type":52,"value":345},"Non-production Cloud environments require ",{"type":47,"tag":66,"props":347,"children":349},{"className":348},[],[350],{"type":52,"value":351},"INNGEST_ENV=\u003Cname>",{"type":52,"value":353}," or ",{"type":47,"tag":66,"props":355,"children":357},{"className":356},[],[358],{"type":52,"value":359},"--env",{"type":52,"value":142},{"type":47,"tag":281,"props":362,"children":363},{},[364,366,372],{"type":52,"value":365},"Prefer ",{"type":47,"tag":66,"props":367,"children":369},{"className":368},[],[370],{"type":52,"value":371},"INNGEST_API_KEY",{"type":52,"value":373}," for Cloud API access.",{"type":47,"tag":281,"props":375,"children":376},{},[377,379,385],{"type":52,"value":378},"Do not pass API keys inline with ",{"type":47,"tag":66,"props":380,"children":382},{"className":381},[],[383],{"type":52,"value":384},"--api-key \u003Csecret>",{"type":52,"value":386}," unless the user\nexplicitly accepts process-list and transcript exposure.",{"type":47,"tag":281,"props":388,"children":389},{},[390],{"type":52,"value":391},"Never write API keys, event keys, signing keys, webhook URLs, or decrypted\nsecrets into source files, docs, fixtures, or final answers.",{"type":47,"tag":55,"props":393,"children":394},{},[395],{"type":52,"value":396},"Common targets:",{"type":47,"tag":156,"props":398,"children":400},{"className":158,"code":399,"language":160,"meta":161,"style":161},"npx inngest-cli@latest api health\nnpx inngest-cli@latest api --prod get-account\nINNGEST_ENV=staging npx inngest-cli@latest api --prod get-webhooks\nnpx inngest-cli@latest api --api-host http:\u002F\u002F127.0.0.1 --api-port 8288 health\n",[401],{"type":47,"tag":66,"props":402,"children":403},{"__ignoreMap":161},[404,424,449,490],{"type":47,"tag":167,"props":405,"children":406},{"class":169,"line":170},[407,411,415,419],{"type":47,"tag":167,"props":408,"children":409},{"style":174},[410],{"type":52,"value":177},{"type":47,"tag":167,"props":412,"children":413},{"style":180},[414],{"type":52,"value":183},{"type":47,"tag":167,"props":416,"children":417},{"style":180},[418],{"type":52,"value":188},{"type":47,"tag":167,"props":420,"children":421},{"style":180},[422],{"type":52,"value":423}," health\n",{"type":47,"tag":167,"props":425,"children":426},{"class":169,"line":196},[427,431,435,439,444],{"type":47,"tag":167,"props":428,"children":429},{"style":174},[430],{"type":52,"value":177},{"type":47,"tag":167,"props":432,"children":433},{"style":180},[434],{"type":52,"value":183},{"type":47,"tag":167,"props":436,"children":437},{"style":180},[438],{"type":52,"value":188},{"type":47,"tag":167,"props":440,"children":441},{"style":180},[442],{"type":52,"value":443}," --prod",{"type":47,"tag":167,"props":445,"children":446},{"style":180},[447],{"type":52,"value":448}," get-account\n",{"type":47,"tag":167,"props":450,"children":452},{"class":169,"line":451},3,[453,458,463,468,473,477,481,485],{"type":47,"tag":167,"props":454,"children":455},{"style":223},[456],{"type":52,"value":457},"INNGEST_ENV",{"type":47,"tag":167,"props":459,"children":460},{"style":212},[461],{"type":52,"value":462},"=",{"type":47,"tag":167,"props":464,"children":465},{"style":180},[466],{"type":52,"value":467},"staging",{"type":47,"tag":167,"props":469,"children":470},{"style":174},[471],{"type":52,"value":472}," npx",{"type":47,"tag":167,"props":474,"children":475},{"style":180},[476],{"type":52,"value":183},{"type":47,"tag":167,"props":478,"children":479},{"style":180},[480],{"type":52,"value":188},{"type":47,"tag":167,"props":482,"children":483},{"style":180},[484],{"type":52,"value":443},{"type":47,"tag":167,"props":486,"children":487},{"style":180},[488],{"type":52,"value":489}," get-webhooks\n",{"type":47,"tag":167,"props":491,"children":493},{"class":169,"line":492},4,[494,498,502,506,511,516,521,527],{"type":47,"tag":167,"props":495,"children":496},{"style":174},[497],{"type":52,"value":177},{"type":47,"tag":167,"props":499,"children":500},{"style":180},[501],{"type":52,"value":183},{"type":47,"tag":167,"props":503,"children":504},{"style":180},[505],{"type":52,"value":188},{"type":47,"tag":167,"props":507,"children":508},{"style":180},[509],{"type":52,"value":510}," --api-host",{"type":47,"tag":167,"props":512,"children":513},{"style":180},[514],{"type":52,"value":515}," http:\u002F\u002F127.0.0.1",{"type":47,"tag":167,"props":517,"children":518},{"style":180},[519],{"type":52,"value":520}," --api-port",{"type":47,"tag":167,"props":522,"children":524},{"style":523},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[525],{"type":52,"value":526}," 8288",{"type":47,"tag":167,"props":528,"children":529},{"style":180},[530],{"type":52,"value":423},{"type":47,"tag":144,"props":532,"children":534},{"id":533},"local-development",[535],{"type":52,"value":536},"Local Development",{"type":47,"tag":55,"props":538,"children":539},{},[540],{"type":52,"value":541},"For local app work:",{"type":47,"tag":543,"props":544,"children":545},"ol",{},[546,558,586,591],{"type":47,"tag":281,"props":547,"children":548},{},[549,551,557],{"type":52,"value":550},"Start the user's app with local dev mode when applicable, for example\n",{"type":47,"tag":66,"props":552,"children":554},{"className":553},[],[555],{"type":52,"value":556},"INNGEST_DEV=1 npm run dev",{"type":52,"value":142},{"type":47,"tag":281,"props":559,"children":560},{},[561,563],{"type":52,"value":562},"Start the dev server:",{"type":47,"tag":156,"props":564,"children":566},{"className":158,"code":565,"language":160,"meta":161,"style":161},"npx inngest-cli@latest dev\n",[567],{"type":47,"tag":66,"props":568,"children":569},{"__ignoreMap":161},[570],{"type":47,"tag":167,"props":571,"children":572},{"class":169,"line":170},[573,577,581],{"type":47,"tag":167,"props":574,"children":575},{"style":174},[576],{"type":52,"value":177},{"type":47,"tag":167,"props":578,"children":579},{"style":180},[580],{"type":52,"value":183},{"type":47,"tag":167,"props":582,"children":583},{"style":180},[584],{"type":52,"value":585}," dev\n",{"type":47,"tag":281,"props":587,"children":588},{},[589],{"type":52,"value":590},"Prefer Dev Server MCP tools, when available, to list local functions, send\ntest events, inspect runs, and watch status.",{"type":47,"tag":281,"props":592,"children":593},{},[594,595,601],{"type":52,"value":267},{"type":47,"tag":66,"props":596,"children":598},{"className":597},[],[599],{"type":52,"value":600},"npx inngest-cli@latest api ...",{"type":52,"value":602}," for API-compatible local checks,\ncommand-help verification, and workflows not exposed through MCP.",{"type":47,"tag":55,"props":604,"children":605},{},[606,608,613,615,620],{"type":52,"value":607},"If the local API says the dev server is unavailable, start ",{"type":47,"tag":66,"props":609,"children":611},{"className":610},[],[612],{"type":52,"value":71},{"type":52,"value":614}," or\nswitch to Cloud with ",{"type":47,"tag":66,"props":616,"children":618},{"className":617},[],[619],{"type":52,"value":339},{"type":52,"value":621}," when the user is debugging deployed runs.",{"type":47,"tag":144,"props":623,"children":625},{"id":624},"command-routing",[626],{"type":52,"value":627},"Command Routing",{"type":47,"tag":55,"props":629,"children":630},{},[631],{"type":52,"value":632},"Use this table before asking the human for more context.",{"type":47,"tag":634,"props":635,"children":636},"table",{},[637,656],{"type":47,"tag":638,"props":639,"children":640},"thead",{},[641],{"type":47,"tag":642,"props":643,"children":644},"tr",{},[645,651],{"type":47,"tag":646,"props":647,"children":648},"th",{},[649],{"type":52,"value":650},"Situation",{"type":47,"tag":646,"props":652,"children":653},{},[654],{"type":52,"value":655},"Command path",{"type":47,"tag":657,"props":658,"children":659},"tbody",{},[660,678,695,712,729,746,763,780,797,814,831,848,865,882,899],{"type":47,"tag":642,"props":661,"children":662},{},[663,669],{"type":47,"tag":664,"props":665,"children":666},"td",{},[667],{"type":52,"value":668},"Check CLI\u002FAPI reachability",{"type":47,"tag":664,"props":670,"children":671},{},[672],{"type":47,"tag":66,"props":673,"children":675},{"className":674},[],[676],{"type":52,"value":677},"api health",{"type":47,"tag":642,"props":679,"children":680},{},[681,686],{"type":47,"tag":664,"props":682,"children":683},{},[684],{"type":52,"value":685},"Confirm Cloud auth",{"type":47,"tag":664,"props":687,"children":688},{},[689],{"type":47,"tag":66,"props":690,"children":692},{"className":691},[],[693],{"type":52,"value":694},"api --prod get-account",{"type":47,"tag":642,"props":696,"children":697},{},[698,703],{"type":47,"tag":664,"props":699,"children":700},{},[701],{"type":52,"value":702},"List environments",{"type":47,"tag":664,"props":704,"children":705},{},[706],{"type":47,"tag":66,"props":707,"children":709},{"className":708},[],[710],{"type":52,"value":711},"api --prod get-account-envs --limit 10",{"type":47,"tag":642,"props":713,"children":714},{},[715,720],{"type":47,"tag":664,"props":716,"children":717},{},[718],{"type":52,"value":719},"List event keys",{"type":47,"tag":664,"props":721,"children":722},{},[723],{"type":47,"tag":66,"props":724,"children":726},{"className":725},[],[727],{"type":52,"value":728},"api --prod get-account-event-keys --limit 10",{"type":47,"tag":642,"props":730,"children":731},{},[732,737],{"type":47,"tag":664,"props":733,"children":734},{},[735],{"type":52,"value":736},"List signing keys",{"type":47,"tag":664,"props":738,"children":739},{},[740],{"type":47,"tag":66,"props":741,"children":743},{"className":742},[],[744],{"type":52,"value":745},"api --prod get-account-signing-keys --limit 10",{"type":47,"tag":642,"props":747,"children":748},{},[749,754],{"type":47,"tag":664,"props":750,"children":751},{},[752],{"type":52,"value":753},"List webhooks",{"type":47,"tag":664,"props":755,"children":756},{},[757],{"type":47,"tag":66,"props":758,"children":760},{"className":759},[],[761],{"type":52,"value":762},"api --prod get-webhooks",{"type":47,"tag":642,"props":764,"children":765},{},[766,771],{"type":47,"tag":664,"props":767,"children":768},{},[769],{"type":52,"value":770},"User gives a run ID",{"type":47,"tag":664,"props":772,"children":773},{},[774],{"type":47,"tag":66,"props":775,"children":777},{"className":776},[],[778],{"type":52,"value":779},"api --prod get-function-run \u003Crun_id>",{"type":47,"tag":642,"props":781,"children":782},{},[783,788],{"type":47,"tag":664,"props":784,"children":785},{},[786],{"type":52,"value":787},"Need step-level detail",{"type":47,"tag":664,"props":789,"children":790},{},[791],{"type":47,"tag":66,"props":792,"children":794},{"className":793},[],[795],{"type":52,"value":796},"api --prod get-function-trace \u003Crun_id> --include-output",{"type":47,"tag":642,"props":798,"children":799},{},[800,805],{"type":47,"tag":664,"props":801,"children":802},{},[803],{"type":52,"value":804},"User gives an event ID",{"type":47,"tag":664,"props":806,"children":807},{},[808],{"type":47,"tag":66,"props":809,"children":811},{"className":810},[],[812],{"type":52,"value":813},"api --prod get-event-runs \u003Cevent_id> --limit 5 --include-output",{"type":47,"tag":642,"props":815,"children":816},{},[817,822],{"type":47,"tag":664,"props":818,"children":819},{},[820],{"type":52,"value":821},"Sync a known app ID",{"type":47,"tag":664,"props":823,"children":824},{},[825],{"type":47,"tag":66,"props":826,"children":828},{"className":827},[],[829],{"type":52,"value":830},"api --prod sync-app --app-id \u003Capp_id> --url \u003Cserve_url>",{"type":47,"tag":642,"props":832,"children":833},{},[834,839],{"type":47,"tag":664,"props":835,"children":836},{},[837],{"type":52,"value":838},"Invoke a known app\u002Ffunction ID",{"type":47,"tag":664,"props":840,"children":841},{},[842],{"type":47,"tag":66,"props":843,"children":845},{"className":844},[],[846],{"type":52,"value":847},"api --prod invoke-function --app-id \u003Capp_id> --function-id \u003Cfunction_id> --data '\u003Cjson>'",{"type":47,"tag":642,"props":849,"children":850},{},[851,856],{"type":47,"tag":664,"props":852,"children":853},{},[854],{"type":52,"value":855},"Discover Insights tables",{"type":47,"tag":664,"props":857,"children":858},{},[859],{"type":47,"tag":66,"props":860,"children":862},{"className":861},[],[863],{"type":52,"value":864},"api --prod get-insights-tables",{"type":47,"tag":642,"props":866,"children":867},{},[868,873],{"type":47,"tag":664,"props":869,"children":870},{},[871],{"type":52,"value":872},"Discover event schemas for Insights",{"type":47,"tag":664,"props":874,"children":875},{},[876],{"type":47,"tag":66,"props":877,"children":879},{"className":878},[],[880],{"type":52,"value":881},"api --prod get-insights-event-schemas --limit 25",{"type":47,"tag":642,"props":883,"children":884},{},[885,890],{"type":47,"tag":664,"props":886,"children":887},{},[888],{"type":52,"value":889},"Draft an Insights query",{"type":47,"tag":664,"props":891,"children":892},{},[893],{"type":47,"tag":66,"props":894,"children":896},{"className":895},[],[897],{"type":52,"value":898},"api --prod query-insights-prompt --prompt '\u003Crequest>'",{"type":47,"tag":642,"props":900,"children":901},{},[902,907],{"type":47,"tag":664,"props":903,"children":904},{},[905],{"type":52,"value":906},"Run an Insights query",{"type":47,"tag":664,"props":908,"children":909},{},[910],{"type":47,"tag":66,"props":911,"children":913},{"className":912},[],[914],{"type":52,"value":915},"api --prod query-insights --query '\u003Csql>'",{"type":47,"tag":55,"props":917,"children":918},{},[919,921,927],{"type":52,"value":920},"If a command accepts positional IDs, prefer positional IDs in examples because\nthey are shorter and match current help. Flag forms such as ",{"type":47,"tag":66,"props":922,"children":924},{"className":923},[],[925],{"type":52,"value":926},"--run-id",{"type":52,"value":928}," are also\naccepted by the current CLI for many path parameters.",{"type":47,"tag":144,"props":930,"children":932},{"id":931},"debug-a-run",[933],{"type":52,"value":934},"Debug a Run",{"type":47,"tag":55,"props":936,"children":937},{},[938],{"type":52,"value":939},"When the user gives a run ID:",{"type":47,"tag":156,"props":941,"children":943},{"className":158,"code":942,"language":160,"meta":161,"style":161},"npx inngest-cli@latest api --prod get-function-run \u003Crun_id>\nnpx inngest-cli@latest api --prod get-function-trace \u003Crun_id> --include-output\n",[944],{"type":47,"tag":66,"props":945,"children":946},{"__ignoreMap":161},[947,989],{"type":47,"tag":167,"props":948,"children":949},{"class":169,"line":170},[950,954,958,962,966,971,975,980,984],{"type":47,"tag":167,"props":951,"children":952},{"style":174},[953],{"type":52,"value":177},{"type":47,"tag":167,"props":955,"children":956},{"style":180},[957],{"type":52,"value":183},{"type":47,"tag":167,"props":959,"children":960},{"style":180},[961],{"type":52,"value":188},{"type":47,"tag":167,"props":963,"children":964},{"style":180},[965],{"type":52,"value":443},{"type":47,"tag":167,"props":967,"children":968},{"style":180},[969],{"type":52,"value":970}," get-function-run",{"type":47,"tag":167,"props":972,"children":973},{"style":212},[974],{"type":52,"value":215},{"type":47,"tag":167,"props":976,"children":977},{"style":180},[978],{"type":52,"value":979},"run_i",{"type":47,"tag":167,"props":981,"children":982},{"style":223},[983],{"type":52,"value":226},{"type":47,"tag":167,"props":985,"children":986},{"style":212},[987],{"type":52,"value":988},">\n",{"type":47,"tag":167,"props":990,"children":991},{"class":169,"line":196},[992,996,1000,1004,1008,1013,1017,1021,1025,1029],{"type":47,"tag":167,"props":993,"children":994},{"style":174},[995],{"type":52,"value":177},{"type":47,"tag":167,"props":997,"children":998},{"style":180},[999],{"type":52,"value":183},{"type":47,"tag":167,"props":1001,"children":1002},{"style":180},[1003],{"type":52,"value":188},{"type":47,"tag":167,"props":1005,"children":1006},{"style":180},[1007],{"type":52,"value":443},{"type":47,"tag":167,"props":1009,"children":1010},{"style":180},[1011],{"type":52,"value":1012}," get-function-trace",{"type":47,"tag":167,"props":1014,"children":1015},{"style":212},[1016],{"type":52,"value":215},{"type":47,"tag":167,"props":1018,"children":1019},{"style":180},[1020],{"type":52,"value":979},{"type":47,"tag":167,"props":1022,"children":1023},{"style":223},[1024],{"type":52,"value":226},{"type":47,"tag":167,"props":1026,"children":1027},{"style":212},[1028],{"type":52,"value":231},{"type":47,"tag":167,"props":1030,"children":1031},{"style":180},[1032],{"type":52,"value":1033}," --include-output\n",{"type":47,"tag":55,"props":1035,"children":1036},{},[1037],{"type":52,"value":1038},"Summarize status, failed spans, retry state, timing, error names\u002Fmessages, and\nthe likely code boundary to inspect. Do not paste full traces unless asked.",{"type":47,"tag":55,"props":1040,"children":1041},{},[1042],{"type":52,"value":1043},"When the user gives an event ID:",{"type":47,"tag":156,"props":1045,"children":1047},{"className":158,"code":1046,"language":160,"meta":161,"style":161},"npx inngest-cli@latest api --prod get-event-runs \u003Cevent_id> --limit 5 --include-output\n",[1048],{"type":47,"tag":66,"props":1049,"children":1050},{"__ignoreMap":161},[1051],{"type":47,"tag":167,"props":1052,"children":1053},{"class":169,"line":170},[1054,1058,1062,1066,1070,1075,1079,1084,1088,1092,1097,1102],{"type":47,"tag":167,"props":1055,"children":1056},{"style":174},[1057],{"type":52,"value":177},{"type":47,"tag":167,"props":1059,"children":1060},{"style":180},[1061],{"type":52,"value":183},{"type":47,"tag":167,"props":1063,"children":1064},{"style":180},[1065],{"type":52,"value":188},{"type":47,"tag":167,"props":1067,"children":1068},{"style":180},[1069],{"type":52,"value":443},{"type":47,"tag":167,"props":1071,"children":1072},{"style":180},[1073],{"type":52,"value":1074}," get-event-runs",{"type":47,"tag":167,"props":1076,"children":1077},{"style":212},[1078],{"type":52,"value":215},{"type":47,"tag":167,"props":1080,"children":1081},{"style":180},[1082],{"type":52,"value":1083},"event_i",{"type":47,"tag":167,"props":1085,"children":1086},{"style":223},[1087],{"type":52,"value":226},{"type":47,"tag":167,"props":1089,"children":1090},{"style":212},[1091],{"type":52,"value":231},{"type":47,"tag":167,"props":1093,"children":1094},{"style":180},[1095],{"type":52,"value":1096}," --limit",{"type":47,"tag":167,"props":1098,"children":1099},{"style":523},[1100],{"type":52,"value":1101}," 5",{"type":47,"tag":167,"props":1103,"children":1104},{"style":180},[1105],{"type":52,"value":1033},{"type":47,"tag":55,"props":1107,"children":1108},{},[1109],{"type":52,"value":1110},"Pick the relevant run from the response, then fetch the run and trace. If\nmultiple runs are plausible, explain the candidates and use timestamps,\nfunction IDs, or failure status to choose.",{"type":47,"tag":144,"props":1112,"children":1114},{"id":1113},"missing-ids",[1115],{"type":52,"value":1116},"Missing IDs",{"type":47,"tag":55,"props":1118,"children":1119},{},[1120],{"type":52,"value":1121},"Do not immediately ask the user for app IDs, function IDs, or run IDs.",{"type":47,"tag":55,"props":1123,"children":1124},{},[1125],{"type":52,"value":1126},"Try, in order:",{"type":47,"tag":543,"props":1128,"children":1129},{},[1130,1135,1140,1145,1157],{"type":47,"tag":281,"props":1131,"children":1132},{},[1133],{"type":52,"value":1134},"Dev Server MCP tools, if available.",{"type":47,"tag":281,"props":1136,"children":1137},{},[1138],{"type":52,"value":1139},"The user's prompt, pasted dashboard URLs, logs, alert text, or stack traces.",{"type":47,"tag":281,"props":1141,"children":1142},{},[1143],{"type":52,"value":1144},"Repository config and Inngest serve definitions.",{"type":47,"tag":281,"props":1146,"children":1147},{},[1148,1150,1156],{"type":52,"value":1149},"Event ID lookup with ",{"type":47,"tag":66,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":52,"value":1155},"get-event-runs",{"type":52,"value":142},{"type":47,"tag":281,"props":1158,"children":1159},{},[1160,1162,1168,1170,1176],{"type":52,"value":1161},"Current CLI help to see if discovery commands such as ",{"type":47,"tag":66,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":52,"value":1167},"get-functions",{"type":52,"value":1169}," or\n",{"type":47,"tag":66,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":52,"value":1175},"get-app",{"type":52,"value":1177}," have appeared.",{"type":47,"tag":55,"props":1179,"children":1180},{},[1181],{"type":52,"value":1182},"Ask the user for the ID only after those sources cannot provide it.",{"type":47,"tag":144,"props":1184,"children":1186},{"id":1185},"mutating-operations",[1187],{"type":52,"value":1188},"Mutating Operations",{"type":47,"tag":55,"props":1190,"children":1191},{},[1192],{"type":52,"value":1193},"Read before write. List or fetch the relevant resource first, then mutate only\nwhen target and intent are clear.",{"type":47,"tag":55,"props":1195,"children":1196},{},[1197],{"type":52,"value":1198},"Confirm before running these against Cloud unless the user already specified\nthe account\u002Fenvironment and exact intent:",{"type":47,"tag":277,"props":1200,"children":1201},{},[1202,1211,1220,1229,1238,1247],{"type":47,"tag":281,"props":1203,"children":1204},{},[1205],{"type":47,"tag":66,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":52,"value":1210},"create-env",{"type":47,"tag":281,"props":1212,"children":1213},{},[1214],{"type":47,"tag":66,"props":1215,"children":1217},{"className":1216},[],[1218],{"type":52,"value":1219},"patch-env",{"type":47,"tag":281,"props":1221,"children":1222},{},[1223],{"type":47,"tag":66,"props":1224,"children":1226},{"className":1225},[],[1227],{"type":52,"value":1228},"create-webhook",{"type":47,"tag":281,"props":1230,"children":1231},{},[1232],{"type":47,"tag":66,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":52,"value":1237},"sync-app",{"type":47,"tag":281,"props":1239,"children":1240},{},[1241],{"type":47,"tag":66,"props":1242,"children":1244},{"className":1243},[],[1245],{"type":52,"value":1246},"invoke-function",{"type":47,"tag":281,"props":1248,"children":1249},{},[1250,1252,1258],{"type":52,"value":1251},"Broad or expensive ",{"type":47,"tag":66,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":52,"value":1257},"query-insights",{"type":52,"value":1259}," calls",{"type":47,"tag":55,"props":1261,"children":1262},{},[1263],{"type":52,"value":1264},"For repeatable invocation tests, use a stable idempotency key:",{"type":47,"tag":156,"props":1266,"children":1268},{"className":158,"code":1267,"language":160,"meta":161,"style":161},"npx inngest-cli@latest api --prod invoke-function \\\n  --app-id \u003Capp_id> \\\n  --function-id \u003Cfunction_id> \\\n  --idempotency-key \u003Cstable_test_key> \\\n  --data '{\"example\":true}'\n",[1269],{"type":47,"tag":66,"props":1270,"children":1271},{"__ignoreMap":161},[1272,1301,1330,1359,1389],{"type":47,"tag":167,"props":1273,"children":1274},{"class":169,"line":170},[1275,1279,1283,1287,1291,1296],{"type":47,"tag":167,"props":1276,"children":1277},{"style":174},[1278],{"type":52,"value":177},{"type":47,"tag":167,"props":1280,"children":1281},{"style":180},[1282],{"type":52,"value":183},{"type":47,"tag":167,"props":1284,"children":1285},{"style":180},[1286],{"type":52,"value":188},{"type":47,"tag":167,"props":1288,"children":1289},{"style":180},[1290],{"type":52,"value":443},{"type":47,"tag":167,"props":1292,"children":1293},{"style":180},[1294],{"type":52,"value":1295}," invoke-function",{"type":47,"tag":167,"props":1297,"children":1298},{"style":223},[1299],{"type":52,"value":1300}," \\\n",{"type":47,"tag":167,"props":1302,"children":1303},{"class":169,"line":196},[1304,1309,1313,1318,1322,1326],{"type":47,"tag":167,"props":1305,"children":1306},{"style":180},[1307],{"type":52,"value":1308},"  --app-id",{"type":47,"tag":167,"props":1310,"children":1311},{"style":212},[1312],{"type":52,"value":215},{"type":47,"tag":167,"props":1314,"children":1315},{"style":180},[1316],{"type":52,"value":1317},"app_i",{"type":47,"tag":167,"props":1319,"children":1320},{"style":223},[1321],{"type":52,"value":226},{"type":47,"tag":167,"props":1323,"children":1324},{"style":212},[1325],{"type":52,"value":231},{"type":47,"tag":167,"props":1327,"children":1328},{"style":223},[1329],{"type":52,"value":1300},{"type":47,"tag":167,"props":1331,"children":1332},{"class":169,"line":451},[1333,1338,1342,1347,1351,1355],{"type":47,"tag":167,"props":1334,"children":1335},{"style":180},[1336],{"type":52,"value":1337},"  --function-id",{"type":47,"tag":167,"props":1339,"children":1340},{"style":212},[1341],{"type":52,"value":215},{"type":47,"tag":167,"props":1343,"children":1344},{"style":180},[1345],{"type":52,"value":1346},"function_i",{"type":47,"tag":167,"props":1348,"children":1349},{"style":223},[1350],{"type":52,"value":226},{"type":47,"tag":167,"props":1352,"children":1353},{"style":212},[1354],{"type":52,"value":231},{"type":47,"tag":167,"props":1356,"children":1357},{"style":223},[1358],{"type":52,"value":1300},{"type":47,"tag":167,"props":1360,"children":1361},{"class":169,"line":492},[1362,1367,1371,1376,1381,1385],{"type":47,"tag":167,"props":1363,"children":1364},{"style":180},[1365],{"type":52,"value":1366},"  --idempotency-key",{"type":47,"tag":167,"props":1368,"children":1369},{"style":212},[1370],{"type":52,"value":215},{"type":47,"tag":167,"props":1372,"children":1373},{"style":180},[1374],{"type":52,"value":1375},"stable_test_ke",{"type":47,"tag":167,"props":1377,"children":1378},{"style":223},[1379],{"type":52,"value":1380},"y",{"type":47,"tag":167,"props":1382,"children":1383},{"style":212},[1384],{"type":52,"value":231},{"type":47,"tag":167,"props":1386,"children":1387},{"style":223},[1388],{"type":52,"value":1300},{"type":47,"tag":167,"props":1390,"children":1391},{"class":169,"line":27},[1392,1397,1402,1407],{"type":47,"tag":167,"props":1393,"children":1394},{"style":180},[1395],{"type":52,"value":1396},"  --data",{"type":47,"tag":167,"props":1398,"children":1399},{"style":212},[1400],{"type":52,"value":1401}," '",{"type":47,"tag":167,"props":1403,"children":1404},{"style":180},[1405],{"type":52,"value":1406},"{\"example\":true}",{"type":47,"tag":167,"props":1408,"children":1409},{"style":212},[1410],{"type":52,"value":1411},"'\n",{"type":47,"tag":55,"props":1413,"children":1414},{},[1415,1417,1423],{"type":52,"value":1416},"For complex JSON, use ",{"type":47,"tag":66,"props":1418,"children":1420},{"className":1419},[],[1421],{"type":52,"value":1422},"--body-file",{"type":52,"value":1424}," to avoid quoting mistakes.",{"type":47,"tag":144,"props":1426,"children":1428},{"id":1427},"insights",[1429],{"type":52,"value":1430},"Insights",{"type":47,"tag":55,"props":1432,"children":1433},{},[1434],{"type":52,"value":1435},"Use Insights when the question is analytic, when logs only give partial clues,\nor when the user asks about trends, frequency, volume, failures over time, or\nevent\u002Frun data.",{"type":47,"tag":55,"props":1437,"children":1438},{},[1439],{"type":52,"value":1440},"Start small:",{"type":47,"tag":156,"props":1442,"children":1444},{"className":158,"code":1443,"language":160,"meta":161,"style":161},"npx inngest-cli@latest api --prod get-insights-tables\nnpx inngest-cli@latest api --prod get-insights-event-schemas --limit 25\nnpx inngest-cli@latest api --prod query-insights-prompt \\\n  --prompt \"Show failed functions in the last 24 hours\"\n",[1445],{"type":47,"tag":66,"props":1446,"children":1447},{"__ignoreMap":161},[1448,1472,1505,1533],{"type":47,"tag":167,"props":1449,"children":1450},{"class":169,"line":170},[1451,1455,1459,1463,1467],{"type":47,"tag":167,"props":1452,"children":1453},{"style":174},[1454],{"type":52,"value":177},{"type":47,"tag":167,"props":1456,"children":1457},{"style":180},[1458],{"type":52,"value":183},{"type":47,"tag":167,"props":1460,"children":1461},{"style":180},[1462],{"type":52,"value":188},{"type":47,"tag":167,"props":1464,"children":1465},{"style":180},[1466],{"type":52,"value":443},{"type":47,"tag":167,"props":1468,"children":1469},{"style":180},[1470],{"type":52,"value":1471}," get-insights-tables\n",{"type":47,"tag":167,"props":1473,"children":1474},{"class":169,"line":196},[1475,1479,1483,1487,1491,1496,1500],{"type":47,"tag":167,"props":1476,"children":1477},{"style":174},[1478],{"type":52,"value":177},{"type":47,"tag":167,"props":1480,"children":1481},{"style":180},[1482],{"type":52,"value":183},{"type":47,"tag":167,"props":1484,"children":1485},{"style":180},[1486],{"type":52,"value":188},{"type":47,"tag":167,"props":1488,"children":1489},{"style":180},[1490],{"type":52,"value":443},{"type":47,"tag":167,"props":1492,"children":1493},{"style":180},[1494],{"type":52,"value":1495}," get-insights-event-schemas",{"type":47,"tag":167,"props":1497,"children":1498},{"style":180},[1499],{"type":52,"value":1096},{"type":47,"tag":167,"props":1501,"children":1502},{"style":523},[1503],{"type":52,"value":1504}," 25\n",{"type":47,"tag":167,"props":1506,"children":1507},{"class":169,"line":451},[1508,1512,1516,1520,1524,1529],{"type":47,"tag":167,"props":1509,"children":1510},{"style":174},[1511],{"type":52,"value":177},{"type":47,"tag":167,"props":1513,"children":1514},{"style":180},[1515],{"type":52,"value":183},{"type":47,"tag":167,"props":1517,"children":1518},{"style":180},[1519],{"type":52,"value":188},{"type":47,"tag":167,"props":1521,"children":1522},{"style":180},[1523],{"type":52,"value":443},{"type":47,"tag":167,"props":1525,"children":1526},{"style":180},[1527],{"type":52,"value":1528}," query-insights-prompt",{"type":47,"tag":167,"props":1530,"children":1531},{"style":223},[1532],{"type":52,"value":1300},{"type":47,"tag":167,"props":1534,"children":1535},{"class":169,"line":492},[1536,1541,1546,1551],{"type":47,"tag":167,"props":1537,"children":1538},{"style":180},[1539],{"type":52,"value":1540},"  --prompt",{"type":47,"tag":167,"props":1542,"children":1543},{"style":212},[1544],{"type":52,"value":1545}," \"",{"type":47,"tag":167,"props":1547,"children":1548},{"style":180},[1549],{"type":52,"value":1550},"Show failed functions in the last 24 hours",{"type":47,"tag":167,"props":1552,"children":1553},{"style":212},[1554],{"type":52,"value":1555},"\"\n",{"type":47,"tag":55,"props":1557,"children":1558},{},[1559],{"type":52,"value":1560},"Inspect generated SQL before running broad queries. Add limits and time windows\nwhen possible.",{"type":47,"tag":144,"props":1562,"children":1564},{"id":1563},"output-handling",[1565],{"type":52,"value":1566},"Output Handling",{"type":47,"tag":277,"props":1568,"children":1569},{},[1570,1575,1587,1608,1621],{"type":47,"tag":281,"props":1571,"children":1572},{},[1573],{"type":52,"value":1574},"CLI output is JSON. Parse it structurally before making decisions.",{"type":47,"tag":281,"props":1576,"children":1577},{},[1578,1579,1585],{"type":52,"value":267},{"type":47,"tag":66,"props":1580,"children":1582},{"className":1581},[],[1583],{"type":52,"value":1584},"--raw",{"type":52,"value":1586}," only when a downstream command needs exact response bodies.",{"type":47,"tag":281,"props":1588,"children":1589},{},[1590,1592,1598,1600,1606],{"type":52,"value":1591},"If responses are paginated and ",{"type":47,"tag":66,"props":1593,"children":1595},{"className":1594},[],[1596],{"type":52,"value":1597},"page.hasMore",{"type":52,"value":1599}," is true, continue with\n",{"type":47,"tag":66,"props":1601,"children":1603},{"className":1602},[],[1604],{"type":52,"value":1605},"--cursor",{"type":52,"value":1607}," when complete results are needed.",{"type":47,"tag":281,"props":1609,"children":1610},{},[1611,1613,1619],{"type":52,"value":1612},"Treat missing ",{"type":47,"tag":66,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":52,"value":1618},"data",{"type":52,"value":1620}," on list responses as an empty list unless an error is\npresent.",{"type":47,"tag":281,"props":1622,"children":1623},{},[1624],{"type":52,"value":1625},"Redact secrets, webhook URLs, token values, and sensitive payload fields in\nsummaries.",{"type":47,"tag":144,"props":1627,"children":1629},{"id":1628},"drift-handling",[1630],{"type":52,"value":1631},"Drift Handling",{"type":47,"tag":55,"props":1633,"children":1634},{},[1635],{"type":52,"value":1636},"The CLI is beta. If behavior differs from this skill:",{"type":47,"tag":543,"props":1638,"children":1639},{},[1640,1645,1657,1668],{"type":47,"tag":281,"props":1641,"children":1642},{},[1643],{"type":52,"value":1644},"Run top-level and command-specific help.",{"type":47,"tag":281,"props":1646,"children":1647},{},[1648,1650,1656],{"type":52,"value":1649},"Check ",{"type":47,"tag":66,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":52,"value":1655},"https:\u002F\u002Fapi-docs.inngest.com\u002Fllms.txt",{"type":52,"value":142},{"type":47,"tag":281,"props":1658,"children":1659},{},[1660,1661,1667],{"type":52,"value":1649},{"type":47,"tag":66,"props":1662,"children":1664},{"className":1663},[],[1665],{"type":52,"value":1666},"https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json",{"type":52,"value":142},{"type":47,"tag":281,"props":1669,"children":1670},{},[1671,1673,1678],{"type":52,"value":1672},"Use the ",{"type":47,"tag":66,"props":1674,"children":1676},{"className":1675},[],[1677],{"type":52,"value":273},{"type":52,"value":1679}," skill for raw REST API fallback.",{"type":47,"tag":55,"props":1681,"children":1682},{},[1683,1685,1691,1692,1698,1700,1706,1708,1714,1716,1721],{"type":52,"value":1684},"Some launch material may mention aliases such as ",{"type":47,"tag":66,"props":1686,"children":1688},{"className":1687},[],[1689],{"type":52,"value":1690},"get-run",{"type":52,"value":1169},{"type":47,"tag":66,"props":1693,"children":1695},{"className":1694},[],[1696],{"type":52,"value":1697},"invoke-function-by-slug",{"type":52,"value":1699},". Use them only if current ",{"type":47,"tag":66,"props":1701,"children":1703},{"className":1702},[],[1704],{"type":52,"value":1705},"api --help",{"type":52,"value":1707}," exposes them.\nIf absent, use ",{"type":47,"tag":66,"props":1709,"children":1711},{"className":1710},[],[1712],{"type":52,"value":1713},"get-function-run",{"type":52,"value":1715}," and ",{"type":47,"tag":66,"props":1717,"children":1719},{"className":1718},[],[1720],{"type":52,"value":1246},{"type":52,"value":142},{"type":47,"tag":1723,"props":1724,"children":1725},"style",{},[1726],{"type":52,"value":1727},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1729,"total":1884},[1730,1750,1763,1774,1781,1796,1808,1820,1831,1843,1858,1872],{"slug":1731,"name":1731,"fn":1732,"description":1733,"org":1734,"tags":1735,"stars":23,"repoUrl":24,"updatedAt":1749},"inngest-agent-evals","build and debug Inngest agent evals","Use when building, migrating, or debugging Agent Evals on Inngest: scoring AI agent or workflow outcomes, deferred scorers, sessions, traces, step experiments, experiment variant attribution, Insights queries, or production eval loops for prompts, models, tools, providers, and agent behavior. Covers TypeScript SDK v4 scoring beta APIs, `scoreMiddleware`, `step.score`, `inngest.score`, `createScorer`, `defer`, `group.experiment`, `experimentRef`, `meta.sessions`, and when to use durable workflow primitives for outcome-based evaluation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1736,1739,1742,1743,1746],{"name":1737,"slug":1738,"type":15},"Agents","agents",{"name":1740,"slug":1741,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":1744,"slug":1745,"type":15},"Observability","observability",{"name":1747,"slug":1748,"type":15},"Workflow Automation","workflow-automation","2026-07-12T07:36:51.711641",{"slug":1751,"name":1751,"fn":1752,"description":1753,"org":1754,"tags":1755,"stars":23,"repoUrl":24,"updatedAt":1762},"inngest-agents","build durable AI agent workflows","Use when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress, provider rate limits, crash-safe execution, and Agent Evals handoff. Covers AgentKit, `step.ai`, `step.run`, `step.waitForEvent`, native realtime, and when to use lower-level Inngest primitives instead of an in-memory agent loop. Use `inngest-agent-evals` with this skill when the user wants scoring, sessions, experiments, deferred scorers, or outcome-based evaluation for the agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1756,1757,1758,1759],{"name":1737,"slug":1738,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":1760,"slug":1761,"type":15},"LLM","llm","2026-07-12T07:36:45.984181",{"slug":273,"name":273,"fn":1764,"description":1765,"org":1766,"tags":1767,"stars":23,"repoUrl":24,"updatedAt":1773},"interact with Inngest REST API","Use when the user explicitly asks for the Inngest REST API v2, raw HTTP, OpenAPI, API docs, API authentication, or an endpoint that the Inngest CLI does not expose. Covers api-docs.inngest.com, llms.txt, the OpenAPI v2 spec, Bearer authentication with API keys or signing keys, production and local base URLs, raw curl\u002Ffetch requests, request-shape discovery, pagination, secret redaction, and when to prefer the `inngest-api-cli` skill instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1768,1769,1772],{"name":21,"slug":22,"type":15},{"name":1770,"slug":1771,"type":15},"REST API","rest-api",{"name":1747,"slug":1748,"type":15},"2026-07-12T07:36:39.364409",{"slug":4,"name":4,"fn":5,"description":6,"org":1775,"tags":1776,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1777,1778,1779,1780],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":1782,"name":1782,"fn":1783,"description":1784,"org":1785,"tags":1786,"stars":23,"repoUrl":24,"updatedAt":1795},"inngest-brownfield-audit","audit codebases for Inngest integration","Use when analyzing an existing TypeScript or JavaScript codebase to decide where and how to introduce Inngest. Covers repository discovery, framework and package detection, finding durability gaps in HTTP handlers, webhooks, cron jobs, queues, long-running jobs, AI agents, Agent Evals, polling loops, eval loops, and side-effect-heavy code, then producing and implementing an incremental integration plan.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1787,1788,1791,1794],{"name":13,"slug":14,"type":15},{"name":1789,"slug":1790,"type":15},"Code Analysis","code-analysis",{"name":1792,"slug":1793,"type":15},"Engineering","engineering",{"name":9,"slug":8,"type":15},"2026-07-12T07:36:55.811247",{"slug":87,"name":87,"fn":1797,"description":1798,"org":1799,"tags":1800,"stars":23,"repoUrl":24,"updatedAt":1807},"configure Inngest CLI and dev server","Use when installing or running the Inngest CLI and Dev Server for local development, local testing, serve endpoint debugging, Docker or Docker Compose setup, MCP configuration, self-hosted `inngest start`, or deployment workflow checks. Covers `inngest dev`, `inngest start`, auto-discovery, config files, environment variables, `@inngest\u002Ftest`, local event sending, platform gotchas, and production\u002Fself-hosted server flags.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1801,1802,1805,1806],{"name":18,"slug":19,"type":15},{"name":1803,"slug":1804,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":536,"slug":533,"type":15},"2026-07-12T07:36:40.694652",{"slug":103,"name":103,"fn":1809,"description":1810,"org":1811,"tags":1812,"stars":23,"repoUrl":24,"updatedAt":1819},"build durable and retry-safe functions","Use when building functions that must survive process crashes, retry automatically on failure, run on a schedule, react to events, or maintain state across infrastructure failures — e.g., webhook handlers that drop events, flaky cron jobs, background jobs that fail mid-execution, or workflows that need to resume where they left off. Covers Inngest function configuration, triggers (events, cron, invoke), step execution and memoization, idempotency, cancellation, error handling, retries, logging, and observability.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1813,1814,1817,1818],{"name":13,"slug":14,"type":15},{"name":1815,"slug":1816,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},{"name":1747,"slug":1748,"type":15},"2026-07-12T07:36:57.141023",{"slug":111,"name":111,"fn":1821,"description":1822,"org":1823,"tags":1824,"stars":23,"repoUrl":24,"updatedAt":1830},"design event-driven workflows","Use when designing event-driven workflows, decoupling services, implementing fan-out patterns (one trigger, many downstream handlers), implementing idempotent event handling with IDs (24-hour dedupe window), or handling at-least-once delivery from external sources like Stripe webhooks. Covers Inngest event schema, payload format, naming conventions, IDs for idempotency, the ts param, fan-out patterns, and system events like inngest\u002Ffunction.failed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1825,1828,1829],{"name":1826,"slug":1827,"type":15},"Data Pipeline","data-pipeline",{"name":9,"slug":8,"type":15},{"name":1747,"slug":1748,"type":15},"2026-07-12T07:36:44.685364",{"slug":125,"name":125,"fn":1832,"description":1833,"org":1834,"tags":1835,"stars":23,"repoUrl":24,"updatedAt":1842},"manage API rate limits and load","Use when handling external API rate limits (e.g., OpenAI 429s, HubSpot or Stripe rate limits), preventing duplicate work from rapid event bursts (debouncing user actions), spreading load over time, ensuring per-tenant fairness, processing events in batches, limiting concurrent runs of the same operation, or assigning priority to important runs. Covers Inngest flow control: concurrency limits with keys, throttling, rate limiting, debounce, priority, singleton, and event batching.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1836,1837,1838,1839],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":1840,"slug":1841,"type":15},"Performance","performance","2026-07-12T07:36:52.987451",{"slug":140,"name":140,"fn":1844,"description":1845,"org":1846,"tags":1847,"stars":23,"repoUrl":24,"updatedAt":1857},"add middleware to Inngest durable functions","Use when adding cross-cutting concerns to durable functions — structured logging or tracing across all functions, error tracking with Sentry, payload encryption for sensitive data, dependency injection of clients (DB, Stripe, etc.) into function handlers, custom telemetry, or behavior that should apply uniformly across many functions. Covers Inngest middleware lifecycle, creating custom middleware, dependencyInjectionMiddleware, @inngest\u002Fmiddleware-encryption, @inngest\u002Fmiddleware-sentry, and custom middleware patterns.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1848,1849,1850,1853,1854],{"name":1792,"slug":1793,"type":15},{"name":9,"slug":8,"type":15},{"name":1851,"slug":1852,"type":15},"Middleware","middleware",{"name":1744,"slug":1745,"type":15},{"name":1855,"slug":1856,"type":15},"Sentry","sentry","2026-07-12T07:36:50.127999",{"slug":132,"name":132,"fn":1859,"description":1860,"org":1861,"tags":1862,"stars":23,"repoUrl":24,"updatedAt":1871},"stream durable workflow updates to UI","Use when streaming durable workflow updates to a UI in real time — live order status pages that animate as steps complete, AI agent token streaming from a function to the browser, log tailing for long-running jobs, or human-in-the-loop approval flows that publish a prompt and wait for a user reply. Covers Inngest v4 native realtime: defining typed channels, publishing from inside step.run, minting subscription tokens via server actions, and consuming the stream from React\u002FNext.js client components.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1863,1864,1867,1868],{"name":13,"slug":14,"type":15},{"name":1865,"slug":1866,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},{"name":1869,"slug":1870,"type":15},"Real-time","real-time","2026-07-12T07:36:48.895092",{"slug":95,"name":95,"fn":1873,"description":1874,"org":1875,"tags":1876,"stars":23,"repoUrl":24,"updatedAt":1883},"build durable TypeScript workflows","Use when adding durable execution to a TypeScript project — building retry-safe webhook handlers, background jobs that survive crashes, scheduled tasks, or long-running workflows that outlive a single request. Covers Inngest SDK installation, client config, environment variables, serve endpoints (Next.js, Express, Hono, Fastify), connect-as-worker mode, and the local dev server.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1877,1878,1879,1880],{"name":13,"slug":14,"type":15},{"name":1815,"slug":1816,"type":15},{"name":9,"slug":8,"type":15},{"name":1881,"slug":1882,"type":15},"TypeScript","typescript","2026-07-12T07:36:42.004122",14,{"items":1886,"total":1884},[1887,1895,1902,1908,1915,1922,1929],{"slug":1731,"name":1731,"fn":1732,"description":1733,"org":1888,"tags":1889,"stars":23,"repoUrl":24,"updatedAt":1749},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1890,1891,1892,1893,1894],{"name":1737,"slug":1738,"type":15},{"name":1740,"slug":1741,"type":15},{"name":9,"slug":8,"type":15},{"name":1744,"slug":1745,"type":15},{"name":1747,"slug":1748,"type":15},{"slug":1751,"name":1751,"fn":1752,"description":1753,"org":1896,"tags":1897,"stars":23,"repoUrl":24,"updatedAt":1762},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1898,1899,1900,1901],{"name":1737,"slug":1738,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":1760,"slug":1761,"type":15},{"slug":273,"name":273,"fn":1764,"description":1765,"org":1903,"tags":1904,"stars":23,"repoUrl":24,"updatedAt":1773},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1905,1906,1907],{"name":21,"slug":22,"type":15},{"name":1770,"slug":1771,"type":15},{"name":1747,"slug":1748,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":1909,"tags":1910,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1911,1912,1913,1914],{"name":21,"slug":22,"type":15},{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":9,"slug":8,"type":15},{"slug":1782,"name":1782,"fn":1783,"description":1784,"org":1916,"tags":1917,"stars":23,"repoUrl":24,"updatedAt":1795},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1918,1919,1920,1921],{"name":13,"slug":14,"type":15},{"name":1789,"slug":1790,"type":15},{"name":1792,"slug":1793,"type":15},{"name":9,"slug":8,"type":15},{"slug":87,"name":87,"fn":1797,"description":1798,"org":1923,"tags":1924,"stars":23,"repoUrl":24,"updatedAt":1807},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1925,1926,1927,1928],{"name":18,"slug":19,"type":15},{"name":1803,"slug":1804,"type":15},{"name":9,"slug":8,"type":15},{"name":536,"slug":533,"type":15},{"slug":103,"name":103,"fn":1809,"description":1810,"org":1930,"tags":1931,"stars":23,"repoUrl":24,"updatedAt":1819},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1932,1933,1934,1935],{"name":13,"slug":14,"type":15},{"name":1815,"slug":1816,"type":15},{"name":9,"slug":8,"type":15},{"name":1747,"slug":1748,"type":15}]