Skip to content

scaffold-kit#

PyPI - Version PyPI - Python Version GitHub License

A comprehensive toolkit for project initialization and structure management. Create projects from structured data definitions, generate file checklists for tracking progress, and visualize directory hierarchies with ASCII trees.

Installation#

Install from PyPI:

pip install scaffold-kit

Install with uv:

uv add scaffold-kit

Install development releases from TestPyPI:

pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ scaffold-kit

Install development releases from TestPyPI with uv:

uv add --index https://test.pypi.org/simple/ --index https://pypi.org/simple/ scaffold-kit

Usage#

scaffold-kit provides four main commands for project management:

Initialize a project with example files:

scaffold-kit init [ignore-file|config-file|scaffold-file]

Create project structure from YAML/JSON definition:

scaffold-kit scaffold [--root]

Generate a file checklist for progress tracking:

scaffold-kit checklist

Create an ASCII tree of directory structure:

scaffold-kit tree [directory] [--ignore-file FILE]

Acknowledgments#

  • uv - Fast Python package installer and resolver
  • asdf - Multi-language version manager
  • Semantic Release - Automated versioning
  • Pre-commit - Git hooks for code quality
  • MkDocs - Documentation generator
  • Sphinx - API documentation generator

Project Tree#

.
├── .github/
│   └── workflows/
│       ├── docs.yaml
│       ├── package.yaml
│       └── release.yaml
├── docs/
│   ├── assets/
│   │   ├── icons/
│   │   │   ├── codepen.svg
│   │   │   ├── github.svg
│   │   │   ├── linkedin.svg
│   │   │   ├── x.svg
│   │   │   └── xing.svg
│   │   ├── images/
│   │   │   ├── favicon.ico
│   │   │   ├── logo-dark-theme.svg
│   │   │   ├── logo-light-theme.svg
│   │   │   └── logo.svg
│   │   ├── javascripts/
│   │   │   ├── extra.js
│   │   │   └── mathjax.js
│   │   └── stylesheets/
│   │       └── extra.css
│   ├── checklists/
│   │   └── empty-files-checklist.txt
│   ├── guides/
│   │   └── git-guide.md
│   ├── reference/
│   │   ├── checklist.md
│   │   ├── config.md
│   │   ├── ignore_parser.md
│   │   ├── index.md
│   │   ├── init.md
│   │   ├── main.md
│   │   ├── pattern_processor.md
│   │   ├── scaffold.md
│   │   ├── string_utils.md
│   │   └── tree.md
│   ├── trees/
│   │   ├── tree-github.txt
│   │   ├── tree-src-scaffold-kit-examples.txt
│   │   └── tree.txt
│   ├── fucs.md
│   ├── index.md
│   └── license.md
├── docs_sphinx/
│   ├── _static/
│   │   ├── favicon.ico
│   │   ├── logo.svg
│   │   └── README.md
│   ├── _templates/
│   ├── conf.py
│   ├── index.rst
│   ├── modules.rst
│   ├── scaffold_kit.rst
│   └── scaffold_kit.utils.rst
├── scripts/
│   └── check_version.py
├── src/
│   └── scaffold_kit/
│       ├── examples/
│       │   ├── configs/
│       │   │   ├── .scaffoldkitrc
│       │   │   ├── .scaffoldkitrc.json
│       │   │   ├── .scaffoldkitrc.yaml
│       │   │   ├── scaffoldkitrc.json
│       │   │   └── scaffoldkitrc.yaml
│       │   ├── scaffold/
│       │   │   ├── scaffold.json
│       │   │   └── scaffold.yaml
│       │   └── .scaffoldignore
│       ├── utils/
│       │   ├── __init__.py
│       │   ├── ignore_parser.py
│       │   ├── pattern_processor.py
│       │   └── string_utils.py
│       ├── __init__.py
│       ├── __version__.pyi
│       ├── checklist.py
│       ├── config.py
│       ├── init.py
│       ├── main.py
│       ├── scaffold.py
│       └── tree.py
├── tests/
├── .coveragerc
├── .gitignore
├── .markdownlint.yaml
├── .markdownlintignore
├── .pre-commit-config.yaml
├── .pylintrc
├── .python-version
├── .scaffoldignore
├── .scaffoldkitrc.yaml
├── .tool-versions
├── .yamllint.yaml
├── bandit.yaml
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── mkdocs.yaml
├── mypy.ini
├── pyproject.toml
├── pytest.ini
├── README.md
├── ruff.toml
└── taplo.toml