关于 modules
用于在现有 Terraform 模板中添加或更新 Coder 模块的 Skill。它指导模块查找、安全集成代码片段、验证和部署,并以注册表文档中的版本为准。
主要功能
- 01在注册表中查找模块
- 02检查模板前置条件
- 03插入固定版本的 Terraform 代码
- 04验证 Terraform 更改
- 05推送模板版本
适用场景
- 01为 Coder 工作区添加 IDE
- 02集成 AI Agent 模块
- 03向模板添加密钥或云区域模块
MCP 相关
它可使用 `https://registry.coder.com/mcp` 上的注册表 MCP 服务及其 `search_modules` 工具查找模块。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ coder/ skills --skill modules安装后在 Claude Code 中输入/modules确认已加载。
附带文件agents/openai.yaml
详细介绍
模块
在现有的 Coder 模板中添加或更新 Coder 模块。 模块是在 registry.coder.com 上发布的 Terraform 代码片段,可为工作区扩展 IDE、AI Agent、密钥、登录流程、云区域和其他工具。
信息来源
应用任何特定主题的内容前,请先阅读最新的上游文档:
- https://coder.com/docs/llms.txt:文档索引。
- 仅当索引信息不足时,才查阅 https://coder.com/docs/llms-full.txt。
- 每个模块在 registry.coder.com 上的页面都提供规范的 Terraform 代码片段和版本。优先使用该页面上的内容,不要依赖记忆中的版本。
本技能仅保留集成工作流、用户交互规则,以及少数特定模块的注意事项。
用户交互
用户需要的是可用的模块集成,而不是 Terraform 教程。
- 如果用户有多个模板,请确认要编辑哪个模板。
- 写入前展示拟添加的代码片段,并询问用户是否同意。只询问一次是/否。
- 绝不默默升级模块版本。版本有变更时,明确告知用户。
- 除非用户提出要求,否则不要向用户讲解 Coder 概念。
工作流
1. 确定模块
搜索用户描述的模块。按以下顺序尝试,找到第一个匹配项后即停止:
- 使用 registry MCP 服务
https://registry.coder.com/mcp中的search_modules工具。 - 访问网站 https://registry.coder.com/modules。
- 在
coder/registry的本地克隆中运行find registry/coder/modules -maxdepth 1 -type d。
如果请求含糊不清,请列出两到三个匹配选项,并各用一句话说明,然后请用户选择。
2. 找到目标模板
Coder 模块要添加到 Coder 模板中,该模板是磁盘上的 Terraform 代码。请确认:
- 存在一个包含
main.tf的目录。 - 存在一个
coder_agent资源。大多数模块需要agent_id。 - 存在一个
data "coder_workspace" "me"数据源。大多数模块会根据data.coder_workspace.me.start_count进行条件判断。
如果不存在模板目录,请停止并推荐使用模板技能。
3. 阅读模块页面
获取规范的代码片段:
- 从 registry.coder.com 上该模块的 README 获取。
- 或从
coder/registry的本地克隆中的registry/coder/modules/<name>/README.md获取。
始终固定为页面上显示的版本。绝不使用 latest。绝不编造未列出的版本。
4. 插入模块
将代码片段添加到 main.tf。常见规则:
- 将
agent_id设置为现有的coder_agent资源。模板通常恰好只有一个。 - 对于仅应在工作区启动时运行的模块,保留
count = data.coder_workspace.me.start_count。 - 遵循周围的缩进和引号风格。
- 带有额外输入项的模块(JetBrains IDE 选择、Vault 身份验证、JFrog 实例 URL、MCP 配置)需要额外参数。请先阅读模块 README 的 Examples 部分,不要猜测。
5. 验证
在模板目录中:
terraform init
terraform fmt
terraform validate
terraform fmt 可能会重新格式化用户未修改的文件部分。如果发生这种情况,请在提交前询问用户。
6. 推送
如果用户希望将更改发布到 Coder 部署:
coder templates push "$TEMPLATE_NAME" -d "$TEMPLATE_DIR" --yes
coder templates versions list "$TEMPLATE_NAME"
versions list 的输出可确认新版本已注册。如果用户希望自动激活新版本,请在 push 中添加 --activate;否则,保留当前激活的版本。
常用模块
精选的高频类别列表。完整目录请访问 https://registry.coder.com/modules。
- IDE:
cursor、jetbrains、code-server、vscode-desktop、vscode-web、windsurf、zed、kiro。 - AI Agent:
claude-code、aider、goose、amazon-q、agentapi。 - 开发环境:
dotfiles、git-clone、git-config、personalize、coder-login。 - 密钥:
hcp-vault-secrets、vault-cli、vault-github、vault-jwt、vault-token。 - 应用:
filebrowser、jupyterlab、jupyter-notebook、rstudio-server、kasmvnc。 - 云区域:
aws-region、azure-region、gcp-region、fly-region。
安全措施
- 不要将模块添加到没有
coder_agent的模板中。该模块将无法运行,工作区也会在不提示的情况下缺少此集成。 - 添加需要管理员级配置的模块(Vault 后端、JFrog 实例、外部身份验证提供商)之前,先确认部署环境已配置相应的服务端。
- 运行
coder templates push前,务必告知用户他们将获得哪个模板版本。 - 如果用户有未提交的更改,不要编辑
main.tf;先提议暂存或提交更改。 - 不要编造模块名称或版本。如果在 registry.coder.com 上找不到模块,请如实说明。
捆绑资源
此技能不附带任何特定模块的操作指南。请参阅 registry.coder.com 上各模块的 README 和上游 Coder 文档。