scaffold-kit#
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]
Links#
- Repository - Main GitHub repository
- Package - PyPI package page
- Test Package - TestPyPI package page for development releases
- Getting Started - This README with basic usage and examples
- Full Documentation - Complete guides, tutorials, and examples
- API Reference - Detailed API documentation and code reference
- Issues & Bug Reports - Report bugs or request features
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