Skip to content

CLI Reference

alpha (0.0.x) — Apache 2.0 licensed. Commands and flags may change before 1.0.

The quadkit CLI is the primary developer tool for scaffolding, running, and managing Quadkit projects. Commands are organised into categories.

Scaffold a new project or package.

quadkit new project <name> [--template web-api] [--directory .]
quadkit new module <name> [--directory .]
quadkit new package <name> [--output-dir packages/]
FlagDefaultDescription
--template, -tweb-apiProject template (minimal, api, web-api, graphql, worker, full, fullstack)
--directory, -d.Output directory

Examples:

Terminal window
quadkit new project my-api --template web-api
quadkit new project my-app --template api
quadkit new project my-platform --template full

quadkit new module <name> adds a bounded context to a project (src/<app>/modules/<name>/ with a @module boundary, protocols.py, provider.py and services.py, registered in modules/__init__.py).

quadkit gen <generator> <name> --module <feature> writes module-local components into the matching bounded context; cross-cutting generators (errors, filters, health, schema, …) write into shared/.

Smart runner — auto-detects create_app() factory and starts the ASGI server.

quadkit run [target] [--host 0.0.0.0] [--port 8000] [--server uvicorn]
FlagDefaultDescription
targetAuto-detectedmodule:attr factory path
--host, -h0.0.0.0Bind address
--port, -p8000Port
--serverAuto-detectedServer backend (uvicorn, hypercorn, granian)

Example: quadkit run my_app.app:create_app --port 8080

Development server with hot reload.

quadkit dev [--entry src/main.py] [--host 127.0.0.1] [--port 8000] [--reload] [--env development]
FlagDefaultDescription
--entryAuto-detectedEntry point file
--reload/--no-reloadTrueHot reload on file changes
--envdevelopmentEnvironment profile

Example: quadkit dev --entry app.py --port 9000 --no-reload

Database management commands.

quadkit db init [--reset] [--seed]
quadkit db migrate [--name <migration>] [--auto]
quadkit db seed [--file seeds.py] # src/<app>/shared/seeders, else ./seeds
quadkit db shell

Code generation commands.

quadkit gen provider <name> [--output src/di/]
quadkit gen module <name> [--output src/modules/]
quadkit gen migration [--auto-detect]

Inspect runtime state of a running application or configuration.

quadkit inspect providers [--json]
quadkit inspect config [--section <section>]
quadkit inspect routes
quadkit inspect health
FlagDescription
--jsonOutput as JSON
--sectionFilter config to a specific section

Open an interactive Python REPL with the Quadkit application loaded.

quadkit shell [target]

Initialize Quadkit in an existing project.

quadkit init [--force]

Creates application.yaml, project scaffold, and optional pyproject.toml updates.

Add a provider or extension to the project.

quadkit add <package> [--version <version>]
quadkit add provider <name>

Configuration management.

quadkit config view [--section <section>]
quadkit config validate [--file application.yaml]

Discover and inspect installed contributors (plugins).

quadkit contrib list [--json]
quadkit contrib info <name>
FlagDescription
--jsonMachine-readable output

Project management utilities.

quadkit project test [path] [--coverage] [--verbose] [--runner pytest]
quadkit project lint [path] [--fix] [--check]
quadkit project routes

System information and diagnostics.

quadkit system info
quadkit system diagnostics
quadkit system check

Show framework and package versions.

quadkit version [--all]
FlagDescription
--allList versions of all installed Quadkit packages

List all available commands.

quadkit list [--group <group>] [--json]
FlagDescription
--group, -gFilter by category
--jsonMachine-readable output

Generate shell completion script.

quadkit completion --shell <bash|zsh|fish|powershell>

Install with: eval "$(quadkit completion --shell bash)"

Run project tests (delegates to quadkit project test).

quadkit test [path] [--coverage] [--verbose]

Run project linting (delegates to quadkit project lint).

quadkit lint [path] [--fix]

Event schema management.

quadkit events schema validate
quadkit events schema migrate

Packages can register commands via the quadkit.cli.commands entry point. Contributor commands appear under their own category in quadkit list. Register in pyproject.toml:

[project.entry-points."quadkit.cli.commands"]
my_contrib = "my_package.cli:app"
  • CLIModule — DI integration for CLI commands
  • CommandRegistry — programmatic command registration
  • ContributorRuntime — plugin discovery at runtime
  • PUBLIC_PACKAGE_CLI_MATRIX.md — per-package command ownership