Generates documentation for Terraform modules using terraform-docs tool to auto-generate README files with input/output tables, usage examples, and requirements. This skill should be used when users need to document Terraform modules, create or update README files, or maintain consistent module documentation.
View on GitHubarmanzeroeight/fastagent-plugins
terraform-toolkit
plugins/terraform-toolkit/skills/terraform-documentation-generator/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/armanzeroeight/fastagent-plugins/blob/main/plugins/terraform-toolkit/skills/terraform-documentation-generator/SKILL.md -a claude-code --skill terraform-documentation-generatorInstallation paths:
.claude/skills/terraform-documentation-generator/# Terraform Documentation Generator
This skill helps generate and maintain Terraform module documentation using terraform-docs.
## When to Use
Use this skill when:
- Creating README.md for a new module
- Updating documentation after module changes
- Generating input/output reference tables automatically
- Ensuring consistent documentation across modules
## Using terraform-docs
### Installation
```bash
# macOS
brew install terraform-docs
# Linux
curl -sSLo ./terraform-docs.tar.gz https://terraform-docs.io/dl/latest/terraform-docs-linux-amd64.tar.gz
tar -xzf terraform-docs.tar.gz
chmod +x terraform-docs
mv terraform-docs /usr/local/bin/
# Or use Go
go install github.com/terraform-docs/terraform-docs@latest
```
### Basic Usage
```bash
# Generate markdown documentation
terraform-docs markdown table . > README.md
# Preview without writing
terraform-docs markdown table .
# Generate for specific directory
terraform-docs markdown table ./modules/vpc > ./modules/vpc/README.md
```
### Configuration File
Create `.terraform-docs.yml` in module root for consistent formatting:
```yaml
formatter: "markdown table"
header-from: main.tf
sections:
show:
- header
- requirements
- providers
- inputs
- outputs
- resources
content: |-
{{ .Header }}
## Usage
```hcl
module "example" {
source = "./modules/example"
# Add your example here
}
```
{{ .Requirements }}
{{ .Providers }}
{{ .Inputs }}
{{ .Outputs }}
{{ .Resources }}
output:
file: "README.md"
mode: inject
template: |-
<!-- BEGIN_TF_DOCS -->
{{ .Content }}
<!-- END_TF_DOCS -->
sort:
enabled: true
by: required
```
### Auto-Generate Documentation
```bash
# With config file
terraform-docs .
# Inject into existing README between markers
terraform-docs markdown table --output-file README.md --output-mode inject .
```
### Output Formats
```bash
# Markdown table (most common)
terraform-docs markdown table .
# Markdown documen