[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-inngest-inngest-api":3,"mdc-3r1o28-key":40,"related-org-inngest-inngest-api":631,"related-repo-inngest-inngest-api":797},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":35,"sourceUrl":38,"mdContent":39},"inngest-api","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},"inngest","Inngest","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Finngest.png",[12,16,19],{"name":13,"slug":14,"type":15},"REST API","rest-api","tag",{"name":17,"slug":18,"type":15},"API Development","api-development",{"name":20,"slug":21,"type":15},"Workflow Automation","workflow-automation",26,"https:\u002F\u002Fgithub.com\u002Finngest\u002Finngest-skills","2026-07-12T07:36:39.364409",null,5,[28,29,30,31,32,33,34],"agent-skill-repository","agent-skills","agentic-skills","ai-agents","claude-code-skills","cursor-skills","openclaw-skills",{"repoUrl":23,"stars":22,"forks":26,"topics":36,"description":37},[28,29,30,31,32,33,34],"Agent Skills for building with Inngest","https:\u002F\u002Fgithub.com\u002Finngest\u002Finngest-skills\u002Ftree\u002FHEAD\u002Fskills\u002Finngest-api","---\nname: inngest-api\ndescription: >-\n  Use when the user explicitly asks for the Inngest REST API v2, raw HTTP,\n  OpenAPI, API docs, API authentication, or an endpoint that the Inngest CLI\n  does not expose. Covers api-docs.inngest.com, llms.txt, the OpenAPI v2 spec,\n  Bearer authentication with API keys or signing keys, production and local\n  base URLs, raw curl\u002Ffetch requests, request-shape discovery, pagination,\n  secret redaction, and when to prefer the `inngest-api-cli` skill instead.\n---\n\n# Inngest REST API v2\n\nUse this skill for raw REST API v2 work and API reference lookup. If the task\ncan be completed through `npx inngest-cli@latest api`, use `inngest-api-cli`\ninstead; the CLI is safer for agents because it handles target\u002Fauth flags and\nendpoint command wiring.\n\n## Prefer CLI First\n\nUse `inngest-api-cli` for:\n\n- Run and trace debugging from a run ID or event ID.\n- Account, environment, key, webhook, app sync, and function invocation checks.\n- Insights table\u002Fschema\u002Fquery workflows.\n- Local dev server or Cloud operational checks.\n\nUse raw REST API v2 only when:\n\n- The CLI does not expose the needed endpoint.\n- The user explicitly asks for HTTP, curl, fetch, OpenAPI, or API docs.\n- You need to inspect request\u002Fresponse schemas before deciding what to do.\n\n## Docs Lookup\n\nWhen precision matters, fetch current docs instead of guessing:\n\n- API overview: `https:\u002F\u002Fapi-docs.inngest.com\u002F`\n- Authentication: `https:\u002F\u002Fapi-docs.inngest.com\u002Fauthentication`\n- LLM index: `https:\u002F\u002Fapi-docs.inngest.com\u002Fllms.txt`\n- OpenAPI v2 spec: `https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json`\n- Markdown page pattern: add `.md` to a docs URL, for example\n  `https:\u002F\u002Fapi-docs.inngest.com\u002Fv2\u002Fruns\u002FGetFunctionTrace.md`\n- Endpoint request\u002Fresponse schemas:\n  [references\u002Frest-api-v2.md](references\u002Frest-api-v2.md)\n\nIf a Markdown page returns an error or omits generated reference details, use\nthe OpenAPI spec for methods, paths, parameters, request bodies, and schemas.\n\n## Base URLs\n\n- Cloud v2: `https:\u002F\u002Fapi.inngest.com\u002Fv2`\n- Local dev server v2: `http:\u002F\u002Flocalhost:8288\u002Fapi\u002Fv2`\n- API docs say the dev server may also be reached through the local server\n  origin. Confirm the actual dev server port before making local requests.\n\n## Authentication\n\nThe REST API uses Bearer token authentication.\n\n- Prefer `INNGEST_API_KEY` for requests from CI, scripts, tools, and agents.\n- Signing keys are primarily for apps communicating with Inngest; use them for\n  API requests only when that is the available, appropriate credential.\n- API keys are for v2 endpoints only.\n- Include `X-Inngest-Env` or use an environment-scoped API key when operating\n  outside the default production environment.\n- Never paste, print, commit, or log API keys, event keys, signing keys,\n  webhook URLs, or decrypted secrets.\n\nExample:\n\n```bash\ncurl -fsSL \\\n  -H \"Authorization: Bearer $INNGEST_API_KEY\" \\\n  -H \"X-Inngest-Env: $INNGEST_ENV\" \\\n  https:\u002F\u002Fapi.inngest.com\u002Fv2\u002Faccount\n```\n\n## Endpoint Discovery\n\nUse the OpenAPI spec as the source of truth:\n\n```bash\ncurl -fsSL https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json\n```\n\nCurrent v2 areas include account, environments, keys, webhooks, apps, function\ninvocation, event-run lookup, function runs, traces, Insights, and partner APIs.\nEndpoint coverage can change, so inspect the spec before writing a raw request.\n\nFor API-only or access-gated endpoints, such as partner-account endpoints,\nconfirm the user has the needed access before attempting a call.\n\n## Request Rules\n\n- Derive method, path, query params, headers, and body from OpenAPI.\n- Do not invent undocumented request fields.\n- Use structured JSON parsing before making decisions from responses.\n- Use body files or here-docs for complex JSON instead of shell-escaped one\n  liners.\n- Add pagination cursors when `page.hasMore` is true and complete results are\n  needed.\n- Treat missing `data` in list responses as an empty list unless an error is\n  present.\n\n## Mutation Safety\n\nRead before write. Confirm target account, environment, resource, and intent\nbefore raw HTTP mutations unless the user's instruction already makes all of\nthat explicit.\n\nTreat these categories as mutating or side-effecting:\n\n- Creating or patching environments.\n- Creating webhooks.\n- Syncing apps.\n- Invoking functions.\n- Partner account creation.\n- Broad Insights queries that may be expensive or noisy.\n\n## Output Handling\n\n- Summarize IDs, names, statuses, pagination, and actionable errors.\n- Redact token values, webhook URLs, sensitive payload fields, and decrypted\n  secrets.\n- Do not paste large raw traces, full OpenAPI fragments, or full response\n  bodies unless the user asks.\n- If auth fails, first verify that a credential is present in the environment;\n  then ask the user to provide or rotate `INNGEST_API_KEY` without pasting it\n  into chat.\n",{"data":41,"body":42},{"name":4,"description":6},{"type":43,"children":44},"root",[45,54,77,84,96,121,126,144,150,155,232,237,243,273,279,284,328,333,441,447,452,475,480,485,491,540,546,551,556,589,595,625],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"inngest-rest-api-v2",[51],{"type":52,"value":53},"text","Inngest REST API v2",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58,60,67,69,75],{"type":52,"value":59},"Use this skill for raw REST API v2 work and API reference lookup. If the task\ncan be completed through ",{"type":46,"tag":61,"props":62,"children":64},"code",{"className":63},[],[65],{"type":52,"value":66},"npx inngest-cli@latest api",{"type":52,"value":68},", use ",{"type":46,"tag":61,"props":70,"children":72},{"className":71},[],[73],{"type":52,"value":74},"inngest-api-cli",{"type":52,"value":76},"\ninstead; the CLI is safer for agents because it handles target\u002Fauth flags and\nendpoint command wiring.",{"type":46,"tag":78,"props":79,"children":81},"h2",{"id":80},"prefer-cli-first",[82],{"type":52,"value":83},"Prefer CLI First",{"type":46,"tag":55,"props":85,"children":86},{},[87,89,94],{"type":52,"value":88},"Use ",{"type":46,"tag":61,"props":90,"children":92},{"className":91},[],[93],{"type":52,"value":74},{"type":52,"value":95}," for:",{"type":46,"tag":97,"props":98,"children":99},"ul",{},[100,106,111,116],{"type":46,"tag":101,"props":102,"children":103},"li",{},[104],{"type":52,"value":105},"Run and trace debugging from a run ID or event ID.",{"type":46,"tag":101,"props":107,"children":108},{},[109],{"type":52,"value":110},"Account, environment, key, webhook, app sync, and function invocation checks.",{"type":46,"tag":101,"props":112,"children":113},{},[114],{"type":52,"value":115},"Insights table\u002Fschema\u002Fquery workflows.",{"type":46,"tag":101,"props":117,"children":118},{},[119],{"type":52,"value":120},"Local dev server or Cloud operational checks.",{"type":46,"tag":55,"props":122,"children":123},{},[124],{"type":52,"value":125},"Use raw REST API v2 only when:",{"type":46,"tag":97,"props":127,"children":128},{},[129,134,139],{"type":46,"tag":101,"props":130,"children":131},{},[132],{"type":52,"value":133},"The CLI does not expose the needed endpoint.",{"type":46,"tag":101,"props":135,"children":136},{},[137],{"type":52,"value":138},"The user explicitly asks for HTTP, curl, fetch, OpenAPI, or API docs.",{"type":46,"tag":101,"props":140,"children":141},{},[142],{"type":52,"value":143},"You need to inspect request\u002Fresponse schemas before deciding what to do.",{"type":46,"tag":78,"props":145,"children":147},{"id":146},"docs-lookup",[148],{"type":52,"value":149},"Docs Lookup",{"type":46,"tag":55,"props":151,"children":152},{},[153],{"type":52,"value":154},"When precision matters, fetch current docs instead of guessing:",{"type":46,"tag":97,"props":156,"children":157},{},[158,169,180,191,202,221],{"type":46,"tag":101,"props":159,"children":160},{},[161,163],{"type":52,"value":162},"API overview: ",{"type":46,"tag":61,"props":164,"children":166},{"className":165},[],[167],{"type":52,"value":168},"https:\u002F\u002Fapi-docs.inngest.com\u002F",{"type":46,"tag":101,"props":170,"children":171},{},[172,174],{"type":52,"value":173},"Authentication: ",{"type":46,"tag":61,"props":175,"children":177},{"className":176},[],[178],{"type":52,"value":179},"https:\u002F\u002Fapi-docs.inngest.com\u002Fauthentication",{"type":46,"tag":101,"props":181,"children":182},{},[183,185],{"type":52,"value":184},"LLM index: ",{"type":46,"tag":61,"props":186,"children":188},{"className":187},[],[189],{"type":52,"value":190},"https:\u002F\u002Fapi-docs.inngest.com\u002Fllms.txt",{"type":46,"tag":101,"props":192,"children":193},{},[194,196],{"type":52,"value":195},"OpenAPI v2 spec: ",{"type":46,"tag":61,"props":197,"children":199},{"className":198},[],[200],{"type":52,"value":201},"https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json",{"type":46,"tag":101,"props":203,"children":204},{},[205,207,213,215],{"type":52,"value":206},"Markdown page pattern: add ",{"type":46,"tag":61,"props":208,"children":210},{"className":209},[],[211],{"type":52,"value":212},".md",{"type":52,"value":214}," to a docs URL, for example\n",{"type":46,"tag":61,"props":216,"children":218},{"className":217},[],[219],{"type":52,"value":220},"https:\u002F\u002Fapi-docs.inngest.com\u002Fv2\u002Fruns\u002FGetFunctionTrace.md",{"type":46,"tag":101,"props":222,"children":223},{},[224,226],{"type":52,"value":225},"Endpoint request\u002Fresponse schemas:\n",{"type":46,"tag":227,"props":228,"children":230},"a",{"href":229},"references\u002Frest-api-v2.md",[231],{"type":52,"value":229},{"type":46,"tag":55,"props":233,"children":234},{},[235],{"type":52,"value":236},"If a Markdown page returns an error or omits generated reference details, use\nthe OpenAPI spec for methods, paths, parameters, request bodies, and schemas.",{"type":46,"tag":78,"props":238,"children":240},{"id":239},"base-urls",[241],{"type":52,"value":242},"Base URLs",{"type":46,"tag":97,"props":244,"children":245},{},[246,257,268],{"type":46,"tag":101,"props":247,"children":248},{},[249,251],{"type":52,"value":250},"Cloud v2: ",{"type":46,"tag":61,"props":252,"children":254},{"className":253},[],[255],{"type":52,"value":256},"https:\u002F\u002Fapi.inngest.com\u002Fv2",{"type":46,"tag":101,"props":258,"children":259},{},[260,262],{"type":52,"value":261},"Local dev server v2: ",{"type":46,"tag":61,"props":263,"children":265},{"className":264},[],[266],{"type":52,"value":267},"http:\u002F\u002Flocalhost:8288\u002Fapi\u002Fv2",{"type":46,"tag":101,"props":269,"children":270},{},[271],{"type":52,"value":272},"API docs say the dev server may also be reached through the local server\norigin. Confirm the actual dev server port before making local requests.",{"type":46,"tag":78,"props":274,"children":276},{"id":275},"authentication",[277],{"type":52,"value":278},"Authentication",{"type":46,"tag":55,"props":280,"children":281},{},[282],{"type":52,"value":283},"The REST API uses Bearer token authentication.",{"type":46,"tag":97,"props":285,"children":286},{},[287,300,305,310,323],{"type":46,"tag":101,"props":288,"children":289},{},[290,292,298],{"type":52,"value":291},"Prefer ",{"type":46,"tag":61,"props":293,"children":295},{"className":294},[],[296],{"type":52,"value":297},"INNGEST_API_KEY",{"type":52,"value":299}," for requests from CI, scripts, tools, and agents.",{"type":46,"tag":101,"props":301,"children":302},{},[303],{"type":52,"value":304},"Signing keys are primarily for apps communicating with Inngest; use them for\nAPI requests only when that is the available, appropriate credential.",{"type":46,"tag":101,"props":306,"children":307},{},[308],{"type":52,"value":309},"API keys are for v2 endpoints only.",{"type":46,"tag":101,"props":311,"children":312},{},[313,315,321],{"type":52,"value":314},"Include ",{"type":46,"tag":61,"props":316,"children":318},{"className":317},[],[319],{"type":52,"value":320},"X-Inngest-Env",{"type":52,"value":322}," or use an environment-scoped API key when operating\noutside the default production environment.",{"type":46,"tag":101,"props":324,"children":325},{},[326],{"type":52,"value":327},"Never paste, print, commit, or log API keys, event keys, signing keys,\nwebhook URLs, or decrypted secrets.",{"type":46,"tag":55,"props":329,"children":330},{},[331],{"type":52,"value":332},"Example:",{"type":46,"tag":334,"props":335,"children":340},"pre",{"className":336,"code":337,"language":338,"meta":339,"style":339},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -fsSL \\\n  -H \"Authorization: Bearer $INNGEST_API_KEY\" \\\n  -H \"X-Inngest-Env: $INNGEST_ENV\" \\\n  https:\u002F\u002Fapi.inngest.com\u002Fv2\u002Faccount\n","bash","",[341],{"type":46,"tag":61,"props":342,"children":343},{"__ignoreMap":339},[344,368,402,432],{"type":46,"tag":345,"props":346,"children":349},"span",{"class":347,"line":348},"line",1,[350,356,362],{"type":46,"tag":345,"props":351,"children":353},{"style":352},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[354],{"type":52,"value":355},"curl",{"type":46,"tag":345,"props":357,"children":359},{"style":358},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[360],{"type":52,"value":361}," -fsSL",{"type":46,"tag":345,"props":363,"children":365},{"style":364},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[366],{"type":52,"value":367}," \\\n",{"type":46,"tag":345,"props":369,"children":371},{"class":347,"line":370},2,[372,377,383,388,393,398],{"type":46,"tag":345,"props":373,"children":374},{"style":358},[375],{"type":52,"value":376},"  -H",{"type":46,"tag":345,"props":378,"children":380},{"style":379},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[381],{"type":52,"value":382}," \"",{"type":46,"tag":345,"props":384,"children":385},{"style":358},[386],{"type":52,"value":387},"Authorization: Bearer ",{"type":46,"tag":345,"props":389,"children":390},{"style":364},[391],{"type":52,"value":392},"$INNGEST_API_KEY",{"type":46,"tag":345,"props":394,"children":395},{"style":379},[396],{"type":52,"value":397},"\"",{"type":46,"tag":345,"props":399,"children":400},{"style":364},[401],{"type":52,"value":367},{"type":46,"tag":345,"props":403,"children":405},{"class":347,"line":404},3,[406,410,414,419,424,428],{"type":46,"tag":345,"props":407,"children":408},{"style":358},[409],{"type":52,"value":376},{"type":46,"tag":345,"props":411,"children":412},{"style":379},[413],{"type":52,"value":382},{"type":46,"tag":345,"props":415,"children":416},{"style":358},[417],{"type":52,"value":418},"X-Inngest-Env: ",{"type":46,"tag":345,"props":420,"children":421},{"style":364},[422],{"type":52,"value":423},"$INNGEST_ENV",{"type":46,"tag":345,"props":425,"children":426},{"style":379},[427],{"type":52,"value":397},{"type":46,"tag":345,"props":429,"children":430},{"style":364},[431],{"type":52,"value":367},{"type":46,"tag":345,"props":433,"children":435},{"class":347,"line":434},4,[436],{"type":46,"tag":345,"props":437,"children":438},{"style":358},[439],{"type":52,"value":440},"  https:\u002F\u002Fapi.inngest.com\u002Fv2\u002Faccount\n",{"type":46,"tag":78,"props":442,"children":444},{"id":443},"endpoint-discovery",[445],{"type":52,"value":446},"Endpoint Discovery",{"type":46,"tag":55,"props":448,"children":449},{},[450],{"type":52,"value":451},"Use the OpenAPI spec as the source of truth:",{"type":46,"tag":334,"props":453,"children":455},{"className":336,"code":454,"language":338,"meta":339,"style":339},"curl -fsSL https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json\n",[456],{"type":46,"tag":61,"props":457,"children":458},{"__ignoreMap":339},[459],{"type":46,"tag":345,"props":460,"children":461},{"class":347,"line":348},[462,466,470],{"type":46,"tag":345,"props":463,"children":464},{"style":352},[465],{"type":52,"value":355},{"type":46,"tag":345,"props":467,"children":468},{"style":358},[469],{"type":52,"value":361},{"type":46,"tag":345,"props":471,"children":472},{"style":358},[473],{"type":52,"value":474}," https:\u002F\u002Fapi-docs.inngest.com\u002Fapi-specs\u002Fv2.json\n",{"type":46,"tag":55,"props":476,"children":477},{},[478],{"type":52,"value":479},"Current v2 areas include account, environments, keys, webhooks, apps, function\ninvocation, event-run lookup, function runs, traces, Insights, and partner APIs.\nEndpoint coverage can change, so inspect the spec before writing a raw request.",{"type":46,"tag":55,"props":481,"children":482},{},[483],{"type":52,"value":484},"For API-only or access-gated endpoints, such as partner-account endpoints,\nconfirm the user has the needed access before attempting a call.",{"type":46,"tag":78,"props":486,"children":488},{"id":487},"request-rules",[489],{"type":52,"value":490},"Request Rules",{"type":46,"tag":97,"props":492,"children":493},{},[494,499,504,509,514,527],{"type":46,"tag":101,"props":495,"children":496},{},[497],{"type":52,"value":498},"Derive method, path, query params, headers, and body from OpenAPI.",{"type":46,"tag":101,"props":500,"children":501},{},[502],{"type":52,"value":503},"Do not invent undocumented request fields.",{"type":46,"tag":101,"props":505,"children":506},{},[507],{"type":52,"value":508},"Use structured JSON parsing before making decisions from responses.",{"type":46,"tag":101,"props":510,"children":511},{},[512],{"type":52,"value":513},"Use body files or here-docs for complex JSON instead of shell-escaped one\nliners.",{"type":46,"tag":101,"props":515,"children":516},{},[517,519,525],{"type":52,"value":518},"Add pagination cursors when ",{"type":46,"tag":61,"props":520,"children":522},{"className":521},[],[523],{"type":52,"value":524},"page.hasMore",{"type":52,"value":526}," is true and complete results are\nneeded.",{"type":46,"tag":101,"props":528,"children":529},{},[530,532,538],{"type":52,"value":531},"Treat missing ",{"type":46,"tag":61,"props":533,"children":535},{"className":534},[],[536],{"type":52,"value":537},"data",{"type":52,"value":539}," in list responses as an empty list unless an error is\npresent.",{"type":46,"tag":78,"props":541,"children":543},{"id":542},"mutation-safety",[544],{"type":52,"value":545},"Mutation Safety",{"type":46,"tag":55,"props":547,"children":548},{},[549],{"type":52,"value":550},"Read before write. Confirm target account, environment, resource, and intent\nbefore raw HTTP mutations unless the user's instruction already makes all of\nthat explicit.",{"type":46,"tag":55,"props":552,"children":553},{},[554],{"type":52,"value":555},"Treat these categories as mutating or side-effecting:",{"type":46,"tag":97,"props":557,"children":558},{},[559,564,569,574,579,584],{"type":46,"tag":101,"props":560,"children":561},{},[562],{"type":52,"value":563},"Creating or patching environments.",{"type":46,"tag":101,"props":565,"children":566},{},[567],{"type":52,"value":568},"Creating webhooks.",{"type":46,"tag":101,"props":570,"children":571},{},[572],{"type":52,"value":573},"Syncing apps.",{"type":46,"tag":101,"props":575,"children":576},{},[577],{"type":52,"value":578},"Invoking functions.",{"type":46,"tag":101,"props":580,"children":581},{},[582],{"type":52,"value":583},"Partner account creation.",{"type":46,"tag":101,"props":585,"children":586},{},[587],{"type":52,"value":588},"Broad Insights queries that may be expensive or noisy.",{"type":46,"tag":78,"props":590,"children":592},{"id":591},"output-handling",[593],{"type":52,"value":594},"Output Handling",{"type":46,"tag":97,"props":596,"children":597},{},[598,603,608,613],{"type":46,"tag":101,"props":599,"children":600},{},[601],{"type":52,"value":602},"Summarize IDs, names, statuses, pagination, and actionable errors.",{"type":46,"tag":101,"props":604,"children":605},{},[606],{"type":52,"value":607},"Redact token values, webhook URLs, sensitive payload fields, and decrypted\nsecrets.",{"type":46,"tag":101,"props":609,"children":610},{},[611],{"type":52,"value":612},"Do not paste large raw traces, full OpenAPI fragments, or full response\nbodies unless the user asks.",{"type":46,"tag":101,"props":614,"children":615},{},[616,618,623],{"type":52,"value":617},"If auth fails, first verify that a credential is present in the environment;\nthen ask the user to provide or rotate ",{"type":46,"tag":61,"props":619,"children":621},{"className":620},[],[622],{"type":52,"value":297},{"type":52,"value":624}," without pasting it\ninto chat.",{"type":46,"tag":626,"props":627,"children":628},"style",{},[629],{"type":52,"value":630},"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":632,"total":796},[633,651,666,672,684,699,714,727,739,752,768,783],{"slug":634,"name":634,"fn":635,"description":636,"org":637,"tags":638,"stars":22,"repoUrl":23,"updatedAt":650},"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},[639,642,645,646,649],{"name":640,"slug":641,"type":15},"Agents","agents",{"name":643,"slug":644,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":647,"slug":648,"type":15},"Observability","observability",{"name":20,"slug":21,"type":15},"2026-07-12T07:36:51.711641",{"slug":652,"name":652,"fn":653,"description":654,"org":655,"tags":656,"stars":22,"repoUrl":23,"updatedAt":665},"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},[657,658,661,662],{"name":640,"slug":641,"type":15},{"name":659,"slug":660,"type":15},"Automation","automation",{"name":9,"slug":8,"type":15},{"name":663,"slug":664,"type":15},"LLM","llm","2026-07-12T07:36:45.984181",{"slug":4,"name":4,"fn":5,"description":6,"org":667,"tags":668,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[669,670,671],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"slug":74,"name":74,"fn":673,"description":674,"org":675,"tags":676,"stars":22,"repoUrl":23,"updatedAt":683},"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},[677,678,679,682],{"name":17,"slug":18,"type":15},{"name":659,"slug":660,"type":15},{"name":680,"slug":681,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},"2026-07-12T07:36:47.58183",{"slug":685,"name":685,"fn":686,"description":687,"org":688,"tags":689,"stars":22,"repoUrl":23,"updatedAt":698},"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},[690,691,694,697],{"name":659,"slug":660,"type":15},{"name":692,"slug":693,"type":15},"Code Analysis","code-analysis",{"name":695,"slug":696,"type":15},"Engineering","engineering",{"name":9,"slug":8,"type":15},"2026-07-12T07:36:55.811247",{"slug":700,"name":700,"fn":701,"description":702,"org":703,"tags":704,"stars":22,"repoUrl":23,"updatedAt":713},"inngest-cli","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},[705,706,709,710],{"name":680,"slug":681,"type":15},{"name":707,"slug":708,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":711,"slug":712,"type":15},"Local Development","local-development","2026-07-12T07:36:40.694652",{"slug":715,"name":715,"fn":716,"description":717,"org":718,"tags":719,"stars":22,"repoUrl":23,"updatedAt":726},"inngest-durable-functions","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},[720,721,724,725],{"name":659,"slug":660,"type":15},{"name":722,"slug":723,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},{"name":20,"slug":21,"type":15},"2026-07-12T07:36:57.141023",{"slug":728,"name":728,"fn":729,"description":730,"org":731,"tags":732,"stars":22,"repoUrl":23,"updatedAt":738},"inngest-events","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},[733,736,737],{"name":734,"slug":735,"type":15},"Data Pipeline","data-pipeline",{"name":9,"slug":8,"type":15},{"name":20,"slug":21,"type":15},"2026-07-12T07:36:44.685364",{"slug":740,"name":740,"fn":741,"description":742,"org":743,"tags":744,"stars":22,"repoUrl":23,"updatedAt":751},"inngest-flow-control","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},[745,746,747,748],{"name":17,"slug":18,"type":15},{"name":659,"slug":660,"type":15},{"name":9,"slug":8,"type":15},{"name":749,"slug":750,"type":15},"Performance","performance","2026-07-12T07:36:52.987451",{"slug":753,"name":753,"fn":754,"description":755,"org":756,"tags":757,"stars":22,"repoUrl":23,"updatedAt":767},"inngest-middleware","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},[758,759,760,763,764],{"name":695,"slug":696,"type":15},{"name":9,"slug":8,"type":15},{"name":761,"slug":762,"type":15},"Middleware","middleware",{"name":647,"slug":648,"type":15},{"name":765,"slug":766,"type":15},"Sentry","sentry","2026-07-12T07:36:50.127999",{"slug":769,"name":769,"fn":770,"description":771,"org":772,"tags":773,"stars":22,"repoUrl":23,"updatedAt":782},"inngest-realtime","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},[774,775,778,779],{"name":659,"slug":660,"type":15},{"name":776,"slug":777,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},{"name":780,"slug":781,"type":15},"Real-time","real-time","2026-07-12T07:36:48.895092",{"slug":784,"name":784,"fn":785,"description":786,"org":787,"tags":788,"stars":22,"repoUrl":23,"updatedAt":795},"inngest-setup","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},[789,790,791,792],{"name":659,"slug":660,"type":15},{"name":722,"slug":723,"type":15},{"name":9,"slug":8,"type":15},{"name":793,"slug":794,"type":15},"TypeScript","typescript","2026-07-12T07:36:42.004122",14,{"items":798,"total":796},[799,807,814,820,827,834,841],{"slug":634,"name":634,"fn":635,"description":636,"org":800,"tags":801,"stars":22,"repoUrl":23,"updatedAt":650},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[802,803,804,805,806],{"name":640,"slug":641,"type":15},{"name":643,"slug":644,"type":15},{"name":9,"slug":8,"type":15},{"name":647,"slug":648,"type":15},{"name":20,"slug":21,"type":15},{"slug":652,"name":652,"fn":653,"description":654,"org":808,"tags":809,"stars":22,"repoUrl":23,"updatedAt":665},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[810,811,812,813],{"name":640,"slug":641,"type":15},{"name":659,"slug":660,"type":15},{"name":9,"slug":8,"type":15},{"name":663,"slug":664,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":815,"tags":816,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[817,818,819],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"slug":74,"name":74,"fn":673,"description":674,"org":821,"tags":822,"stars":22,"repoUrl":23,"updatedAt":683},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[823,824,825,826],{"name":17,"slug":18,"type":15},{"name":659,"slug":660,"type":15},{"name":680,"slug":681,"type":15},{"name":9,"slug":8,"type":15},{"slug":685,"name":685,"fn":686,"description":687,"org":828,"tags":829,"stars":22,"repoUrl":23,"updatedAt":698},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[830,831,832,833],{"name":659,"slug":660,"type":15},{"name":692,"slug":693,"type":15},{"name":695,"slug":696,"type":15},{"name":9,"slug":8,"type":15},{"slug":700,"name":700,"fn":701,"description":702,"org":835,"tags":836,"stars":22,"repoUrl":23,"updatedAt":713},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[837,838,839,840],{"name":680,"slug":681,"type":15},{"name":707,"slug":708,"type":15},{"name":9,"slug":8,"type":15},{"name":711,"slug":712,"type":15},{"slug":715,"name":715,"fn":716,"description":717,"org":842,"tags":843,"stars":22,"repoUrl":23,"updatedAt":726},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[844,845,846,847],{"name":659,"slug":660,"type":15},{"name":722,"slug":723,"type":15},{"name":9,"slug":8,"type":15},{"name":20,"slug":21,"type":15}]