Log in

new-terraform-provider

Vercel
All-time installs
3,405

Use this when scaffolding a new Terraform provider with the Plugin Framework: workspace layout, go module setup, provider server main.go, and a provider.go with schema and Configure. Also use when a user wants to start building a provider for a new API or asks how to begin a terraform-provider-* project.

Other options

Summary

Use this when scaffolding a new Terraform provider with the Plugin Framework: workspace layout, go module setup, provider server main.go, and a provider.go with schema and Configure. Also use when a user wants to start building a provider for a new API or asks how to begin a terraform-provider-* project.

Raw SKILL.md

1,808 bytes
---
name: new-terraform-provider
description: >-
  Use this when scaffolding a new Terraform provider with the Plugin
  Framework: workspace layout, go module setup, provider server main.go,
  and a provider.go with schema and Configure. Also use when a user wants
  to start building a provider for a new API or asks how to begin a
  terraform-provider-* project.
license: MPL-2.0
metadata:
  lifecycle-status: active
  copyright: Copyright IBM Corp. 2026
  version: "0.0.1"
---

To scaffold a new Terraform provider with Plugin Framework:

1. If I am already in a Terraform provider workspace, then confirm that I want
   to create a new workspace. If I do not want to create a new workspace, then
   skip all remaining steps.
1. Create a new workspace root directory. The root directory name should be
   prefixed with "terraform-provider-". Perform all subsequent steps in this
   new workspace.
1. Initialize a new Go module.
1. Run `go get -u github.com/hashicorp/terraform-plugin-framework@latest`.
1. Write a main.go file that follows [the example](assets/main.go).
1. Write an `internal/provider/provider.go` file that follows
   [the example](assets/provider.go). Rename the `demo` provider, the
   `DEMO_*` environment variables, and the authentication attributes to
   match the target API.
1. Remove TODO comments from `main.go` and `provider.go`.
1. Run `go mod tidy`
1. Run `go build -o /dev/null`
1. Run `go test ./...`
The scaffold resolves credentials as explicit config with environment
variable fallback. To grow that into a full credential provider chain
(shared credentials files, profiles, platform identity, configure-time
validation), use the `provider-configuration` skill (if available). To add
the first resource or data source, use the `provider-resources` skill (if
available).

Security audits

SnykPASS
SocketPASS
Gen Agent Trust HubPASS