Skip to content

httpdss/structkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

374 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 StructKit: YAML-first scaffolding for teams and AI agents

Define project structures once in YAML, then generate consistent repos, CI files, docs, Terraform modules, and app layouts locally, in CI, or through an AI assistant via MCP.

codecov GitHub issues GitHub pull requests GitHub stars

StructKit replaces copy-pasted boilerplate and aging "golden repos" with reusable YAML structures. It can render template variables, fetch canonical files from remote sources, preview changes before writing, and expose your scaffolds to AI assistants through the Model Context Protocol.

🚀 Quick Start | 📚 Docs | 🧩 Examples | 🤖 MCP / AI Agent Guide | 🧠 Agent Skills | 💬 Discussions

⚡ Try it in 60 seconds

# Install the CLI
pip install structkit

# Preview available bundled structures
structkit list

# Generate a ready-made Terraform module scaffold
structkit generate --vars module_name=my-terraform-module terraform/modules/generic ./my-terraform-module

Prefer Docker?

docker run --rm -v "$(pwd):/workdir" ghcr.io/httpdss/structkit:main \
  generate --vars module_name=my-terraform-module terraform/modules/generic ./my-terraform-module

👤 Who StructKit is for

  • Platform / DevEx teams standardizing service layouts, CI baselines, and engineering conventions across many repos.
  • DevOps engineers generating repeatable Terraform modules, Kubernetes manifests, GitHub Actions workflows, and config bundles.
  • AI coding workflow users who want assistants to scaffold from approved templates instead of inventing project structure.
  • Individual developers tired of rebuilding the same files, folders, and docs for every new project.

🤔 Why StructKit?

Project scaffolding tools exist in most ecosystems, but StructKit solves problems the others often leave to copy-paste, template repositories, or custom scripts.

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: Start the StructKit MCP server so your AI assistant can generate project scaffolds from natural language using your templates as the source of truth.
  • Agent skill ready: Install the companion httpdss/structkit-skills workflow skill so AI assistants consistently inspect, preview, generate, and validate StructKit structures.
  • YAML-first: Define structures directly in YAML. No separate template repository is required.
  • Safe by default: Use dry-run previews and file conflict strategies before writing into existing projects.

✨ 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

🚀 More usage examples

# Generate a Terraform module structure
structkit generate --vars module_name=my-terraform-module terraform/modules/generic ./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

If StructKit saves you setup time, star the repo, try an example, or share your use case in GitHub Discussions.

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

About

StructKit simplifies project organization by creating consistent file and folder structures tailored to your specific needs. Enhance productivity and maintain uniformity across all your projects with this powerful and flexible tool.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors