Powerful, flexible tool for automating project structure creation through YAML configurations. Generate consistent project layouts, boilerplate code, and configurations with template variables.
Define project structures in simple, readable YAML files with intuitive syntax and validation.
Dynamic content with Jinja2 templating, interactive prompts, and custom filters for flexibility.
Fetch files from GitHub, HTTP/HTTPS, S3, and Google Cloud Storage with automatic content handling.
Multiple strategies for managing existing files: overwrite, skip, backup, append, and more.
Pre and post-generation shell commands for complete workflow automation and integration.
Preview changes before applying them with detailed output and validation checks.
# Install from GitHub
pip install git+https://github.com/httpdss/struct.git
# Verify installation
struct --version
Requires Python 3.8+ and pip. This is the recommended installation method for most users.
# Pull and run with Docker
docker run -v $(pwd):/workdir ghcr.io/httpdss/struct:main generate my-config.yaml ./output
# Create an alias for easier usage
alias struct='docker run -v $(pwd):/workdir ghcr.io/httpdss/struct:main'
Perfect for CI/CD environments and when you don't want to install Python locally.
# Clone the repository
git clone https://github.com/httpdss/struct.git
cd struct
# Install in development mode
pip install -e .
# Run tests
python -m pytest tests/
For contributors and users who want the latest development features.
See how easy it is to generate a complete project structure with a simple YAML configuration.
Learn how to write effective YAML configurations with variables and templates.
Discover how to use external data mappings for dynamic project generation.
See how to fetch templates and content from GitHub, HTTP URLs, and cloud storage.
Explore hooks, validation, dry-run mode, and other advanced capabilities.
# my-project.yaml
files:
- README.md:
content: |
# {{@ project_name @}}
Generated with STRUCT
folders:
- src/:
struct: project/python
variables:
- project_name:
description: "Project name"
type: string
# Generate structure
struct generate my-project.yaml ./my-app
# List available structures
struct list
# Validate configuration
struct validate my-project.yaml
Installation guides, quick start tutorials, and basic usage examples to get you up and running.
Complete YAML configuration reference, template variables, and file handling strategies.
Real-world examples, templates, and practical use cases for various project types.
Essential STRUCT commands and configuration patterns at your fingertips
Comprehensive documentation for all STRUCT features and commands
Generate your first STRUCT configuration in minutes
Connect with developers using STRUCT to build amazing projects
Real feedback from teams using STRUCT in production
Discover projects and templates created by the community