Highlights
Draw from a JSON graph, no Terraform needed
TerraVision can now draw a professional cloud architecture diagram from a plain JSON file. Describe the architecture as nodes and connections, using Terraform resource type names, so there is no new language to learn:
{
"tv_aws_users.users": ["aws_cloudfront_distribution.cdn"],
"aws_cloudfront_distribution.cdn": ["aws_s3_bucket.static_site", "aws_alb.api"],
"aws_vpc.main": ["aws_subnet.public~1", "aws_subnet.private~1"],
"aws_subnet.public~1": ["aws_alb.api"],
"aws_subnet.private~1": ["aws_lambda_function.orders"],
"aws_alb.api": ["aws_lambda_function.orders"],
"aws_lambda_function.orders": ["aws_dynamodb_table.orders", "aws_sqs_queue.events"]
}terravision draw --source architecture.tvg.json --format svg- Each key is
<terraform_resource_type>.<name>; each value is what it connects to or contains. Works for AWS, Azure and GCP. - No Terraform required for JSON sources: only Graphviz and Git.
.tvg.jsonis the recommended extension for TerraVision Graph files. Any.jsonfile still works.- The format is published: Graph Format spec, JSON Schema, node types and example graphs for AWS, Azure and GCP.
Built for AI assistants
- New
render_graphMCP tool: an agent passes the graph inline and gets a diagram back, with no files to write and no Terraform. Node addresses are validated against the same rules as the JSON Schema. - Agent skill in
skills/terravision-cloud-diagramsfor Claude Code, Codex, Gemini CLI, Cursor and Copilot, with a dependency-free graph validator. - Claude Code plugin and Gemini CLI extension manifests.
llms.txtandllms-full.txton the docs site, so AI tools can find the format.
195 more resource types with official icons
Resource types that previously drew as generic boxes now use their provider's official icon. TerraVision now covers:
| Provider | Resource types | New in 0.48 |
|---|---|---|
| AWS | 385 | +69 |
| Azure | 245 | +77 |
| Google Cloud | 264 | +49 |
- AWS: OpenSearch (and Serverless, Ingestion), App Runner, MemoryDB, Keyspaces, Aurora DSQL, RDS Proxy, Redshift Serverless, MSK Serverless and Connect, Bedrock (agents, knowledge bases, guardrails, AgentCore), Kendra, Amazon Q, Managed Grafana and Prometheus, MWAA, EventBridge Pipes, Network Firewall, Security Lake, Private CA, S3 Access Points and S3 Tables, and more.
- Azure: Bastion, NAT Gateway, Firewall and WAF policies, Virtual Hub, Private DNS Resolver, Container Apps environments and jobs, AKS Fleet Manager, Red Hat OpenShift, Azure Virtual Desktop, AI Foundry, Managed Redis, Cosmos DB for MongoDB vCore and PostgreSQL, the Data Protection backup vault, Managed Grafana, Logic Apps Standard, and more.
- GCP: Memorystore, Managed Kafka, Vertex AI Workbench, Vector Search and Agent Engine, TPUs, Vertex AI Search, Serverless VPC Access, NetApp Volumes, Parallelstore, Managed Lustre, Oracle Database@Google Cloud, Model Armor, Cloud Run worker pools, and more.
The full list is on the node types page.
Bug Fixes
- Large stacks no longer hang (#212): the variable resolver is now near-linear, so stacks that took many minutes and several GB of memory render in seconds. Thanks @swirle13!
- JSON graphs draw every node: nodes that appear only as a connection target are now drawn instead of silently dropped. Diagrams drawn from Terraform are unchanged.
- AWS Internet Gateway icon path fixed.
Upgrade Note
terravision graphdatanow savesarchitecture.tvg.jsonby default (previouslyarchitecture.json). An--outfilethat already ends in.jsonis used as given, and--show_servicesoutput is still plain.json. If a script depends on the old default name, pass--outfile architecture.json.
Other Improvements
- The README and docs site now lead with JSON graph input, with AWS, Azure and GCP examples.
- The docs site adds Graph Format, Node types and MCP Server pages, plus a providers table with resource counts.
- The MCP Registry publish can now be re-run on its own for an existing PyPI version.
Full changelog: v0.47.0...v0.48.0