A structured data processing tool
Project description
🚀 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
🚀 Quick Start
Installation
# Install via pip
pip install git+https://github.com/httpdss/structkit.git
# 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file structkit-3.0.0.tar.gz.
File metadata
- Download URL: structkit-3.0.0.tar.gz
- Upload date:
- Size: 77.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf942aa6a017edfa39531ddacf9186e9437917d5b02fb81992f32fd6f67697ed
|
|
| MD5 |
43c0dbc41249d870009da885948df333
|
|
| BLAKE2b-256 |
a2fc4805375ecf73508c33a3cf47c98f733050ddeda5c6bcf76399b766ae6eeb
|
File details
Details for the file structkit-3.0.0-py3-none-any.whl.
File metadata
- Download URL: structkit-3.0.0-py3-none-any.whl
- Upload date:
- Size: 81.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
374bc4e49409a8f2a5e57ff4b1337b50a32ff89a70ea757d973707d074535782
|
|
| MD5 |
53affb09e91839cc840c64b5b9a56872
|
|
| BLAKE2b-256 |
e98e430a8034d7197c359b670b082bed9da1018c523a4c0d9ab1e63ff6de9f32
|