Skip to main content

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
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, and full templates
  • Package generation — scaffold new quadkit-* extension packages
  • Code generators — provider and test generators built in; more generators ship as CLI contributors from ecosystem packages (e.g. controllers via quadkit-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)

Source distribution for quadkit-cli 0.0.2
File Size Uploaded
quadkit_cli-0.0.2.tar.gz 168.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quadkit-cli 0.0.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.0.42

2 release files

0.0.41

2 release files

0.0.4

2 release files

0.0.3

2 release files

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page