{
  "markdown": "# TerraVision\n\n<!-- mcp-name: io.github.patrickchugh/terravision -->\n\n**Turn Terraform code into professional cloud architecture diagrams that stay in sync with your infrastructure — automatic, secure, living documents**\n\n[![lint-and-test](https://github.com/patrickchugh/terravision/actions/workflows/lint-and-test.yml/badge.svg)](https://github.com/patrickchugh/terravision/actions/workflows/lint-and-test.yml)\n[![PyPI version](https://img.shields.io/pypi/v/terravision?style=flat-square)](https://pypi.org/project/terravision/)\n[![PyPI downloads](https://img.shields.io/pypi/dm/terravision?style=flat-square)](https://pypi.org/project/terravision/)\n[![Python version](https://img.shields.io/pypi/pyversions/terravision?style=flat-square)](https://pypi.org/project/terravision/)\n[![GitHub stars](https://img.shields.io/github/stars/patrickchugh/terravision?style=flat-square)](https://github.com/patrickchugh/terravision/stargazers)\n[![License](https://img.shields.io/github/license/patrickchugh/terravision?style=flat-square)](https://github.com/patrickchugh/terravision/blob/main/LICENSE)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)\n\n**📖 [Full documentation site →](https://patrickchugh.github.io/terravision/)**\n\n---\n\n## Watch a 4-Minute Intro\n\n[![TerraVision intro video](./images/youtube-thumbnail.png)](https://youtu.be/bTrWHBI2mF4)\n\n---\n## What is TerraVision?\n\nTerraVision automatically converts your Terraform code into professional-grade cloud architecture diagrams using the official AWS, GCP, and Azure icon sets. Your diagrams stay in sync with your infrastructure — no more outdated Visio, draw.io or Lucidchart files.\n\n## Why TerraVision?\n\n- ✅ **Always up-to-date** — diagrams generated directly from your Terraform code\n- ✅ **100% client-side** — no cloud access required, runs locally, your code never leaves your machine\n- ✅ **CI/CD ready** — automate diagram updates on every PR merge\n- ✅ **Free & open source** — no expensive diagramming tool licenses\n- ✅ **Multi-cloud** — AWS (full), GCP, and Azure (core services)\n- ✅ **Interactive HTML output** — clickable nodes, pan/zoom, search, animated data flow\n- ✅ **Editable draw.io export** — open in draw.io, Lucidchart, or any mxGraph editor\n- ✅ **Optional AI annotations** — labels, titles, and flow sequences from Ollama (local) or AWS Bedrock\n- ✅ **Terragrunt compatible** — auto-detects single- and multi-module Terragrunt projects\n- ✅ **MCP server** — let AI agents generate diagrams from your Terraform, [see the guide](docs/mcp-server.md)\n\n---\n\n## Supported Cloud Providers\n\n| Provider         | Status             | Resources     |\n| ---------------- | ------------------ | ------------- |\n| **AWS**          | ✅ Full support    | 200+ services |\n| **Google Cloud** | 🔄 Partial support | Core services |\n| **Azure**        | 🔄 Partial support | Core services |\n\n---\n\n## Quick Start\n\n### Install\n\n```bash\npipx install terravision   # or: pip install terravision if in a virtual env\n```\n\nYou also need **Python 3.10+**, **Terraform 1.x**, **Graphviz**, and **Git**. See the [Installation Guide](https://patrickchugh.github.io/terravision/installation/) for platform-specific instructions, Docker, and Nix.\n\n### Generate your first diagram\n\n```bash\ngit clone https://github.com/patrickchugh/terravision.git\ncd terravision\n\n# EKS cluster example\nterravision draw --source tests/fixtures/aws_terraform/eks_automode --show\n\n# Azure VM scale set\nterravision draw --source tests/fixtures/azure_terraform/test_vm_vmss --show\n\n# From a public Git repo (note the // for subfolder)\nterravision draw --source https://github.com/patrickchugh/terraform-examples.git//aws/wordpress_fargate --show\n```\n\nThat's it — your diagram is saved as `architecture.png` and opens automatically.\n\n### Generate an interactive HTML diagram\n\n```bash\nterravision visualise --source ./path-to-your-terraform --show\n```\n\nClick any resource to see its Terraform metadata, search resources, pan/zoom, and watch animated data flow on edges. The HTML is a single self-contained file that works fully offline.\n\n---\n\n## Try the Interactive Demos\n\nClick any of these to see the interactive HTML output TerraVision produces:\n\n- 🟧 **[AWS demo](https://patrickchugh.github.io/terravision/demo-aws.html)** — Wordpress on ECS Fargate with CloudFront, RDS, EFS\n- 🟦 **[Azure demo](https://patrickchugh.github.io/terravision/demo-azure.html)** — VM scale set with load balancer and VNet\n- 🟩 **[GCP demo](https://patrickchugh.github.io/terravision/demo-gcp.html)** — Core GCP networking and compute\n\n---\n\n## Basic Usage\n\n### Generate a diagram\n\n```bash\n# From a local directory\nterravision draw --source ./path-to-your-terraform\n\n# From a Git repository\nterravision draw --source https://github.com/user/repo.git\n\n# Custom format and filename\nterravision draw --source ./path-to-your-terraform --format svg --outfile my-architecture\n\n# Editable draw.io file\nterravision draw --source ./path-to-your-terraform --format drawio --outfile my-architecture\n```\n\n### Use a pre-generated Terraform plan (no cloud credentials needed)\n\n```bash\n# Step 1: in your Terraform environment\nterraform plan -out=tfplan.bin\nterraform show -json tfplan.bin > plan.json\nterraform graph > graph.dot\n\n# Step 2: diagram generation, no Terraform or cloud access required\nterravision draw --planfile plan.json --graphfile graph.dot --source ./path-to-your-terraform\n```\n\n### AI-powered annotations (optional)\n\n```bash\nterravision draw --source ./path-to-your-terraform --ai-annotate ollama   # local LLM (no data leaves your machine)\nterravision draw --source ./path-to-your-terraform --ai-annotate bedrock  # AWS Bedrock via boto3 (uses your AWS credentials)\nterravision draw --source ./path-to-your-terraform --ai-annotate restapi  # any OpenAI-compatible endpoint (OpenAI, LiteLLM, vLLM, ...)\n```\n\nOnly metadata and the summary graph are sent to the LLM — never your `.tf` source. The `bedrock` backend authenticates via the standard AWS credential chain (no infrastructure to deploy); `restapi` is configured via `TV_RESTAPI_URL`, `TV_RESTAPI_KEY`, and `TV_RESTAPI_MODEL`. See the [Annotations Guide](https://patrickchugh.github.io/terravision/annotations/) and [AI-Powered Annotations](https://patrickchugh.github.io/terravision/usage-guide/#ai-powered-annotations) for the full configuration.\n\n### Simplified view\n\n```bash\nterravision draw --source ./path-to-your-terraform --simplified\n```\n\nStrips VPCs, subnets, and networking plumbing. Great for executive presentations.\n\n### Common options\n\n``terravision --help`` shows full help text details. \n\n| Option          | Description                                                                | Example                             |\n| --------------- | -------------------------------------------------------------------------- | ----------------------------------- |\n| `--source`      | Terraform directory or Git URL                                             | `./path-to-your-terraform`                       |\n| `--format`      | Output format: `png`, `svg`, `pdf`, `drawio`, [and more][formats]          | `svg`                               |\n| `--outfile`     | Output filename                                                            | `my-architecture`                   |\n| `--workspace`   | Terraform workspace                                                        | `production`                        |\n| `--varfile`     | Variable file (repeatable)                                                 | `prod.tfvars`                       |\n| `--planfile`    | Pre-generated plan JSON                                                    | `plan.json`                         |\n| `--graphfile`   | Pre-generated graph DOT                                                    | `graph.dot`                         |\n| `--ai-annotate` | AI annotation backend                                                      | `ollama`, `bedrock`, `restapi`      |\n| `--simplified`  | High-level view (no networking)                                            | (flag)                              |\n| `--show`        | Open after generation                                                      | (flag)                              |\n\n[formats]: https://patrickchugh.github.io/terravision/usage-guide/#output-formats\n\n---\n\n## Documentation\n\nThe complete documentation lives at **[patrickchugh.github.io/terravision](https://patrickchugh.github.io/terravision/)**.\n\n**For users:**\n- [Installation Guide](docs/installation.md)\n- [Usage Guide](docs/usage-guide.md)\n- [Annotations Guide](docs/annotations.md)\n- [CI/CD Integration](docs/cicd-integration.md)\n- [MCP Server Guide](docs/mcp-server.md)\n- [FAQ](docs/faq.md)\n- [Troubleshooting](docs/troubleshooting.md)\n\n**For contributors:**\n- [Contributing Guide](docs/CONTRIBUTING.md)\n- [Developer Guide](docs/developer-guide.md)\n- [Resource Handler Guide](docs/resource-handler-guide.md)\n- [Project Constitution](docs/constitution.md)\n\n---\n\n## FAQ\n\nCommon questions — cloud credentials, LLM data privacy, offline use, Terragrunt, output formats, and more — are answered in the **[FAQ on the documentation site](https://patrickchugh.github.io/terravision/faq/)**.\n\n---\n\n## Contributing\n\nContributions are very welcome. See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for development setup, coding standards, and the PR process.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/patrickchugh/terravision/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/patrickchugh/terravision/discussions)\n- **Documentation**: [patrickchugh.github.io/terravision](https://patrickchugh.github.io/terravision/)\n\n## License\n\nSee [LICENSE](LICENSE).\n\n## Acknowledgments\n\n- [Graphviz](https://graphviz.org/) — diagram rendering\n- [Terraform](https://www.terraform.io/) — infrastructure parsing\n- [Terragrunt](https://terragrunt.gruntwork.io/) — multi-module orchestration\n- Cloud provider icons from official AWS, GCP, and Azure icon sets\n",
  "bytes": 10036,
  "sha": "66d356a481d0e0b0d08a01ca1bcc9b7fa8bdbf2bb154e52765a647d03ae885bf",
  "repo_slug": "patrickchugh/terravision",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_patrickchugh_terravision_aa926210/readme"
}