CLI

Using the interactive prompts

How to navigate and answer the CLI's interactive questions

Overview

The CLI uses @clack/prompts for interactive questions. These prompts work well in most terminals and are fully keyboard-driven.

Prompt sequence

The questions are grouped into two sections, prompted in order:

Stack

  1. Language — which language is your backend? (python, go, rust)
  2. Framework — options depend on the language (Python: fastapi, litestar, django, flask; Go: gin, fiber, echo, chi, stdlib; Rust: axum, actix-web, rocket, warp, salvo, loco)
  3. Frontend — htmx, none for all languages (Python, Go, and Rust); htmx is rejected with framework none or the Rust Loco framework
  4. ORM / data layer — options depend on the language (Python: sqlmodel, sqlalchemy, tortoise, none; Go: sqlc, gorm, sqlx, none; Rust: seaorm, diesel, sqlx-rust, none)
  5. Migrations — options depend on the language (Python: alembic, none; Go: goose, golang-migrate, none; Rust: none)
  6. Database — sqlite, postgres, mysql, none

Tooling

  1. Package manager — options depend on the language (Python: uv, poetry, pip; Go: go; Rust: cargo)
  2. Addons — multi-select, options depend on the language (Python: docker, ruff, mypy, pytest, github-actions, none; Go: docker, air, golangci-lint, github-actions, none; Rust: docker, cargo-watch, clippy, github-actions, none)
  3. Git — initialize a Git repository? (yes/no)
  4. Install — install dependencies after creation? (yes/no)

Core keys

  • Navigate: Up/Down arrow keys
  • Confirm/continue: Enter
  • Cancel: Ctrl+C

Prompt types you'll see

Single select (choose one)

  • Move with Up/Down, Enter to choose the highlighted option.

Typical places: language, framework, frontend, ORM, migrations, database, and package-manager prompts.

Multi-select (choose many)

  • Move with Up/Down.
  • Space toggles the highlighted option on/off.
  • Enter confirms your selection(s).
  • Some prompts allow selecting none (you can press Enter without toggling anything).

Typical places: selecting addons.

Confirm (yes/no)

  • Use Left/Right or Up/Down to highlight Yes/No, then Enter.

Typical places: installing dependencies, initializing Git.

Text input

  • Type your answer and press Enter.
  • If validation fails, a short message will explain what to fix; edit and press Enter again.

Typical places: project name/path.

Tips

  • You can skip all prompts with --yes if you want the defaults; provide flags alongside it to override individual choices. See the Options page.
  • If you accidentally start the wrong flow, press Ctrl+C to cancel safely.

On this page