Skip to main content

A green-and-black CLI for generating clean Django, FastAPI, and Flask backend projects.

Project description

Cedric

Cedric is a command line tool for creating clean Python backend projects for Django, FastAPI, and Flask. It generates a professional project structure with database configuration, JWT authentication endpoints, OpenAPI documentation, Docker files, CI, tests, and agent-ready project metadata.

Cedric is designed for two workflows:

  • Human developers who want a consistent project foundation without repetitive setup.
  • AI coding agents that need explicit conventions, safe edit boundaries, and machine-readable project metadata.

Status

Cedric v2 is a full rewrite of the original Django-only scaffolder. The new CLI uses cedric as the primary command and keeps cedric-setup only as a deprecated compatibility entry point.

Features

  • Generate Django, FastAPI, or Flask projects from one CLI.
  • Choose SQLite, Turso/libSQL, local Postgres, Neon Postgres, or AWS RDS Postgres.
  • Create a uv-based Python project with pyproject.toml and a starter lockfile.
  • Include JWT auth scaffolding with register, login, refresh, logout, me, and password reset endpoints.
  • Include OpenAPI documentation suited to each framework.
  • Generate Docker, Docker Compose, GitHub Actions CI, tests, scripts, and docs.
  • Write .cedric/project.json so Cedric and AI agents can understand the project.
  • Provide lifecycle commands for refreshing DB, auth, Docker, and CI files.

Requirements

  • Python 3.10 or newer.
  • pipx, pip, or another Python package installer.
  • uv is recommended for working inside generated projects.

Installation

Install the published package:

pip install cedric

For isolated CLI usage:

pipx install cedric

For local development on Cedric itself:

git clone https://github.com/yesabhishek/cedric.git
cd cedric
uv sync --extra dev
uv run cedric --help

Run Locally By Framework

FastAPI:

cedric init --name my_api --framework fastapi --database sqlite --no-input
cd my_api
uv sync
cp .env.example .env
./scripts/dev.sh

Manual FastAPI run command:

uv run uvicorn app.main:app --reload

Open Swagger UI at /docs or the schema at /openapi.json.

Django:

cedric init --name my_service --framework django --database sqlite --no-input
cd my_service
uv sync
cp .env.example .env
uv run python manage.py migrate
./scripts/dev.sh

Manual Django run command:

uv run python manage.py runserver

Open the app at / and the schema at /api/schema/.

Flask:

cedric init --name my_gateway --framework flask --database sqlite --no-input
cd my_gateway
uv sync
cp .env.example .env
./scripts/dev.sh

Manual Flask run command:

uv run flask --app app run --debug

Open the schema at /openapi.json.

CLI Reference

Create a project:

cedric new <name> --framework <django|fastapi|flask> --database <preset>

Useful options:

  • --target-dir <path> writes the project into another directory.
  • --force replaces an existing project directory.
  • --no-input disables prompts for scripts and AI agents.

Manage a generated project:

cedric doctor .
cedric add db --database neon
cedric add auth
cedric add docker
cedric add ci
cedric templates list

Supported Templates

Frameworks:

  • django
  • fastapi
  • flask

Database presets:

  • sqlite: local file-backed SQLite.
  • turso: Turso/libSQL SQLite-compatible hosted database.
  • postgres-local: local Postgres with Docker Compose support.
  • neon: Neon hosted Postgres.
  • aws-rds: AWS RDS Postgres.

Auth module:

  • jwt: email and password JWT authentication.

Generated Project Layout

Cedric projects include:

.
|-- .cedric/project.json
|-- .env.example
|-- AGENTS.md
|-- Dockerfile
|-- README.md
|-- app/
|-- config/
|-- docker-compose.yml
|-- docs/
|-- migrations/
|-- pyproject.toml
|-- scripts/
|-- tests/
`-- uv.lock

Framework-specific files are generated where appropriate. Django projects also include manage.py and an authentication/ app.

Authentication API

The default auth module documents and scaffolds these endpoints:

Method Path Purpose
POST /auth/register Create an account
POST /auth/login Return access and refresh tokens
POST /auth/refresh Refresh tokens
POST /auth/logout Logout hook
GET /auth/me Return the current user
POST /auth/password-reset Password reset integration stub

The generated auth code is a solid starting point, not a complete identity platform. Replace in-memory examples with durable user storage before production.

OpenAPI Support

  • FastAPI projects use native OpenAPI at /openapi.json.
  • Django projects use Django REST Framework with drf-spectacular at /api/schema/.
  • Flask projects use flask-smorest at /openapi.json.

Each project also includes docs/openapi.yaml as a concise contract reference for the generated auth surface.

Working With AI Agents

Every generated project includes:

  • AGENTS.md with commands, architecture notes, and edit boundaries.
  • .cedric/project.json with framework, database, auth, template version, and enabled module metadata.
  • Docs that describe auth, database configuration, and OpenAPI expectations.

Use cedric doctor . before and after large automated edits to confirm that the project still matches Cedric expectations.

Development

Run checks for Cedric itself:

uv sync --extra dev
uv run pytest
uv run ruff check .
uv build

The test suite covers project spec validation, CLI commands, generated file trees, database switching, and doctor failure modes.

Releases

Releases are published through GitHub Releases and then to production PyPI after approval in the protected pypi GitHub environment. See RELEASE.md for the full branch, pull request, sanity check, tag, and release workflow.

Compatibility

The old cedric-setup command is deprecated. Use:

cedric new <name>

The v1 Django-only src package has been replaced by the v2 cedric package.

License

Cedric is distributed under the GPL-3.0-only license. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cedric-2.0.2.tar.gz (72.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cedric-2.0.2-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file cedric-2.0.2.tar.gz.

File metadata

  • Download URL: cedric-2.0.2.tar.gz
  • Upload date:
  • Size: 72.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cedric-2.0.2.tar.gz
Algorithm Hash digest
SHA256 348b90686e9a38daaa7fe466acb8710ac72befd0e7006a728c6dbff8347ba02b
MD5 0d4c9e24f807063f6a00d4416cf604c2
BLAKE2b-256 2f1a60fa6b913f36b0047aba82434b7304edba5d806587857bf6b63bde38466f

See more details on using hashes here.

File details

Details for the file cedric-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: cedric-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 33.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cedric-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6eff33894eedb058d73850d79fc6e926b315121700d3045545c3ac4661c79088
MD5 9052fc72a9be79f8ccb83446031f3f63
BLAKE2b-256 8918552ef708bdd2b21a5eec5920989af92188851a8a364cb19c76e089b194d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page