关于 TerraVision
TerraVision 是一款开源云架构图生成器,可根据文字描述、Terraform 或 JSON 图数据绘制 AWS、Azure 和 Google Cloud 架构。它在本机运行,无需云账号访问,并可从架构图生成 Terraform。
主要功能
- 01绘制 AWS、Azure 和 Google Cloud 架构图
- 02从 Terraform plan 生成图表
- 03从架构图生成 Terraform
- 04输出可编辑的 draw.io 图表和交互式 HTML
- 05通过 GitHub Action 在代码变更时更新图表
- 06支持命令行和 JSON 图输入
适用场景
- 01根据文字描述创建云架构图
- 02在基础设施尚未部署时绘制 Terraform 架构
- 03在 CI 中随 Terraform 变更重绘图表
- 04制作可点击查看资源设置的 HTML 文档
MCP 相关
TerraVision 可作为 MCP 服务连接 Claude、ChatGPT、Copilot、Cursor 等 MCP 客户端。客户端可请求绘图;结果包括图像、SVG 和 draw.io 文件等。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
TerraVision
以 AWS、Azure 和 GCP 官方风格绘制专业云架构图,可根据 Claude 或 ChatGPT 中的描述,或根据你的 Terraform 生成
🌐 terravision.online · 📖 完整文档 →
TerraVision 是一款免费的开源 云架构图生成器,适用于 AWS、Azure 和 Google Cloud,支持双向转换:从设计到代码(向 AI 助手描述需求,获取架构图,然后生成 Terraform),以及从代码到架构图(绘制 Terraform 将部署的内容)。
用通俗语言向 AI 助手描述云架构图需求,就能获得云架构师绘制的架构图:采用 AWS、Azure 和 GCP 官方图标,并将每项资源放置在所属的 VPC、子网、可用区或资源组中。你可以从描述或 Terraform 代码生成架构图,也可以反向操作,根据架构图生成 Terraform。TerraVision 在你自己的计算机上运行,无需访问云端。
无需访问生产环境,即可绘制生产架构图。
TerraVision 仅根据代码绘制 Terraform 将要部署的内容。基础设施无需事先存在,你也不需要访问它将部署到的任何账户。实时云扫描器做不到这一点。了解详情 →
观看 90 秒入门视频
图库
每个云平台都采用相同的三级设计,并各提供一个旗舰示例。每个示例都附带提示词和源文件:查看完整图库 →
![]() AWS 三层 Web 应用 | ![]() Azure 三层 Web 应用 | ![]() Google Cloud 三层 Web 应用 |
![]() AWS 搭配 Karpenter 的 EKS | ![]() Azure 中心辐射式落地区 | ![]() Google Cloud 搭配 Private Service Connect 的 GKE |
图库中的更多示例:AWS 无服务器事件驱动架构 · AWS 数据湖 · AWS 多区域故障转移 · AWS 多账户网络 · Azure AKS · Google Cloud 数据管道
在 Claude 或 ChatGPT 中开始使用
TerraVision 可作为扩展安装在 Claude Desktop 中,也可作为插件安装在 ChatGPT 桌面应用中,图表会直接显示在聊天中。它还适用于 Claude Code、Codex CLI、GitHub Copilot、Cursor 和任何其他 MCP 客户端。
1. 安装前置条件(仅需一次)
TerraVision 需要 Graphviz(用于绘图)和 Git。uv 可为 Claude Code、Codex、Antigravity CLI 和其他 MCP 客户端运行 TerraVision;Claude Desktop 在 Windows 和 macOS 上自带 uv,因此这些系统上可跳过安装。只有需要根据 Terraform 代码绘图时才需要 Terraform。
macOS
使用 Homebrew:
brew install graphviz git
brew install uv # not needed for Claude Desktop
brew install hashicorp/tap/terraform # optional: to draw from Terraform code
Windows
在 PowerShell 中运行:
winget install --id Graphviz.Graphviz -e
winget install --id Git.Git -e
winget install --id astral-sh.uv -e # not needed for Claude Desktop
winget install --id Hashicorp.Terraform -e # optional: to draw from Terraform code
然后打开一个新的终端,并重启 AI 应用,以便它们识别新安装的程序。
Linux(Debian、Ubuntu)
sudo apt install graphviz git
# Ubuntu 26.04 and later only (also Debian 14 "forky"/testing).
# Skip on older releases such as Ubuntu 24.04: graphviz already includes it.
sudo apt install libgvplugin-neato-layout8
curl -LsSf https://astral.sh/uv/install.sh | sh # Claude Desktop on Linux needs uv pre-installed
# optionally install terraform, to draw from Terraform code: HashiCorp's apt repository
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
其他发行版:参阅 HashiCorp 的安装指南。
没有管理员权限,或没有包管理器?可以将每个工具解压到主目录,并添加到 PATH 中:安装指南。
2. 连接助手
Claude Desktop: 从最新版本下载 terravision-<version>.mcpb 并打开它(或将其拖到设置 → 扩展中)。图表会直接显示在聊天中,并附有按钮,可用于打开图片、在 draw.io 中编辑、在所在文件夹中显示以及查看源代码。
Claude Code(终端、VS Code 或 JetBrains):
claude plugin marketplace add patrickchugh/terravision
claude plugin install terravision-cloud-diagrams@terravision
然后启动一个新的 Claude Code 会话。图表会保存在项目的 diagrams 文件夹中。如果 /mcp 在首次启动时显示 TerraVision 连接失败(安装耗时可能超过 Claude Code 的等待时间),请选择重新连接,或预先运行 uvx --from "terravision[mcp]" terravision --version 完成安装。
ChatGPT 桌面应用和 OpenAI Codex CLI: 在桌面应用中,前往“设置”,添加市场 https://github.com/patrickchugh/terravision,然后选择 terravision-cloud-diagrams。对于 CLI:
codex plugin marketplace add https://github.com/patrickchugh/terravision
codex plugin add terravision-cloud-diagrams@terravision
Google Antigravity CLI(agy):
agy mcp add terravision -- uvx --from "terravision[mcp]" terravision mcp --output-dir /path/for/diagrams
VS Code 搭配 GitHub Copilot、Cursor 和其他 MCP 客户端: 添加一个运行 uvx --from "terravision[mcp]" terravision mcp --output-dir <folder for diagrams> 的 MCP 服务。各客户端的配置以及仅安装技能的 npx skills add patrickchugh/terravision 命令,均见设置指南。
3. 请求生成图表(或代码)
| 你有 | 可以这样提问 | 你会得到 |
|---|---|---|
| 一个想法 | "绘制一个 AWS 三层应用:React 位于 CloudFront 上,ECS Fargate 部署在两个 AZ 中的 ALB 后方,SQL Server 部署在 RDS Multi-AZ 上" | 图表(PNG、SVG、可编辑的 draw.io 文件)及其图结构。你可以继续提问来完善图表:"添加 ElastiCache"、"展示请求如何流经其中" |
| 一张由 TerraVision 生成且你喜欢的图表 | "为此架构编写 Terraform" | 资源、区域和连接对应的 Terraform 代码,并保留图表中的流向和标签(质量取决于所用模型) |
| 本地或 GitHub 上的 Terraform 代码,但没有 VERIFIED 图表 | "绘制 ./infra 中 Terraform 的架构图" 或 "为 https://github.com/patrickchugh/testcase-bastion//examples 绘制云架构图" | 展示 terraform plan 所示代码将部署内容的图表 |
| 一张 Terraform 的 TerraVision 图表,你想将它发布到 HTML 文档中,或逐个审查资源(例如进行安全审计) | "让这张图表具有交互性" 或 "给我一个可以点击浏览的交互版本" | 一个可在任何浏览器或文档站点中使用的单页 HTML,无需服务器:点击任意资源即可查看其设置(加密、公共访问、端口、IAM),还可搜索和缩放。该页面由 terraform plan 构建,因此需要 Terraform 代码,而不仅仅是一张图片 |
| 仓库中包含现有 TerraVision 图表的 Terraform 代码 | "在 CI 中保持此图表为最新状态" | 每当 Terraform 发生变化时都会重新绘制图表的工作流 |
TerraVision 首次绘制图表时会花费稍长时间,因为它需要先安装。如果缺少任何内容,助手会告知你需要安装什么。你可以随时询问:"TerraVision 是否已正确设置?"
完整指南和更多示例提示词请见:将 TerraVision 与 AI 助手配合使用。
在 CI/CD 中保持图表为最新状态
将 TerraVision GitHub Action 指向你的 Terraform,每次发生更改时都会自动重绘图表:
- uses: hashicorp/setup-terraform@v3
- uses: patrickchugh/terravision-action@v2
with:
source: ./infrastructure
outfile: docs/architecture
format: both
在 Terraform 同目录下添加 terravision.yml,即可为每个版本添加标题、编号流向和连接标签。GitLab、Jenkins、Azure DevOps 等平台请参阅:CI/CD 集成。
为什么选择 TerraVision?
- ✅ 专为 AI 助手打造:提供 Claude、ChatGPT、Codex、Copilot 和 Cursor 的扩展与插件,并在聊天中显示图表(指南)
- ✅ 可验证的准确性:根据
terraform plan绘制,因此代码是事实来源,图表展示的就是将要部署的内容 - ✅ 无需访问生产环境即可绘制生产架构:基础设施无需实际存在,你也无需访问将要部署到的账户;一个代码库即可根据各自的变量文件绘制开发、预发布和生产环境(方法)
- ✅ 官方图标和规范:支持 AWS、Azure 和 GCP 图标,并将每个资源放置在其 VPC、子网、区域或资源组中
- ✅ JSON 图结构输入:用几行 JSON 描述架构,无需学习自定义 DSL(图格式)
- ✅ 100% 在客户端运行:在本地运行,无需云访问;你的代码绝不会离开计算机
- ✅ 交互式 HTML 和可编辑的 draw.io 输出、流向注释(YAML 或通过 Ollama 或 Bedrock 生成)、支持 Terragrunt,免费且开源
比较一览
| TerraVision | 手动工具 (draw.io、Lucidchart、Visio) | AI 工作空间 (Eraser) | 图表即代码 (Mermaid、D2、Python Diagrams) | 实时云扫描器 (例如 Cloudcraft) | |
|---|---|---|---|---|---|
| 根据纯英文描述绘图 | ✅ 可在你已使用的助手(Claude、ChatGPT、Copilot)中使用 | ✅ | |||
| 根据 Terraform 绘图 | ✅ 根据 terraform plan 构建,在客户端运行 | ||||
| 绘制你无权访问或尚未构建的环境 | ✅ 仅凭代码和变量文件即可绘制:基础设施无需实际存在,也不需要访问其部署到的任何账户。--varfile prod.tfvars 可绘制 prod,--varfile dev.tfvars 可绘制 dev | ||||
| 为设计编写 Terraform | ✅ 由你的助手编写,并通过重新绘制 AI 编写的代码进行检查 | ||||
| 官方图标以及 VPC、子网、区域分组惯例 | ✅ 内置 | ||||
| 自动保持最新 | ✅ 在 CI 中根据代码重新绘制 | ✅ 跟随实时账户更新 | |||
| 高安全性 - 无需访问云账户或上传代码 | ✅ | ✅ | ✅ | ||
| 价格 | 免费、开源 | 免费至付费 | 免费套餐、付费方案 | 免费、开源 | 付费 |
| 已经手动画好了吗?先用 TerraVision 生成初版,再在 draw.io 或 Lucidchart 中润色导出的文件。完整对比:TerraVision 与 draw.io、Lucidchart、Eraser、Mermaid 等工具的对比。 |
支持的云提供商
| 提供商 | 状态 | 资源类型 |
|---|---|---|
| AWS | ✅ 完全支持 | 427 种 |
| Google Cloud | ✅ 完全支持 | 267 种 |
| Azure | ✅ 完全支持 | 263 种 |
完整列表:节点类型。
从命令行使用
TerraVision 也可作为命令行工具使用,适用于脚本,也适合喜欢自己编写图表的人。
安装
pipx install terravision # or: uv tool install terravision
# or: pip install terravision in a virtual env
你还需要 Python 3.11+(uv 会为你安装)、Graphviz 和 Git;如果要根据 Terraform 代码绘图,还需要 Terraform 1.x(或 OpenTofu)。JSON 图表不需要这些。各平台的具体步骤、Docker 和 Nix:安装指南。
根据 JSON 绘制图表(无需 Terraform)
每个键都是 <terraform_resource_type>.<name>;每个值代表它连接到或包含的内容。格式就是这么简单。
{
"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
支持 AWS(aws_*)、Azure(azurerm_*)和 GCP(google_*)。完整规范、架构以及 Azure 和 GCP 示例:图表格式。
根据 Terraform 绘制图表
terravision draw --source ./path-to-your-terraform --show # local directory
terravision draw --source https://github.com/user/repo.git//subfolder --show # public Git repo
terravision draw --source ./path-to-your-terraform --varfile prod.tfvars # draw prod without prod access
terravision visualise --source ./path-to-your-terraform --show # interactive HTML
图表根据 terraform plan 生成,因此展示的是代码实际部署的内容:条件语句、count、for_each 和模块都会经过解析。Eraser 等工具绘制的是 AI 想象出来的内容;TerraVision 展示的是代码实际部署的内容。
输出格式、预生成的计划、AI 注释、简化视图以及所有选项(terravision --help):使用指南。
试用交互式演示
- 🟧 AWS 演示:使用 CloudFront、RDS 和 EFS 的 ECS Fargate 上的 Wordpress
- 🟦 Azure 演示:带负载均衡器和 VNet 的 VM 规模集
- 🟩 GCP 演示:GCP 核心网络和计算
文档
所有内容都在 patrickchugh.github.io/terravision 上(供 AI Agent 使用的 llms.txt)。
- 使用 TerraVision:安装 · 使用指南 · 无需生产环境访问权限即可绘制生产环境架构图 · 注释 · CI/CD · MCP 服务 · 常见问题 · 故障排除
- 图表生成器:云 · AI(描述转图表) · 图表转 Terraform · AWS · Azure · Google Cloud · Terraform · 替代方案对比
- 协作者资源:参与贡献 · 开发者指南 · 资源处理程序指南 · 章程
贡献与支持
TerraVision 仅接受受邀协作者提交的拉取请求。欢迎在 Issues 和 Discussions 中提交 Bug 报告、功能请求和问题;CONTRIBUTING.md 说明了 Bug 报告应包含哪些内容。
本项目采用 AGPL-3.0 许可,详见 LICENSE。本项目基于 Graphviz、Terraform 和 Terragrunt 构建,并使用 AWS、Azure 和 GCP 官方图标集。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。





