structkit


Namestructkit JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryA structured data processing tool
upload_time2025-10-28 00:45:43
maintainerNone
docs_urlNone
authorhttpdss
requires_python>=3.8
licenseMIT
keywords data structure processing
VCS
bugtrack_url
requirements PyYAML requests openai python-dotenv jinja2 PyGithub shtab colorlog pydantic-ai fastmcp
Travis-CI No Travis.
coveralls test coverage
            # 🚀 StructKit: Automated Project Structure Generator

![StructKit Logo](./docs/assets/github-hero.gif)

[![codecov](https://codecov.io/github/httpdss/structkit/graph/badge.svg?token=JL5WIO1C9T)](https://codecov.io/github/httpdss/struct)
![GitHub issues](https://img.shields.io/github/issues/httpdss/struct)
![GitHub pull requests](https://img.shields.io/github/issues-pr/httpdss/struct)
![GitHub stars](https://img.shields.io/github/stars/httpdss/struct?style=social)

**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](docs/index.md)** | 🚀 **[Quick Start Guide](docs/quickstart.md)** | 🔧 **[Installation](docs/installation.md)**

## ✨ 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

```bash
# 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

```bash
# 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

```yaml
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](docs/installation.md)** - Multiple installation methods
- **[Quick Start](docs/quickstart.md)** - Get up and running in minutes
- **[Basic Usage](docs/usage.md)** - Core commands and options

### ⚙️ Configuration

- **[YAML Configuration](docs/configuration.md)** - Complete configuration reference
- **[Template Variables](docs/template-variables.md)** - Dynamic content and Jinja2 features
- **[File Handling](docs/file-handling.md)** - Managing files, permissions, and remote content
- **[Schema Reference](docs/schema.md)** - YAML validation and IDE support

### 🔧 Advanced Features

- **[Hooks](docs/hooks.md)** - Pre and post-generation automation
- **[Mappings](docs/mappings.md)** - External data integration
- **[GitHub Integration](docs/github-integration.md)** - Automation with GitHub Actions
- **[MCP Integration](docs/mcp-integration.md)** - Model Context Protocol for AI-assisted workflows
- **[Command-Line Completion](docs/completion.md)** - Enhanced CLI experience

### 👩‍💻 Development

- **[Development Setup](docs/development.md)** - Contributing to StructKit
- **[Known Issues](docs/known-issues.md)** - Current limitations and workarounds

### 📖 Resources

- **[Articles & Tutorials](docs/articles.md)** - Community content and learning resources
- **[Examples](example/)** - 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](docs/development.md#contributing-guidelines)** - How to contribute
- **[GitHub Discussions](https://github.com/httpdss/structkit/discussions)** - Community support
- **[Articles & Tutorials](docs/articles.md)** - Learning resources

## 📜 License

MIT License - see [LICENSE](LICENSE) for details.

## 💰 Support

If StructKit helps your workflow, consider supporting the project: [patreon/structproject](https://patreon.com/structproject)

---

**📚 [Complete Documentation](docs/index.md)** | **🐛 [Report Issues](https://github.com/httpdss/structkit/issues)** | **💬 [Discussions](https://github.com/httpdss/structkit/discussions)**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "structkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "data, structure, processing",
    "author": "httpdss",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a2/fc/4805375ecf73508c33a3cf47c98f733050ddeda5c6bcf76399b766ae6eeb/structkit-3.0.0.tar.gz",
    "platform": null,
    "description": "# \ud83d\ude80 StructKit: Automated Project Structure Generator\n\n![StructKit Logo](./docs/assets/github-hero.gif)\n\n[![codecov](https://codecov.io/github/httpdss/structkit/graph/badge.svg?token=JL5WIO1C9T)](https://codecov.io/github/httpdss/struct)\n![GitHub issues](https://img.shields.io/github/issues/httpdss/struct)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/httpdss/struct)\n![GitHub stars](https://img.shields.io/github/stars/httpdss/struct?style=social)\n\n**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.\n\n> \ud83d\udcda **[View Complete Documentation](docs/index.md)** | \ud83d\ude80 **[Quick Start Guide](docs/quickstart.md)** | \ud83d\udd27 **[Installation](docs/installation.md)**\n\n## \u2728 Key Features\n\n- **\ud83d\udcdd YAML-Based Configuration** - Define project structures in simple, readable YAML\n- **\ud83d\udd27 Template Variables** - Dynamic content with Jinja2 templating and interactive prompts\n- **\ud83c\udf10 Remote Content** - Fetch files from GitHub, HTTP/HTTPS, S3, and Google Cloud Storage\n- **\ud83d\udee1\ufe0f Smart File Handling** - Multiple strategies for managing existing files (overwrite, skip, backup, etc.)\n- **\ud83e\ude9d Automation Hooks** - Pre and post-generation shell commands\n- **\ud83c\udfaf Dry Run Mode** - Preview changes before applying them\n- **\u2705 Validation & Schema** - Built-in YAML validation and IDE support\n- **\ud83e\udd16 MCP Integration** - Model Context Protocol support for AI-assisted development workflows\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Install via pip\npip install git+https://github.com/httpdss/structkit.git\n\n# Or run with Docker\ndocker run -v $(pwd):/workdir ghcr.io/httpdss/structkit:main generate my-config.yaml ./output\n```\n\n### Basic Usage\n\n```bash\n# Generate a Terraform module structure\nstructkit generate terraform-module ./my-terraform-module\n\n# List available structures\nstructkit list\n\n# Validate a configuration\nstructkit validate my-config.yaml\n\n# Start MCP server for AI integration\nstructkit mcp --server\n ```\n\n### Example Configuration\n\n```yaml\nfiles:\n  - README.md:\n      content: |\n        # {{@ project_name @}}\n        Generated with StructKit\n  - .gitignore:\n      file: github://github/gitignore/main/Python.gitignore\n\nfolders:\n  - src/:\n      struct: project/python\n      with:\n        app_name: \"{{@ project_name | slugify @}}\"\n\nvariables:\n  - project_name:\n      description: \"Name of your project\"\n      type: string\n      default: \"MyProject\"\n```\n\n## \ud83d\udcda Documentation\n\nOur comprehensive documentation is organized into the following sections:\n\n### \ud83c\udfc1 Getting Started\n\n- **[Installation Guide](docs/installation.md)** - Multiple installation methods\n- **[Quick Start](docs/quickstart.md)** - Get up and running in minutes\n- **[Basic Usage](docs/usage.md)** - Core commands and options\n\n### \u2699\ufe0f Configuration\n\n- **[YAML Configuration](docs/configuration.md)** - Complete configuration reference\n- **[Template Variables](docs/template-variables.md)** - Dynamic content and Jinja2 features\n- **[File Handling](docs/file-handling.md)** - Managing files, permissions, and remote content\n- **[Schema Reference](docs/schema.md)** - YAML validation and IDE support\n\n### \ud83d\udd27 Advanced Features\n\n- **[Hooks](docs/hooks.md)** - Pre and post-generation automation\n- **[Mappings](docs/mappings.md)** - External data integration\n- **[GitHub Integration](docs/github-integration.md)** - Automation with GitHub Actions\n- **[MCP Integration](docs/mcp-integration.md)** - Model Context Protocol for AI-assisted workflows\n- **[Command-Line Completion](docs/completion.md)** - Enhanced CLI experience\n\n### \ud83d\udc69\u200d\ud83d\udcbb Development\n\n- **[Development Setup](docs/development.md)** - Contributing to StructKit\n- **[Known Issues](docs/known-issues.md)** - Current limitations and workarounds\n\n### \ud83d\udcd6 Resources\n\n- **[Articles & Tutorials](docs/articles.md)** - Community content and learning resources\n- **[Examples](example/)** - Practical examples and use cases\n\n## \ud83c\udfaf Use Cases\n\n- **Infrastructure as Code** - Generate Terraform modules, Kubernetes manifests\n- **Application Scaffolding** - Bootstrap microservices, APIs, frontend projects\n- **DevOps Automation** - CI/CD pipeline templates, configuration management\n- **Documentation** - Consistent project documentation and compliance templates\n\n## \ud83e\udd1d Community\n\n- **[Contributing Guidelines](docs/development.md#contributing-guidelines)** - How to contribute\n- **[GitHub Discussions](https://github.com/httpdss/structkit/discussions)** - Community support\n- **[Articles & Tutorials](docs/articles.md)** - Learning resources\n\n## \ud83d\udcdc License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## \ud83d\udcb0 Support\n\nIf StructKit helps your workflow, consider supporting the project: [patreon/structproject](https://patreon.com/structproject)\n\n---\n\n**\ud83d\udcda [Complete Documentation](docs/index.md)** | **\ud83d\udc1b [Report Issues](https://github.com/httpdss/structkit/issues)** | **\ud83d\udcac [Discussions](https://github.com/httpdss/structkit/discussions)**\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A structured data processing tool",
    "version": "3.0.0",
    "project_urls": {
        "Homepage": "https://github.com/httpdss/structkit",
        "Repository": "https://github.com/httpdss/structkit.git"
    },
    "split_keywords": [
        "data",
        " structure",
        " processing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e98e430a8034d7197c359b670b082bed9da1018c523a4c0d9ab1e63ff6de9f32",
                "md5": "53affb09e91839cc840c64b5b9a56872",
                "sha256": "374bc4e49409a8f2a5e57ff4b1337b50a32ff89a70ea757d973707d074535782"
            },
            "downloads": -1,
            "filename": "structkit-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "53affb09e91839cc840c64b5b9a56872",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 81833,
            "upload_time": "2025-10-28T00:45:41",
            "upload_time_iso_8601": "2025-10-28T00:45:41.121496Z",
            "url": "https://files.pythonhosted.org/packages/e9/8e/430a8034d7197c359b670b082bed9da1018c523a4c0d9ab1e63ff6de9f32/structkit-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2fc4805375ecf73508c33a3cf47c98f733050ddeda5c6bcf76399b766ae6eeb",
                "md5": "43c0dbc41249d870009da885948df333",
                "sha256": "cf942aa6a017edfa39531ddacf9186e9437917d5b02fb81992f32fd6f67697ed"
            },
            "downloads": -1,
            "filename": "structkit-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "43c0dbc41249d870009da885948df333",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 77162,
            "upload_time": "2025-10-28T00:45:43",
            "upload_time_iso_8601": "2025-10-28T00:45:43.307282Z",
            "url": "https://files.pythonhosted.org/packages/a2/fc/4805375ecf73508c33a3cf47c98f733050ddeda5c6bcf76399b766ae6eeb/structkit-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-28 00:45:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "httpdss",
    "github_project": "structkit",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "PyYAML",
            "specs": [
                [
                    ">=",
                    "6.0"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.28.0"
                ]
            ]
        },
        {
            "name": "openai",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    ">=",
                    "0.21.0"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    ">=",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "PyGithub",
            "specs": [
                [
                    ">=",
                    "1.58.0"
                ]
            ]
        },
        {
            "name": "shtab",
            "specs": [
                [
                    ">=",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "colorlog",
            "specs": [
                [
                    ">=",
                    "6.7.0"
                ]
            ]
        },
        {
            "name": "pydantic-ai",
            "specs": [
                [
                    ">=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "fastmcp",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        }
    ],
    "lcname": "structkit"
}
        
Elapsed time: 1.99138s