
STRUCT 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 git+https://github.com/httpdss/struct.git
# Or run with Docker
docker run -v $(pwd):/workdir ghcr.io/httpdss/struct:main generate my-config.yaml ./output
# Generate a Terraform module structure
struct generate terraform-module ./my-terraform-module
# List available structures
struct list
# Validate a configuration
struct validate my-config.yaml
# Start MCP server for AI integration
struct mcp --server
Struct supports MCP (Model Context Protocol) for seamless AI tool integration:
# 1. Start the MCP server
struct mcp --server
# 2. Configure your AI tool (Claude Desktop example)
# Add to ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"struct": {
"command": "struct",
"args": ["mcp", "--server"]
}
}
}
# 3. Use MCP tools in your AI conversations:
# - list_structures: Get all available structures
# - get_structure_info: Get details about a structure
# - generate_structure: Generate project structures
# - validate_structure: Validate YAML configs
Supported MCP Clients: Claude Desktop, Cline/Continue, Custom clients
π Full MCP Integration Guide
files:
- README.md:
content: |
# {{@ project_name @}}
Generated with STRUCT
- .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 STRUCT
- 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 STRUCT helps your workflow, consider supporting the project: patreon/structproject
π Complete Documentation | π Report Issues | π¬ Discussions