A uv-first CLI for generating FastAPI projects with optional integrations.
Project description
Fastango is a uv-first CLI for generating FastAPI projects with polished terminal flows,
safe AI-assisted planning, selectable templates, and a growing integration catalog.
It helps teams start a serious FastAPI codebase quickly without copying random boilerplate, hardcoding secrets, or letting an AI write unchecked files.
Why Fastango
| Need | What Fastango Gives You |
|---|---|
| Start a FastAPI app quickly | simple and mvc templates with settings, routes, tests, README, and llms.txt. |
| Add common infrastructure | A searchable catalog for auth, billing, databases, queues, storage, observability, AI, deployment, and dev tools. |
| Generate from product ideas | fastango generate "a starter MVP" maps prompts to supported templates, skills, presets, and integrations. |
| Keep generation safe | The generator only uses Fastango-supported tools and validates provider suggestions before writing files. |
| Work like modern Python teams | Generated projects use uv, Ruff, pytest, typed settings, and clear next-step commands. |
Highlights
- Branded interactive terminal playground when you run
uvx fastango. - Manual project creation with repeatable flags for CI and documentation.
- Constrained AI generator for prompt-first FastAPI scaffolding.
- Live model discovery for Anthropic and OpenAI API keys.
- Curated presets for starter APIs, SaaS apps, AI APIs, data APIs, and production setups.
- Generated
llms.txtso AI assistants understand the project conventions. - Validation for integration requirements, conflicts, unsupported tools, and unsafe provider output.
Install
uv tool install fastango
During local development:
uv sync --all-groups
uv run fastango --help
Quick Start
Run Fastango with no subcommand to open the terminal playground:
uvx fastango
You can also launch the playground explicitly:
fastango playground
Create a project without prompts:
fastango create billing-api \
--style mvc \
--python 3.12 \
--preset saas \
--integration openapi \
--integration authx \
--integration stripe \
--with-docker \
--no-interactive
Run the generated app:
cd billing-api
uv sync
cp .env.example .env
uv run fastapi dev app/main.py
Generate From A Prompt
Fastango can infer a constrained FastAPI scaffold from a natural-language prompt. It does not write arbitrary LLM code directly to disk. It converts your prompt into a typed plan made from supported templates, skills, presets, and integrations.
fastango generate "a starter MVP with auth, billing, email, analytics and secure webhooks"
fastango generate "AI SaaS with vector search" --dry-run --json
Optional provider enrichment is available when configured:
fastango generate "marketplace MVP with billing and uploads" --provider anthropic
fastango generate "AI SaaS with vector search" --provider openai --model gpt-4.1-mini
Provider output is validated against the same supported catalog before any files are written.
Unsupported requests are kept as not_generated notes in the preview.
Model Discovery
If the matching API key is set, Fastango asks the provider which models your key can access. If no key is available, it falls back to a curated offline list.
fastango models
fastango models --provider anthropic
fastango models --provider openai --json
fastango models --provider openai --static
| Provider | Environment Variable | Model Source |
|---|---|---|
| Anthropic | ANTHROPIC_API_KEY |
Live /v1/models discovery with curated fallback. |
| OpenAI | OPENAI_API_KEY |
Live /v1/models discovery with curated fallback. |
Templates
| Template | Best For | Includes |
|---|---|---|
simple |
Small APIs, internal services, demos, first FastAPI apps. | app/main.py, routes, schemas, settings, tests, README, .env.example, llms.txt. |
mvc |
SaaS apps, production APIs, larger teams, integration-heavy projects. | API routes, core settings, services, repositories, schemas, tests, README, .env.example, llms.txt. |
Presets
| Preset | Purpose | Typical Stack |
|---|---|---|
api-starter |
A clean FastAPI baseline. | OpenAPI, tests, CORS, Ruff, pre-commit. |
saas |
Product-ready SaaS API. | AuthX, Stripe, Postgres, Redis, Resend, PostHog, Sentry, Docker. |
ai-api |
AI or RAG-ready backend. | OpenAI, Anthropic, pgvector, Postgres, Redis, tests, Docker. |
data-api |
Data-heavy API with workers. | Postgres, Alembic, Redis, Celery, Prometheus, OpenTelemetry. |
production |
Production hardening. | Docker, GitHub Actions, security headers, Sentry, Prometheus, health checks. |
Integration Catalog
List, filter, search, and inspect integrations:
uv run fastango integrations
uv run fastango integrations --category database
uv run fastango integrations --search vector
uv run fastango integrations --presets
uv run fastango integrations --json
| Category | Examples |
|---|---|
| Auth and security | AuthX, FastAPI Users, OAuth, JWT, CORS, rate limiting, CSRF, security headers, roles, API keys. |
| Databases and ORM | Postgres, SQLite, MySQL, MongoDB, SQLModel, Tortoise, Alembic, Supabase, pgvector. |
| Cache and jobs | Redis, Celery, Dramatiq, ARQ, RQ, APScheduler, FastAPI background tasks. |
| SaaS and payments | Stripe, Paddle, Polar, Lemon Squeezy, subscriptions, customer portal, Resend, PostHog, Sentry. |
| Storage | S3, Cloudflare R2, Google Cloud Storage, local files, Pillow, uploads. |
| AI and search | OpenAI, Anthropic, Ollama, LangChain, LlamaIndex, Qdrant, Pinecone, Weaviate, Elasticsearch. |
| Observability | OpenTelemetry, Prometheus, Structlog, Logfire, health checks, audit logs. |
| API protocols | OpenAPI, GraphQL, WebSockets, SSE, signed webhooks, versioning. |
| Deployment and dev tools | Docker, Compose overlays, Kubernetes, GitHub Actions, pre-commit, Ruff, mypy, pytest, Dependabot. |
Generation Skills
Skills are internal, allowlisted generation capabilities. They map product intents to supported Fastango templates and integrations.
| Skill | What It Builds |
|---|---|
saas-mvp |
Auth, teams, subscriptions, billing provider, email, analytics, monitoring. |
secure-api |
CORS, security headers, rate limiting, signed webhooks, API keys, secure settings. |
ai-api |
LLM provider, vector store, RAG-ready services, cache, background jobs. |
marketplace |
Users, teams, payments, uploads, webhooks, audit logs. |
crud-api |
Database, CRUD routes, pagination, filters, tests. |
production-api |
Docker, GitHub Actions, health checks, observability, dependency hygiene. |
Safety Model
| Rule | Why It Matters |
|---|---|
| No arbitrary raw code from providers | LLMs can suggest supported IDs, but Fastango writes files only through templates and integration hooks. |
Secrets stay in settings and .env.example |
Generated code avoids hardcoded tokens, API keys, and webhook secrets. |
| Registry validation before writes | Presets, aliases, integration requirements, and conflicts are resolved before the filesystem is touched. |
| Unsupported tech becomes a note | Requests for unsupported frameworks are shown in previews instead of silently generated. |
Development
uv sync --all-groups
uv run pytest
uv run ruff check .
uv run mypy fastango
Status
Fastango is early and evolving quickly. The current focus is a great terminal experience, a reliable integration catalog, and safe prompt-to-FastAPI scaffolding.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastango-0.1.0.tar.gz.
File metadata
- Download URL: fastango-0.1.0.tar.gz
- Upload date:
- Size: 124.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b60a61256da2fdd6c73247a5bd1733ae2f1e2b8e0c03695622befbffdd639513
|
|
| MD5 |
14ac9225f7a49b954131aa89950c5e38
|
|
| BLAKE2b-256 |
a44af26d4494b3dafaa68f6a971d3f82eca6c070b79eea8e0cadb7afd10c2e2f
|
Provenance
The following attestation bundles were made for fastango-0.1.0.tar.gz:
Publisher:
release.yaml on yezz123/fastango
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastango-0.1.0.tar.gz -
Subject digest:
b60a61256da2fdd6c73247a5bd1733ae2f1e2b8e0c03695622befbffdd639513 - Sigstore transparency entry: 1675356513
- Sigstore integration time:
-
Permalink:
yezz123/fastango@53a1dfdccb533b439e0b932540b36ece511a4727 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/yezz123
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@53a1dfdccb533b439e0b932540b36ece511a4727 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fastango-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fastango-0.1.0-py3-none-any.whl
- Upload date:
- Size: 68.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e922a0d874ed29a47ea5be3675f2ac28451d0d7e8ded5f7195e997f28bc6faa
|
|
| MD5 |
0ec4e90cae008d8a0f7e4b5518871bbe
|
|
| BLAKE2b-256 |
926c41921e3710f169ab8a6deeeb174d31e849f253692a98cebab0ec86226d09
|
Provenance
The following attestation bundles were made for fastango-0.1.0-py3-none-any.whl:
Publisher:
release.yaml on yezz123/fastango
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastango-0.1.0-py3-none-any.whl -
Subject digest:
5e922a0d874ed29a47ea5be3675f2ac28451d0d7e8ded5f7195e997f28bc6faa - Sigstore transparency entry: 1675356562
- Sigstore integration time:
-
Permalink:
yezz123/fastango@53a1dfdccb533b439e0b932540b36ece511a4727 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/yezz123
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@53a1dfdccb533b439e0b932540b36ece511a4727 -
Trigger Event:
release
-
Statement type: