Your git forge in HCL. No joke.

Heckle reads an existing GitHub, GitLab, Gitea or Forgejo namespace and generates maintainable Infrastructure as Code.

GitHubGitLabGiteaForgejoTerraformOpenTofu
Quickstart

One forge in. Ordinary HCL out.

Install Heckle, provide the forge token through your environment, and generate HCL into a new directory for use with OpenTofu or Terraform.

Full installation and credential setup →
$ pipx install heckle
$ export GITHUB_TOKEN='...'
$ heckle generate github --org myorg

# Terraform and Forgejo instead of Github and the default OpenTofu:
$ export FORGEJO_API_TOKEN='...'
$ heckle generate forgejo --me --url https://code.example.org --tf terraform
When to use it

Heckle is a means to an end.

Heckle gets an existing forge under Infrastructure as Code. Once adoption is complete, you should maintain the generated HCL directly.

1

Discover

Read the namespace, repositories, memberships and supported forge settings.

2

Generate

Compile discovered state into normal .tf files and local modules.

3

Adopt

Rehearse imports, classify known provider behaviour and stop on unrecognised changes.

4

Manage

Edit and run the resulting Terraform/OpenTofu project normally. Heckle is no longer required.

CLI

Four subcommands to step your way into IAC.

CommandPurpose
generateDiscover a forge and produce a standalone Terraform/OpenTofu project.
inventorySave discovery results and coverage without generating HCL.
coverageRead a saved report without network access.
compatibilityShow the audited provider pins and known upstream behaviours for this Heckle release.

All commands and options →

Heckle helps you understand a plan; it does not guarantee one is safe. Provider behaviour, forge APIs, defaults and upstream bugs can produce unintended changes. Review every Terraform/OpenTofu plan yourself. The decision to apply a plan, and responsibility for its effects, remains in your hands.