Skip to main content

CLI tool that scaffolds Python projects with dev tooling pre-configured

Project description

DevStart

PyPI version Python License: MIT

CLI tool that scaffolds Python projects with all dev tooling pre-configured.

Stop wasting time setting up ruff, mypy, pytest, Docker, CI, and pre-commit from scratch every time you start a new project. DevStart gives you a production-ready development environment in seconds.

Features

  • src/ layout with hatch dynamic versioning (__version__ as single source of truth)
  • Dev tooling out of the box: ruff (lint + format), mypy (strict), pytest, debugpy
  • Docker & Docker Compose included by default
  • GitHub Actions CI with pre-commit integration
  • Devcontainer for consistent dev environments
  • Pre-commit hooks: ruff, codespell, bandit, gitleaks, mypy, pytest
  • PlantUML diagram templates for project documentation
  • Makefile with setup, lint, format, test, check, and more
  • Interactive or fully flag-driven project creation

Installation

uv tool install devstart

Or with pip:

pip install devstart

Quick Start

# Interactive — prompts for project details
devstart new myproject

# Non-interactive — use all defaults
devstart new myproject -y

# Scaffold into current directory
devstart new .

Usage

devstart new myproject \
  --description "My awesome project" \
  --author "Your Name" \
  --python 3.14 \
  --no-ci \
  --no-devcontainer \
  --no-precommit \
  --no-docker \
  --no-diagrams \
  -y
Flag Default Description
[NAME] (prompted) Project name (positional arg)
--description / -d (prompted) Project description
--author / -a (prompted) Author name
--python 3.14 Python version
--no-ci false Skip GitHub Actions CI
--no-devcontainer false Skip devcontainer setup
--no-precommit false Skip pre-commit hooks
--docker/--no-docker true Include Docker setup
--diagrams/--no-diagrams true Include PlantUML diagrams
--continue/--no-continue true Include Continue AI config
--no-interactive / -y false Use defaults, skip all prompts

Generated Project Structure

myproject/
├── src/myproject/
│   ├── __init__.py
│   ├── __main__.py
│   └── main.py
├── tests/
│   ├── __init__.py
│   ├── conftest.py
│   └── test_main.py
├── docker/                      # optional
│   ├── Dockerfile
│   └── docker-compose.yml
├── docs/                        # optional
│   └── diagrams/
│       └── class_diagram.puml
├── .vscode/
│   ├── launch.json
│   └── settings.json
├── .github/workflows/ci.yml    # optional
├── .devcontainer/               # optional
├── .pre-commit-config.yaml      # optional
├── pyproject.toml
├── README.md
├── Makefile
├── .gitignore
├── .dockerignore                # optional
└── .env

What You Get

Every generated project is immediately runnable:

cd myproject
make setup    # installs uv, syncs deps, sets up git + pre-commit
make check    # runs lint + format check + type check + tests
make test     # runs pytest
make format   # auto-formats with ruff

Contributing

git clone https://github.com/AymanKastali/DevStart.git
cd DevStart
make setup
make check

License

MIT

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

devstart-0.1.0.tar.gz (41.8 kB view details)

Uploaded Source

Built Distribution

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

devstart-0.1.0-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file devstart-0.1.0.tar.gz.

File metadata

  • Download URL: devstart-0.1.0.tar.gz
  • Upload date:
  • Size: 41.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devstart-0.1.0.tar.gz
Algorithm Hash digest
SHA256 007103d0dd800f027353f9effb0b5fe1818c0a4a8174879b5b9930e8bffbc67b
MD5 0cd839d3d9c228c1f80db99514ba5636
BLAKE2b-256 7678f38f2ccb7680f60300c2b1b215925cfb443f5f694893a21367211eddb7d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for devstart-0.1.0.tar.gz:

Publisher: publish.yml on AymanKastali/DevStart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devstart-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: devstart-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devstart-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be66517d8c8b1ce24b9cea47c713073039fbb2238a56d9a2feea8f92bc654e0d
MD5 447159dcc3c90bb323ec851840e93d14
BLAKE2b-256 52922c407e398995825bdbef6e51a1b9792a23f99821f298c479d71999a729b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for devstart-0.1.0-py3-none-any.whl:

Publisher: publish.yml on AymanKastali/DevStart

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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