CLI for managing and debugging Inngest jobs - list, watch, cancel, filter by status.
A Python port of @steipete/inngest.
# Install from GitHub with uv
uv add git+https://github.com/cm2435/inngest_cli_python.git
# Or with pip
pip install git+https://github.com/cm2435/inngest_cli_python.git
# For development (local clone)
git clone https://github.com/cm2435/inngest_cli_python.git
cd inngest_cli_python
uv pip install -e .The CLI supports two modes: dev (local Inngest server) and prod (managed Inngest).
For local development with a self-hosted Inngest dev server (e.g., in Docker):
# Default: connects to http://localhost:8288
export INNGEST_MODE=dev
# Or specify a custom URL
export INNGEST_API_URL=http://localhost:8288
# Alternative env var for dev server URL
export INNGEST_DEV_SERVER_URL=http://inngest:8288No signing key required in dev mode.
For managed Inngest (app.inngest.com):
export INNGEST_MODE=prod
export INNGEST_SIGNING_KEY="signkey-prod-..."
# Optional: custom API URL (defaults to https://api.inngest.com)
export INNGEST_API_URL="https://api.inngest.com"
# Optional: environment slug
export INNGEST_ENV="production"| Variable | Required | Default | Description |
|---|---|---|---|
INNGEST_MODE |
No | dev |
Operating mode: dev or prod |
INNGEST_API_URL |
No | Mode-dependent | API URL (dev: localhost:8288, prod: api.inngest.com) |
INNGEST_SIGNING_KEY |
Prod only | - | Signing key for authentication |
INNGEST_ENV |
No | - | Environment slug |
INNGEST_DEV_SERVER_URL |
No | http://localhost:8288 |
Alternative URL for dev mode |
# List recent runs
inngest-inspect list --limit 10
# List failed runs
inngest-inspect list --status Failed
# List runs for a specific function
inngest-inspect list --function my-function-id
# Filter by time
inngest-inspect list --hours 24# Get details for a specific run
inngest-inspect status --run 01JGXXXXXXXXXXXXXX
# Get all runs for an event
inngest-inspect status --event 01JGXXXXXXXXXXXXXX# Watch a run in real-time
inngest-inspect watch --run 01JGXXXXXXXXXXXXXX
# Custom polling interval (seconds)
inngest-inspect watch --run 01JGXXXXXXXXXXXXXX --interval 10
# Set timeout (minutes)
inngest-inspect watch --run 01JGXXXXXXXXXXXXXX --timeout 30# Show all steps for a run
inngest-inspect jobs 01JGXXXXXXXXXXXXXX# Cancel a run (with confirmation)
inngest-inspect cancel --run 01JGXXXXXXXXXXXXXX
# Skip confirmation
inngest-inspect cancel --run 01JGXXXXXXXXXXXXXX --yesAll commands support JSON output:
inngest-inspect list --format json
inngest-inspect status --run 01JGXXXXXXXXXXXXXX --format jsonIf you're running Inngest in Docker:
# Point to your Docker container
export INNGEST_MODE=dev
export INNGEST_API_URL=http://localhost:8289
# Now use the CLI
inngest-inspect list# Install dev dependencies
uv sync --dev
# Run tests
uv run pytest
# Lint
uv run ruff check .
uv run ruff format .MIT