A CLI tool to inspect Terraform and OpenTofu provider schemas, listing resources and showing detailed attribute definitions.
tfschema is a command-line utility that inspects and displays the schema definitions of Terraform and OpenTofu providers. It solves the problem of manually looking up provider documentation by allowing developers to programmatically list resources, view attribute details, and enable autocompletion directly from their terminal.
Terraform and OpenTofu users, infrastructure engineers, and DevOps practitioners who work with infrastructure-as-code and need to quickly understand provider capabilities and resource schemas.
Developers choose tfschema because it provides a fast, offline-capable way to explore provider schemas without leaving the command line, reducing context switching and improving workflow efficiency compared to browsing web documentation.
A schema inspector for Terraform / OpenTofu providers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Directly retrieves resource definitions from providers via the go-plugin protocol, ensuring accurate and up-to-date schema inspection without manual lookups, as highlighted in the features.
Lists all available resource types and shows detailed attribute tables with types, requirements, and sensitivity, demonstrated in the README with AWS IAM user examples.
Provides bash and zsh autocompletion for resource types, set up with a single command to streamline CLI workflows, as described in the autocomplete section.
Supports Terraform v0.12+ and OpenTofu v1.6+, adapting to different provider binary locations, making it versatile across tool versions, per the key features.
The tool has a lengthy, non-standard process for finding provider binaries across nine directories, which can lead to setup issues and confusion, as admitted in the README's 'Rules of finding provider's binary' section.
It does not exactly replicate Terraform's schema behavior due to the inability to import internal packages, potentially causing discrepancies in edge cases, as noted in the README.
Being a command-line tool, it lacks a graphical interface or API, limiting its use in GUI-heavy workflows or automated systems, which might hinder broader adoption.