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.1.tar.gz (42.4 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.1-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: devstart-0.1.1.tar.gz
  • Upload date:
  • Size: 42.4 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.1.tar.gz
Algorithm Hash digest
SHA256 fe146ba6634918b2e0a18b7e30b105a25ff3df201527532ad5bc30645e60d0f9
MD5 fa14a3fe2f0fa049d8c3c79d74d55b1e
BLAKE2b-256 6663609fc5add74976af4c332ea3a16872b7f9826b68e955b6e5a3e0ccb3e36d

See more details on using hashes here.

Provenance

The following attestation bundles were made for devstart-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: devstart-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eabe51a7179e1e7ea89a0cd74eea312165cce945840da5be139ea1b951121653
MD5 f05f4391d711a921f5937bde3fe8f51d
BLAKE2b-256 ab0b5f725bac9dacf0ff9ab3d205afe6dea118e906f90fd345e87c40629f21e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for devstart-0.1.1-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