CLI
The kumiko CLI is the daily-driver surface for working with a Kumiko app.
It boots local Docker services, runs codegen, migrates the database,
manages event consumers and projections, runs tests, and ships production
builds — all with a single kumiko <verb> entry point.
The 30-second tour
Section titled “The 30-second tour”bun kumiko dev # boot Postgres + Redis + Meilisearch (docker compose up -d)bun kumiko doctor # is everything healthy?bun kumiko create myFeature # scaffold a new feature workspacebun kumiko codegen # regenerate .kumiko/define.ts + types.generated.d.tsbun kumiko schema generate my-change # new apps: drizzle-free migrationbun kumiko migrate generate # legacy apps: drizzle-kit migrationbun kumiko migrate apply # legacy: apply pending migrationsbun kumiko test # run unit tests (bun:test)bun kumiko check # full quality pass (lint + types + guards + tests)bun kumiko build # production buildbun kumiko stop # bring services down (volumes stay)Running kumiko with no arguments opens an interactive TUI (Ink-based) for
discovering commands. Pipe-friendly contexts (CI, scripts) fall back to a
plain help screen.
The CLI is role-aware. Commands are grouped into two roles:
app-dev— what you get when you runkumikoinside an app workspace. Hides framework-maintenance commands you don’t need.maintainer— auto-detected insidecosmicdriftgamestudio/. Adds ES-ops, code mods, CI guards, AI-eval delegation.
Override with --as <role>:
kumiko events prune --as maintainerCommands
Section titled “Commands”Lifecycle
Section titled “Lifecycle”kumiko dev— boot local Docker serviceskumiko stop— stop services (data stays)kumiko reset— wipe volumes + restartkumiko status— services + git at a glancekumiko doctor— health checkkumiko docs— open these docs in your browser
kumiko create <name>— scaffold a featurekumiko codegen— regenerate per-app codegenkumiko build— production buildkumiko codemod— code migrations
Quality
Section titled “Quality”kumiko check— full quality passkumiko check:fast— fast iteration loop (pre-commit)kumiko test— bun:test / Playwright runner
kumiko schema— DB schema (new apps, drizzle-free)kumiko migrate— DB schema (legacy drizzle-kit)kumiko events— events table (prune)kumiko consumer— event consumers (list/restart/skip/…)kumiko project— projections (list/status/rebuild)kumiko ops— ES seed workflowkumiko clean-test-dbs— drop orphan test DBs
Framework-internal (maintainer only)
Section titled “Framework-internal (maintainer only)”kumiko ci:guards— CI job splitterkumiko eval— L2 AI eval (delegates to kumiko-enterprise)
kumiko help # role-filtered command listkumiko <command> --help # per-command details (where wired)kumiko docs <command> # open the docs page for one commandWhere the CLI lives
Section titled “Where the CLI lives”The CLI lives in kumiko-framework/bin/. Each command is a single file
under bin/commands/ that registers itself via defineCommand at import
time. Adding a new command is a one-file change plus a side-effect import in
bin/commands/index.ts.
The legacy 1600-LOC monolith (bin/kumiko-legacy.ts) hosts the
parallel-lock + tee-logging machinery for check/check:fast/ci:guards
until Sprint C extracts it. End users never call it directly.