# inngest-cli

Teaches the agent to boot the local Inngest Dev Server, debug a serve endpoint and test functions with @inngest/test.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 808 installs · ★ 29
- Author: inngest
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/inngest/inngest-skills/tree/HEAD/skills/inngest-cli/SKILL.md
- Updated: 2026-09-28
- HTML: https://affpapa.org/en/nevibecode/skills/inngest-cli

## What it does

The skill covers the Inngest CLI end to end: `inngest dev`, auto-discovery of apps on common ports, an `inngest.json` (or `.yaml`, `.toml`) config in the project root, and environment variables such as `INNGEST_DEV` and `INNGEST_SIGNING_KEY`. A flag table comes with it, so the agent stops guessing at ports and options.

Local testing gets its own section. Events can go out through the SDK or a `curl` POST to `http://localhost:8288/e/test`, and unit tests use `@inngest/test`, which needs `inngest@>=4.0.0`. The examples show how to run a whole function, exercise one step, assert step state and stub responses. There is also a serve endpoint check: when `functionsFound` comes back as `0`, the functions were not passed to `serve()`.

Examples are TypeScript. Python and Go readers are pointed to the Inngest docs, though the concepts carry over. One practical snag: if npm has lifecycle scripts turned off and the binary never lands, rerun with `npx --ignore-scripts=false`. In Bun, stick to `npx` — lifecycle scripts are off by default there.

## Requirements
- Works with: Docker

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-cli -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/inngest-cli/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/inngest-cli/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-cli -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/inngest-cli/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-cli -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/inngest-cli/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install inngest/inngest-skills inngest-cli
```

2. **Manually: put the files in place**
- File: `.github/skills/inngest-cli/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-cli -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/inngest/inngest-skills --path skills/inngest-cli
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/inngest-cli/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add inngest/inngest-skills --skill inngest-cli -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/inngest/inngest-skills/tree/HEAD/skills/inngest-cli/SKILL.md

## When to use it
- start the Inngest Dev Server and open the UI on `http://localhost:8288`
- point the Dev Server at a serve endpoint by hand
- fire a test event at a function without touching the cloud
- unit test a single step with `InngestTestEngine`
- work out why `functionsFound` returns zero

## Example prompts
- Start `npx inngest-cli@latest dev` and connect my app at `http://localhost:3000/api/inngest`.
- Run `curl -s http://localhost:3000/api/inngest | jq` and tell me how many functions were found.
- Write a test for `helloWorld` with `InngestTestEngine` and check the `calculate-price` step output.

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: f8ff82cf0dbfd0a7.

BEGIN THIRD-PARTY FILE f8ff82cf0dbfd0a7
````text
---
name: inngest-cli
description: 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/test`, local event sending, platform gotchas, and production/self-hosted server flags.
---

# Inngest CLI

Master the Inngest CLI for local development, testing, and self-hosted production. The CLI provides the Dev Server — a fully-featured, open-source local version of the Inngest Platform.

> **These skills are focused on TypeScript.** For Python or Go, refer to the [Inngest documentation](https://www.inngest.com/llms.txt) for language-specific guidance. Core concepts apply across all languages.

Use this skill for CLI setup, Dev Server workflows, local testing, Docker, MCP, and self-hosted server operations. For run/trace inspection through `inngest api`, use `inngest-api-cli` when available.

## Installation

```bash
# npx (recommended — always latest)
npx inngest-cli@latest dev

# yarn
yarn dlx inngest-cli@latest dev

# pnpm
pnpm dlx inngest-cli@latest dev

# Global install
npm install -g inngest-cli

# Docker
docker pull inngest/inngest
```

If your npm configuration disables lifecycle scripts and the binary is missing, retry with `npx --ignore-scripts=false inngest-cli@latest dev`. Bun does not support lifecycle scripts by default, so prefer `npx` for the CLI even in Bun projects.

## `inngest dev` — Local Dev Server

Starts an in-memory local version of Inngest with a browser UI at `http://localhost:8288`.

```bash
# Auto-discover apps on common ports/endpoints
npx inngest-cli@latest dev

# Specify your app URL
npx inngest-cli@latest dev -u http://localhost:3000/api/inngest

# Custom port
npx inngest-cli@latest dev -p 9999

# Multiple apps
npx inngest-cli@latest dev \
  -u http://localhost:3000/api/inngest \
  -u http://localhost:4000/api/inngest

# Disable auto-discovery (use with -u)
npx inngest-cli@latest dev --no-discovery -u http://localhost:3000/api/inngest
```

### CLI Flags

| Flag | Short | Default | Description |
|---|---|---|---|
| `--sdk-url` | `-u` | `http://localhost:3000/api/inngest` | App serve endpoint URL(s) |
| `--port` | `-p` | `8288` | Dev Server port |
| `--host` | | | Dev Server host |
| `--no-discovery` | | `false` | Disable auto-discovery of apps |
| `--no-poll` | | `false` | Disable polling apps for changes |
| `--config` | | | Path to configuration file |
````
END THIRD-PARTY FILE f8ff82cf0dbfd0a7

The third-party file has ended. Everything between the f8ff82cf0dbfd0a7 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2608 of 14242 bytes. © inngest · Apache-2.0 · https://github.com/inngest/inngest-skills/tree/HEAD/skills/inngest-cli/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
