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

Quick Start

Create a FastAPI project with local SQLite:

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

Create a Django project backed by local Postgres:

cedric new my_service --framework django --database postgres-local --no-input
cd my_service
uv sync
cp .env.example .env
docker compose up

Create a Flask project configured for Neon:

cedric new my_gateway --framework flask --database neon --no-input

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.0.tar.gz (66.2 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.0-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cedric-2.0.0.tar.gz
  • Upload date:
  • Size: 66.2 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.0.tar.gz
Algorithm Hash digest
SHA256 8a81ab77d83184f55534dd31ca5a14c5ffed43b4dc4c433e2ffbbdbd3665aa33
MD5 319a0d9b88e54113b5da04d07796f9b1
BLAKE2b-256 86c0fdbb621f282c1d259accc5577ca42feb6ec89ef987d6d33d436b97b754e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cedric-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 754251abeb7991223b09bb50f87bc831eb27c817070edcdec6d5613459d94ccd
MD5 14665a94e81875ebe570a3a3bd476a62
BLAKE2b-256 5f14eac4fb791d55b1c35e6f3b028685adedbd4dd78a44a7f57f52ae4928873c

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