Skip to main content

A structured data processing tool

Project description

🚀 StructKit: Automated Project Structure Generator

StructKit Logo

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

✨ 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

⚙️ Configuration

🔧 Advanced Features

👩‍💻 Development

📖 Resources

🎯 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

📜 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

structkit-3.0.0.tar.gz (77.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

structkit-3.0.0-py3-none-any.whl (81.8 kB view details)

Uploaded Python 3

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

Hashes for structkit-3.0.0.tar.gz
Algorithm Hash digest
SHA256 cf942aa6a017edfa39531ddacf9186e9437917d5b02fb81992f32fd6f67697ed
MD5 43c0dbc41249d870009da885948df333
BLAKE2b-256 a2fc4805375ecf73508c33a3cf47c98f733050ddeda5c6bcf76399b766ae6eeb

See more details on using hashes here.

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

Hashes for structkit-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 374bc4e49409a8f2a5e57ff4b1337b50a32ff89a70ea757d973707d074535782
MD5 53affb09e91839cc840c64b5b9a56872
BLAKE2b-256 e98e430a8034d7197c359b670b082bed9da1018c523a4c0d9ab1e63ff6de9f32

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page