Introduction

The official Igniter.js CLI. Create projects, scaffold features, wire add-ons, and keep schema + docs in sync — all from the terminal.

Overview

@igniter-js/cli is the command-line interface for Igniter.js. It is your single entry point for creating new projects, scaffolding features from database schemas, wiring add-ons (database, auth, jobs, and more), and keeping your TypeScript client schema and OpenAPI docs synchronized as you code.

No boilerplate. No manual wiring. One command, and you have a working project.

The CLI is designed for speed and consistency across teams. Every command follows predictable conventions — same flags, same output structure, same template engine — so onboarding new developers takes minutes, not hours.

Key Capabilities

  • Project Creationigniter init creates a project with any of 6 starters (Next.js, TanStack Start, Express, Bun, Deno) plus 9 configurable add-ons
  • Schema-aware Scaffoldingigniter generate feature --schema prisma:User reads your Prisma schema and generates type-safe controllers, procedures, and interfaces
  • Auto-regenerationigniter dev watches your router and features, then regenerates the client schema and OpenAPI spec on every change
  • OpenAPI Client Generationigniter generate caller takes any OpenAPI spec and produces a fully typed, Zod-validated Igniter Caller
  • Multi-runtime — starters target different runtimes; add-ons adapt based on the detected framework
  • Extensible — starters, add-ons, and schema providers are registry-based; the community can add new ones

Architecture

The CLI is structured around three top-level commands, each backed by a composable architecture of registries, template engines, and file watchers.

igniter
├── init           ← Create a new project or install into existing
│   ├── Starters   (6: nextjs, tanstack-start, express, bun-api, bun-react, deno)
│   ├── Add-ons    (9: database, auth, jobs, store, mcp, logging, telemetry, bots, shadcn-ui)
│   └── Generator  (template engine + file system)

├── generate       ← Scaffold code from schemas
│   ├── feature    (with optional Prisma schema provider)
│   ├── controller (inside a feature)
│   ├── procedure  (inside a feature)
│   ├── docs       (OpenAPI spec generation)
│   ├── schema     (client TypeScript schema)
│   └── caller     (OpenAPI → typed IgniterCaller)

└── dev            ← Watch mode with TUI
    ├── Watcher    (chokidar — router + features directory)
    ├── Generator  (schema + OpenAPI on change)
    └── TUI        (Ink-based split-pane terminal UI)

Core Systems

SystemPurpose
Template EngineHandlebars-based rendering with custom helpers (includes, isEmpty, camelCase, filterPlugins, etc.)
Starter RegistryExtensible registry of project starters (each with templates, env vars, dependencies)
Add-on RegistryExtensible registry of add-ons (each with templates, dependencies, Docker config, env vars)
Schema Provider RegistryExtensible registry of schema providers (currently: Prisma) for schema-aware scaffolding
Package Manager DetectionAuto-detects npm, yarn, pnpm, or bun from npm_config_user_agent
Framework DetectionAuto-detects Next.js or TanStack Start when installing into existing projects

Quick Start

npm install -g @igniter-js/cli
pnpm add -g @igniter-js/cli
yarn global add @igniter-js/cli
bun add -g @igniter-js/cli
# Create a Next.js project with database + auth in 60 seconds
igniter init my-app \
  --template nextjs \
  --add-ons database,auth \
  --database postgresql

cd my-app

# Generate a Prisma-backed feature
igniter generate feature users --schema prisma:User

# Start dev mode — schema + docs regenerate on file change
igniter dev

Real-World Use Cases

ScenarioWhat the CLI Provides
New SaaS projectNext.js starter + database (Prisma/PostgreSQL) + auth (Better Auth) + jobs — all in one init
Microservice APIExpress starter + logging + telemetry + MCP server for AI agent integration
Existing Next.js appigniter init . --mode install — adds Igniter.js without overwriting your code
Schema-first developmentigniter generate feature from Prisma models — controllers and procedures generated from schema
API client generationigniter generate caller from any OpenAPI spec → typed, validated caller in seconds
Team onboardingOne igniter init command replaces pages of setup docs; new devs are productive in minutes

Next Steps