Commands
Complete reference for all TriStack CLI commands
Overview
The TriStack CLI ships as a standalone native binary. It scaffolds Python, Go, and Rust backend projects: uvx tristack for Python (or uv tool install tristack / pipx install tristack), and the standalone tristack command for Go and Rust (curl installers). It ships two commands today — create (the default) and create-json.
create (Default Command)
Creates a new TriStack project.
uvx tristack [project-directory] [options]Parameters
project-directory(optional): Name or path for your project directory. Defaults tomy-tristack-app.
Key Options
--yes, -y: Use default configuration, merging any provided flags (skips prompts)--dry-run: Validate configuration and target directory without writing files--verbose: Show detailed result information as JSON--yolo: Bypass validations and compatibility checks--language <lang>:python,go,rust--framework <framework>(Python): FastAPI (default), Litestar, Django, Flask--orm <orm>(Python):sqlmodel(default),sqlalchemy,tortoise,none--migrations <tool>(Python):alembic(default),none--database <db>:sqlite(default),postgres,mysql,none--package-manager <pm>(Python):uv(default),poetry,pip--addons [values...]: space-separated list (or repeat the flag) ornone(see Options)--git / --no-git: Initialize a Git repository (default on)--install / --no-install: Install dependencies after creation (default on)--directory-conflict <strategy>:merge,overwrite,increment,error--disable-analytics: Opt out of telemetry (the CLI sends none today)
See the full reference in Options. Options are per language — see the Compatibility reference for the Go and Rust option sets.
For JSON-first automation and agent usage, see Agent Workflows.
Examples
# Interactive prompts
uvx tristack my-api
# Quick setup with defaults
uvx tristack --yes
# Fully specified stack
uvx tristack my-api \
--language python \
--framework fastapi \
--orm sqlmodel \
--migrations alembic \
--database postgres \
--package-manager uv \
--addons docker ruff pytest github-actions
# Rust stack (standalone binary)
tristack my-api \
--language rust \
--framework axum \
--orm seaorm \
--migrations none \
--database sqlite \
--package-manager cargo \
--addons docker cargo-watch clippy
# Validate without writing files
uvx tristack my-api --yes --dry-runcreate-json
Create a project from a single JSON payload instead of many flags. This is the agent- and automation-friendly path.
uvx tristack create-json --input '{
"projectName": "my-api",
"language": "python",
"framework": "fastapi",
"orm": "sqlmodel",
"migrations": "alembic",
"database": "postgres",
"packageManager": "uv",
"addons": ["docker", "pytest"],
"git": true,
"install": false
}'The payload is validated against CreateInputSchema — the same schema that backs --yes. See Agent Workflows for details.
