🚀 StructKit: Automated Project Structure Generator
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
✨ Key Features
- 📝 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
Project scaffolding tools exist in most ecosystems, but structkit solves problems the others don't.
The problem with copy-paste and "golden repos"
Most teams start with a "just copy the reference project" approach. This works until:
- The reference repo falls out of date
- Different teams diverge on standards
- Onboarding a new engineer takes half a day of tribal knowledge transfer
- A security baseline change means updating 20 repos manually
How structkit is different
| Feature | cookiecutter | copier | structkit |
|---|---|---|---|
| Remote content (GitHub, S3, GCS, HTTP) | ❌ | ❌ | ✅ |
| AI / MCP integration | ❌ | ❌ | ✅ |
| Pre/post generation hooks | ✅ | ✅ | ✅ |
| Dry run mode | ❌ | ✅ | ✅ |
| YAML-first (no template repo required) | ❌ | ❌ | ✅ |
| Multiple file conflict strategies | ❌ | ✅ | ✅ |
| IDE schema validation | ❌ | ❌ | ✅ |
Key differentiators:
- Remote-first content: Reference your organization's canonical CI template from GitHub directly in your structkit config. When the template updates, all new projects get the update — no copy-paste maintenance.
- AI-native via MCP: structkit ships a Model Context Protocol server. Your AI assistant can generate project scaffolds from natural language, using your templates as the source of truth.
- YAML-first: Define structures directly in YAML. No need to manage a separate template repository.
Who uses structkit?
- Platform / DevEx teams enforcing org-wide project standards across all services
- DevOps engineers generating consistent Terraform modules, K8s manifests, and CI pipelines
- Individual developers tired of recreating the same boilerplate across projects
🚀 Quick Start
Installation
# 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
Basic Usage
# 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
Example Configuration
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"
📚 Documentation
Our comprehensive documentation is organized into the following sections:
🏁 Getting Started
- Installation Guide - Multiple installation methods
- Quick Start - Get up and running in minutes
- Basic Usage - Core commands and options
⚙️ Configuration
- 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
🔧 Advanced Features
- 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
- Development Setup - Contributing to StructKit
- Known Issues - Current limitations and workarounds
📖 Resources
- Articles & Tutorials - Community content and learning resources
- Examples - Practical examples and use cases
🎯 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
🤝 Community
- Contributing Guidelines - How to contribute
- GitHub Discussions - Community support
- Articles & Tutorials - Learning resources
📜 License
MIT License - see LICENSE for details.
💰 Support
If StructKit helps your workflow, consider supporting the project: patreon/structproject
📚 Complete Documentation | 🐛 Report Issues | 💬 Discussions
