Files
fastapi-toolsets/docs/module/cli.md
d3vyce 31678935aa Version 1.0.0 (#80)
* docs: fix typos

* chore: build docs only when release

* Version 1.0.0
2026-02-20 14:09:01 +01:00

4.3 KiB

CLI

Typer-based command-line interface for managing your FastAPI application, with built-in fixture commands integration.

Installation

=== "uv" bash uv add "fastapi-toolsets[cli]"

=== "pip" bash pip install "fastapi-toolsets[cli]"

Overview

The cli module provides a manager entry point built with Typer. It allow custom commands to be added in addition of the fixture commands when a FixtureRegistry and a database context are configured.

Configuration

Configure the CLI in your pyproject.toml:

[tool.fastapi-toolsets]
cli = "myapp.cli:cli"                   # Custom Typer app
fixtures = "myapp.fixtures:registry"    # FixtureRegistry instance
db_context = "myapp.db:db_context"      # Async context manager for sessions

All fields are optional. Without configuration, the manager command still works but no command are available.

Usage

# Manager commands
manager --help

 Usage: manager [OPTIONS] COMMAND [ARGS]...

 FastAPI utilities CLI.

╭─ Options ────────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.          │
│ --show-completion             Show completion for the current shell, to copy it  │
│                               or customize the installation.                     │
│ --help                        Show this message and exit.                        │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────╮
│ check-db                                                                         │
│ fixtures  Manage database fixtures.                                              │
╰──────────────────────────────────────────────────────────────────────────────────╯

# Fixtures commands
manager fixtures --help

 Usage: manager fixtures [OPTIONS] COMMAND [ARGS]...

 Manage database fixtures.

╭─ Options ────────────────────────────────────────────────────────────────────────╮
│ --help          Show this message and exit.                                      │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────╮
│ list  List all registered fixtures.                                              │
│ load  Load fixtures into the database.                                           │
╰──────────────────────────────────────────────────────────────────────────────────╯

Custom CLI

You can extend the CLI by providing your own Typer app. The manager entry point will merge your app's commands with the built-in ones:

# myapp/cli.py
import typer

cli = typer.Typer()

@cli.command()
def hello():
    print("Hello from my app!")
[tool.fastapi-toolsets]
cli = "myapp.cli:cli"

:material-api: API Reference