quadkit-cli
Command-line interface for the Quadkit Framework.
Overview
The quadkit CLI provides project scaffolding, code generation, development tooling, and administrative commands for every stage of the application lifecycle. It uses a contributor-based plugin system so other packages can extend the CLI with new commands and generators.
Full documentation: docs.quadkit.dev
Install
uv add quadkit-cli
# or, as a standalone tool:
uv tool install quadkit-cli
Quick Start
from quadkit import Application
from quadkit.di.module import Module, module
from quadkit.cli import CLIModule
from quadkit.cli.config import CLIConfig
@module(imports=[CLIModule.configure(CLIConfig())])
class AppModule(Module):
pass
async with Application.boot(modules=[AppModule]) as app:
# use app.container to resolve services
...
Or use the CLI directly:
# Create a new web API project
quadkit new project my-api --template web-api
# Scaffold a new extension package
quadkit new package my-feature
# Generate a provider (providers and tests are the built-in generators)
quadkit gen provider MyProvider
# Add the database package to an existing project
quadkit add database
# Start the dev server with hot-reload
quadkit dev start
Configuration
Zero-config usage: Call
CLIModule.configure()with no arguments to use all defaults.
Option 1 — YAML file
# application.yaml
cli:
default_template: "web-api"
default_database: "postgres"
color: true
verbose: false
Option 2 — Profiles + Environment Variables (recommended)
export QK_CLI__DEFAULT_TEMPLATE=web-api
export QK_CLI__COLOR=true
export QK_CLI__VERBOSE=false
Option 3 — Python
from quadkit.cli.config import CLIConfig
from quadkit.cli import CLIModule
config = CLIConfig.from_env_profile()
CLIModule.configure(config)
Config reference
| Field | Default | Env var | Description |
|---|---|---|---|
default_template |
"web-api" |
QK_CLI__DEFAULT_TEMPLATE |
Template used by quadkit new |
default_database |
"postgres" |
QK_CLI__DEFAULT_DATABASE |
Database driver used by scaffolding |
color |
true |
QK_CLI__COLOR |
Enable coloured terminal output |
verbose |
false |
QK_CLI__VERBOSE |
Print verbose/debug output |
Module Factory Methods
| Method | Description |
|---|---|
CLIModule.configure(config) |
Register the CLI module and its contributor-based commands |
CLIModule.stub() |
Minimal module for tests |
Key Features
- Project scaffolding —
web-api,api, andfulltemplates - Package generation — scaffold new
quadkit-*extension packages - Code generators —
providerandtestgenerators built in; more generators ship as CLI contributors from ecosystem packages (e.g. controllers viaquadkit-web) - Contributor system — extensible plugin architecture for new commands
- Shell completion — bash, zsh, and fish completion scripts
Testing
from quadkit import Application
from quadkit.cli import CLIModule
async def test_cli_module():
async with Application.boot(modules=[CLIModule.stub()]) as app:
# No-op CLI module for tests
...
Key Source Files
| File | What it contains |
|---|---|
src/quadkit/cli/config.py |
CLIConfig configuration dataclass |
src/quadkit/cli/module.py |
CLI module assembly |
src/quadkit/cli/commands/ |
All CLI command implementations |
src/quadkit/cli/generators/ |
Code generation logic |
src/quadkit/cli/registry/ |
Registry subsystems |
src/quadkit/cli/contributors/ |
Plugin contributor system |
Release files for quadkit-cli 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quadkit_cli-0.0.2.tar.gz | 168.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quadkit_cli-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 327.1 kB
Release files / quadkit_cli-0.0.2.tar.gz
| Download URL | quadkit_cli-0.0.2.tar.gz |
|---|---|
| Size | 168.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b98bb7fde23b79ed0fc61fec63b30afcab06b4fec7382b0050fda6656668b36
|
|
BLAKE2b-256 checksum How to use checksums |
802dce51b86fb91640a1c47174489fc07701f990e2653a9d70ca8893dbcc64af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|
Release files / quadkit_cli-0.0.2-py3-none-any.whl
| Download URL | quadkit_cli-0.0.2-py3-none-any.whl |
|---|---|
| Size | 158.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74be77f1ea3d916ba99ec07627b193d1445cf35547cfd4e756ae081040fe4776
|
|
BLAKE2b-256 checksum How to use checksums |
469997075fc0bfc5ac9ad5e4bcfab07c091b5bea7747633ccd4dddafd1ba63b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.14
|