mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat(coderd/templatebuilder): author initial module catalog for 19 modules (#26194)
> [!NOTE] > This PR was authored by Coder Agents on behalf of @jeremyruppel. Runs the `scripts/modulegen` generator against the coder/registry to produce the initial module catalog for the template builder. Generates `module.json` and `.tf.tmpl` files for 19 modules across four categories: - **IDE**: code-server, jetbrains, vscode-desktop, vscode-web, cursor, windsurf, zed, kiro - **AI Agent**: claude-code, aider, goose, amazon-q - **Source Control**: git-clone, git-config, git-commit-signing - **Utility**: dotfiles, personalize, filebrowser, jupyterlab Also updates `catalog_test.go` to validate the new embedded modules load correctly.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
|
||||
variable "claude_code_oauth_token" {
|
||||
description = "OAuth token passed to Claude Code via the CLAUDE_CODE_OAUTH_TOKEN env var. Generate one with `claude setup-token`."
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
module "claude-code" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "{{ .RegistryBase }}/coder/claude-code/coder"
|
||||
version = "{{ .PinnedVersion }}"
|
||||
agent_id = coder_agent.{{ .AgentResourceName }}.id
|
||||
anthropic_api_key = {{ .Variables.anthropic_api_key }}
|
||||
claude_binary_path = {{ .Variables.claude_binary_path }}
|
||||
claude_code_oauth_token = var.claude_code_oauth_token
|
||||
claude_code_version = {{ .Variables.claude_code_version }}
|
||||
disable_autoupdater = {{ .Variables.disable_autoupdater }}
|
||||
enable_ai_gateway = {{ .Variables.enable_ai_gateway }}
|
||||
icon = {{ .Variables.icon }}
|
||||
install_claude_code = {{ .Variables.install_claude_code }}
|
||||
mcp = {{ .Variables.mcp }}
|
||||
model = {{ .Variables.model }}
|
||||
post_install_script = {{ .Variables.post_install_script }}
|
||||
pre_install_script = {{ .Variables.pre_install_script }}
|
||||
workdir = {{ .Variables.workdir }}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"id": "claude-code",
|
||||
"display_name": "Claude Code",
|
||||
"description": "Install and configure the Claude Code CLI in your workspace.",
|
||||
"icon": "/icon/claude.svg",
|
||||
"category": "AI Agent",
|
||||
"tags": [
|
||||
"agent",
|
||||
"claude-code",
|
||||
"ai",
|
||||
"anthropic",
|
||||
"ai-gateway"
|
||||
],
|
||||
"compatible_os": [
|
||||
"linux"
|
||||
],
|
||||
"conflicts_with": [],
|
||||
"pinned_version": "5.2.0",
|
||||
"variables": [
|
||||
{
|
||||
"name": "agent_id",
|
||||
"type": "string",
|
||||
"description": "The ID of a Coder agent.",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": true
|
||||
},
|
||||
{
|
||||
"name": "anthropic_api_key",
|
||||
"type": "string",
|
||||
"description": "API key passed to Claude Code via the ANTHROPIC_API_KEY env var.",
|
||||
"default": "",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "claude_binary_path",
|
||||
"type": "string",
|
||||
"description": "Directory where the Claude Code binary is located. Use this if Claude is pre-installed or installed outside the module to a non-default location.",
|
||||
"default": "$HOME/.local/bin",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "claude_code_oauth_token",
|
||||
"type": "string",
|
||||
"description": "OAuth token passed to Claude Code via the CLAUDE_CODE_OAUTH_TOKEN env var. Generate one with `claude setup-token`.",
|
||||
"default": "",
|
||||
"required": false,
|
||||
"sensitive": true,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "claude_code_version",
|
||||
"type": "string",
|
||||
"description": "The version of Claude Code to install.",
|
||||
"default": "latest",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "disable_autoupdater",
|
||||
"type": "bool",
|
||||
"description": "Disable Claude Code automatic updates. When true, Claude Code will stay on the installed version.",
|
||||
"default": false,
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "enable_ai_gateway",
|
||||
"type": "bool",
|
||||
"description": "Use AI Gateway for Claude Code. https://coder.com/docs/ai-coder/ai-gateway",
|
||||
"default": false,
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "icon",
|
||||
"type": "string",
|
||||
"description": "The icon to use for the app.",
|
||||
"default": "/icon/claude.svg",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "install_claude_code",
|
||||
"type": "bool",
|
||||
"description": "Whether to install Claude Code.",
|
||||
"default": true,
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "mcp",
|
||||
"type": "string",
|
||||
"description": "JSON-encoded string of MCP server configurations. When set, servers are added at Claude Code's user scope so they are available across every project the workspace owner opens.",
|
||||
"default": "",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "model",
|
||||
"type": "string",
|
||||
"description": "Sets the default model for Claude Code via ANTHROPIC_MODEL env var. If empty, Claude Code uses its default. Supports aliases (sonnet, opus) or full model names.",
|
||||
"default": "",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "post_install_script",
|
||||
"type": "string",
|
||||
"description": "Custom script to run after installing Claude Code.",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "pre_install_script",
|
||||
"type": "string",
|
||||
"description": "Custom script to run before installing Claude Code. Can be used for dependency ordering between modules (e.g., waiting for git-clone to complete before Claude Code initialization).",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
},
|
||||
{
|
||||
"name": "workdir",
|
||||
"type": "string",
|
||||
"description": "Optional project directory. When set, the module pre-creates it if missing and pre-accepts the Claude Code trust/onboarding prompt for it in ~/.claude.json.",
|
||||
"required": false,
|
||||
"sensitive": false,
|
||||
"computed": false
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user