codecov GitHub issues GitHub pull requests GitHub stars
StructKit is a powerful, flexible tool for automating project structure creation through YAML configurations. Generate consistent project layouts, boilerplate code, and configurations with template variables, remote content fetching, and intelligent file handling.
π View Complete Documentation | π Quick Start Guide | π§ Installation
- π YAML-Based Configuration - Define project structures in simple, readable YAML
- π§ Template Variables - Dynamic content with Jinja2 templating and interactive prompts
- π Remote Content - Fetch files from GitHub, HTTP/HTTPS, S3, and Google Cloud Storage
- π‘οΈ Smart File Handling - Multiple strategies for managing existing files (overwrite, skip, backup, etc.)
- πͺ Automation Hooks - Pre and post-generation shell commands
- π― Dry Run Mode - Preview changes before applying them
- β Validation & Schema - Built-in YAML validation and IDE support
- π€ MCP Integration - Model Context Protocol support for AI-assisted development workflows
# Install via pip pip install structkit # Or run with Docker docker run -v $(pwd):/workdir ghcr.io/httpdss/structkit:main generate my-config.yaml ./output
# Generate a Terraform module structure structkit generate terraform-module ./my-terraform-module # List available structures structkit list # Validate a configuration structkit validate my-config.yaml # Start MCP server for AI integration structkit mcp --server
files: - README.md: content: | # {{@ project_name @}} Generated with StructKit - .gitignore: file: github://github/gitignore/main/Python.gitignore folders: - src/: struct: project/python with: app_name: "{{@ project_name | slugify @}}" variables: - project_name: description: "Name of your project" type: string default: "MyProject"
Our comprehensive documentation is organized into the following sections:
- Installation Guide - Multiple installation methods
- Quick Start - Get up and running in minutes
- Basic Usage - Core commands and options
- YAML Configuration - Complete configuration reference
- Template Variables - Dynamic content and Jinja2 features
- File Handling - Managing files, permissions, and remote content
- Schema Reference - YAML validation and IDE support
- Hooks - Pre and post-generation automation
- Mappings - External data integration
- GitHub Integration - Automation with GitHub Actions
- MCP Integration - Model Context Protocol for AI-assisted workflows
- Command-Line Completion - Enhanced CLI experience
- Development Setup - Contributing to StructKit
- Known Issues - Current limitations and workarounds
- Articles & Tutorials - Community content and learning resources
- Examples - Practical examples and use cases
- Infrastructure as Code - Generate Terraform modules, Kubernetes manifests
- Application Scaffolding - Bootstrap microservices, APIs, frontend projects
- DevOps Automation - CI/CD pipeline templates, configuration management
- Documentation - Consistent project documentation and compliance templates
- Contributing Guidelines - How to contribute
- GitHub Discussions - Community support
- Articles & Tutorials - Learning resources
MIT License - see LICENSE for details.
If StructKit helps your workflow, consider supporting the project: patreon/structproject
π Complete Documentation | π Report Issues | π¬ Discussions