{"id":15156364,"url":"https://github.com/jar-b/provdoc","last_synced_at":"2025-10-24T13:30:59.768Z","repository":{"id":177411019,"uuid":"659440483","full_name":"jar-b/provdoc","owner":"jar-b","description":"Terraform provider documentation in the terminal.","archived":false,"fork":false,"pushed_at":"2023-12-15T19:33:07.000Z","size":1918,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-27T19:20:58.515Z","etag":null,"topics":["cli","documentation","terraform","terraform-providers"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jar-b.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-06-27T20:59:33.000Z","updated_at":"2024-09-21T17:54:48.000Z","dependencies_parsed_at":"2023-12-15T21:00:02.891Z","dependency_job_id":null,"html_url":"https://github.com/jar-b/provdoc","commit_stats":null,"previous_names":["jar-b/provdoc"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jar-b%2Fprovdoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jar-b%2Fprovdoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jar-b%2Fprovdoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jar-b%2Fprovdoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jar-b","download_url":"https://codeload.github.com/jar-b/provdoc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219868598,"owners_count":16555871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","documentation","terraform","terraform-providers"],"created_at":"2024-09-26T19:20:34.587Z","updated_at":"2025-10-24T13:30:59.374Z","avatar_url":"https://github.com/jar-b.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# provdoc\n[![build](https://github.com/jar-b/provdoc/actions/workflows/build.yml/badge.svg)](https://github.com/jar-b/provdoc/actions/workflows/build.yml)\n\nTerraform provider documentation in the terminal.\n\n\u003cimg width=\"800\" src=\"./demo/demo.gif\" /\u003e\n\n## Installation\n\n```\ngo install github.com/jar-b/provdoc@latest\n```\n\n## Requirements\n\n- [Terraform](https://www.terraform.io/)\n- An initialized Terraform project OR exported JSON schema file.\n\n## Usage\n\n```console\n$ provdoc -h\nUsage: provdoc [flags]\n\nFlags:\n  -schemafile string\n        JSON file storing provider schema data\n```\n\n```sh\n# Load live from the `terraform providers schema -json` command\nprovdoc\n\n# Load from an exported JSON file\nprovdoc -schemafile schema.json\n```\n\n`provdoc` should be executed in a directory with an initialized Terraform project.\nOn startup, the program executes `terraform providers schema -json` (or reads in\nexported data if the `-schemafile` argument is provided), gathering up\nthe schema documentation for all providers currently configured in the project.\nIf providers are added or removed, the schema data can be reloaded with `Ctrl+R`.\n\nOnce the schema is loaded two search modes are available.\n\n- `Schema` mode expects an exact resource or data source name as the search term, and\nwill render the resulting schema documentation to the viewport. Example search terms\nare [`random_string`](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string)\nor [`aws_instance`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance).\n\n- `Resource` mode accepts any search term, and will list all resources or data sources\ncontaining the term to the viewport. Example search terms are `random_` (ie. list all\nresources in the random provider) or `aws_ec2`.\n\nThe active search mode is displayed in lower left corner, and can be toggled with\n`Tab`/`Shift+Tab`.\n\n## Motivation\n\nWriting Terraform can require frequent context switching between the editor\nand [Terraform Registry](https://registry.terraform.io/), especially when\nadopting a new, unfamiliar provider. `provdoc` utilizes the existing\ndocumentation available from provider schemas to supply searchable documentation\ndirectly in the terminal.\n\n\u003e [!NOTE]\n\u003e Documentation is parsed and rendered from the provider schema, so the utility\n\u003e of what is displayed is largely dependent on what the provider developer includes\n\u003e there. Some providers (for example the AWS Terraform Provider)\n\u003e maintain standalone registry documentation and leave the schema descriptions\n\u003e empty. In these cases the tool can still provide argument name references, but\n\u003e the content will be considerably less useful than the Terraform registry.\n\n## Prior art\n\nThis project relies heavily on the following:\n\n- [hashicorp/terraform-json](https://github.com/hashicorp/terraform-json) - Provider schema processing\n- [hashicorp/terraform-plugin-docs](https://github.com/hashicorp/terraform-plugin-docs) - Provider schema markdown rendering\n- The [Charm](https://github.com/charmbracelet) ecosystem of command line tools, most notably:\n  - [charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea)\n  - [charmbracelet/glamour](https://github.com/charmbracelet/glamour)\n\n## Future enhancements\n\nAt this phase the project is mostly a proof of concept. Some initial ideas for\nfuture enhancements include:\n\n- [x] Display loaded providers at startup\n- [x] Fuzzy search for resource names\n- [x] Live reloading \n- [ ] Paged results (resources and data sources of the same name)\n- [ ] Alternate full screen display\n- [ ] Example configuration generation\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjar-b%2Fprovdoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjar-b%2Fprovdoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjar-b%2Fprovdoc/lists"}