Skip to content

Installation

  • Python 3.11 or higher
  • uv (recommended) or pip

Terminal window
# uv (recommended — fast, deterministic)
uv add quadkit-cli
# pip
pip install quadkit-cli
quadkit --version
quadkit new project my-app --template api
cd my-app
quadkit run

That is the whole install. Open http://127.0.0.1:8000/docs for OpenAPI. The walkthrough is Your First App.

The core quadkit package (Application, Provider, Container, Result, modules, YAML config) is pulled in by the CLI and by every extension. quadkit-contracts installs automatically.

Pin the alpha line when you ship:

Terminal window
uv add "quadkit-cli>=0.0.50,<0.1"

If quadkit is not on PATH after uv add, run it as uv run quadkit.


quadkit new project currently offers one starter, api, and always writes the same tree. Add installed packages with quadkit add and generate components with quadkit gen; neither changes the project layout.

There is no --structure flag. Feature types live in domains/. App providers live in app-root di/. See Project Structure.


Install only what you need. Regular extensions may use the framework core, contracts, and permitted foundation packages; composite packages and tracked cross-package allowances are listed in the repository’s import-linter configuration.

Terminal window
quadkit add web # ensure quadkit-web and write web: config to application.yaml
quadkit add testing # quadkit-testing (test harnesses)
uv add --dev quadkit-testing # fakes, test beds, compliance suites

quadkit add patches pyproject.toml (via uv add when available) and writes the provider’s default block into application.yaml. It only offers providers whose distribution is installed. All eighteen packages are published at 0.0.50 — including ai-llm, ai-agents, ai-mcp, workflow, and notification alongside web, testing, sql, cache, storage, events, tasks, monitor, auth, and http. See The Ecosystem for the full 18-package catalog.


You can compose an app by hand with uv add quadkit quadkit-web and a create_app() factory. The CLI is still the supported path — it lays down the one project tree that generators and quadkit run expect.


Terminal window
quadkit --version
python -c "import quadkit; print(quadkit.__version__)"
quadkit run

You should see OpenAPI at /docs. That is the “it works” check.