From 84f995e01977518f5888923e3fa3e62467c9be2f Mon Sep 17 00:00:00 2001 From: Ben Potter Date: Mon, 29 Jun 2026 09:34:06 -0700 Subject: [PATCH] fix(examples): remove vscode-desktop module from quickstart to avoid duplicate VS Code Desktop (#26789) The Quickstart template offered a "VS Code Desktop" editor option backed by the `vscode-desktop` module, which produced two "VS Code Desktop" buttons in the workspace view. Coder already enables the VS Code Desktop display app for every workspace by default via [`DefaultDisplayApps()` in `provisionersdk/agent.go`](https://github.com/coder/coder/blob/c782cbce77b08c0d031a7131a05f5babd762519f/provisionersdk/agent.go#L58-L65) (`Vscode: true`), so the module was redundant and is the source of the duplicate. This removes the `vscode-desktop` module and its editor option, and updates the README to note that VS Code Desktop is available by default. The browser-based `code-server`, Cursor, JetBrains, Zed, and Windsurf options are unchanged. `examples.gen.json` is regenerated. Closes #26788 --- *Generated by Coder Agents on behalf of @bpmct.* --- examples/examples.gen.json | 2 +- examples/templates/quickstart/README.md | 5 +++-- examples/templates/quickstart/main.tf | 13 ------------- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/examples/examples.gen.json b/examples/examples.gen.json index f77b124c69..e4da0305c3 100644 --- a/examples/examples.gen.json +++ b/examples/examples.gen.json @@ -220,7 +220,7 @@ "docker", "quickstart" ], - "markdown": "\n# Coder Quickstart\n\nGet up and running with Coder in minutes. Choose your programming languages, pick your preferred editors, optionally clone a Git repository, and start coding.\n\n## How It Works\n\nWhen you create a workspace from this template, you select:\n\n1. **Languages** to pre-install (Python, Node.js, Go, Rust, Java, C/C++)\n2. **Editors** to connect (VS Code in the browser, VS Code Desktop, Cursor, JetBrains, Zed, Windsurf)\n3. **A Git repository** to clone (optional)\n\nCoder provisions a workspace with your selections and you can start developing immediately.\n\n## Prerequisites\n\nThe host running Coder must have a Docker daemon accessible to the `coder` user:\n\n```sh\n# Add coder user to Docker group\nsudo adduser coder docker\n\n# Restart Coder server\nsudo systemctl restart coder\n\n# Verify access\nsudo -u coder docker ps\n```\n\n## Architecture\n\nThis template provisions:\n\n- **Docker container** (ephemeral) running Ubuntu with the Coder agent\n- **Docker volume** (persistent) mounted at `/home/coder`\n\nFiles in your home directory persist across workspace restarts. Selected languages are installed on first start and cached for subsequent starts.\n\n## Presets\n\nSelect a preset to auto-fill languages and editors for common workflows:\n\n| Preset | Languages | Editors |\n|---------------------|---------------------|-------------------------------------|\n| **Web Development** | Python, Node.js | VS Code (Browser) |\n| **Backend (Go)** | Go | VS Code (Browser), JetBrains GoLand |\n| **Data Science** | Python | VS Code (Browser) |\n| **Full Stack** | Python, Node.js, Go | VS Code (Browser), Cursor |\n\n## IDE Notes\n\n- **VS Code (Browser)**: Opens directly in your browser with no local install required.\n- **VS Code Desktop, Cursor, Windsurf**: Require the desktop application installed on your local machine. Coder opens them via protocol handler.\n- **JetBrains IDEs**: Filtered by your language selection (e.g. PyCharm for Python, GoLand for Go). Requires JetBrains Toolbox or Gateway on your local machine.\n- **Zed**: Connects over SSH. Requires Zed installed on your local machine.\n" + "markdown": "\n# Coder Quickstart\n\nGet up and running with Coder in minutes. Choose your programming languages, pick your preferred editors, optionally clone a Git repository, and start coding.\n\n## How It Works\n\nWhen you create a workspace from this template, you select:\n\n1. **Languages** to pre-install (Python, Node.js, Go, Rust, Java, C/C++)\n2. **Editors** to connect (VS Code in the browser, Cursor, JetBrains, Zed, Windsurf)\n3. **A Git repository** to clone (optional)\n\nCoder provisions a workspace with your selections and you can start developing immediately.\n\n## Prerequisites\n\nThe host running Coder must have a Docker daemon accessible to the `coder` user:\n\n```sh\n# Add coder user to Docker group\nsudo adduser coder docker\n\n# Restart Coder server\nsudo systemctl restart coder\n\n# Verify access\nsudo -u coder docker ps\n```\n\n## Architecture\n\nThis template provisions:\n\n- **Docker container** (ephemeral) running Ubuntu with the Coder agent\n- **Docker volume** (persistent) mounted at `/home/coder`\n\nFiles in your home directory persist across workspace restarts. Selected languages are installed on first start and cached for subsequent starts.\n\n## Presets\n\nSelect a preset to auto-fill languages and editors for common workflows:\n\n| Preset | Languages | Editors |\n|---------------------|---------------------|-------------------------------------|\n| **Web Development** | Python, Node.js | VS Code (Browser) |\n| **Backend (Go)** | Go | VS Code (Browser), JetBrains GoLand |\n| **Data Science** | Python | VS Code (Browser) |\n| **Full Stack** | Python, Node.js, Go | VS Code (Browser), Cursor |\n\n## IDE Notes\n\n- **VS Code (Browser)**: Opens directly in your browser with no local install required.\n- **VS Code Desktop**: Available on every workspace by default (Coder enables the VS Code Desktop display app automatically), so it is not listed as a separate editor option.\n- **Cursor, Windsurf**: Require the desktop application installed on your local machine. Coder opens them via protocol handler.\n- **JetBrains IDEs**: Filtered by your language selection (e.g. PyCharm for Python, GoLand for Go). Requires JetBrains Toolbox or Gateway on your local machine.\n- **Zed**: Connects over SSH. Requires Zed installed on your local machine.\n" }, { "id": "scratch", diff --git a/examples/templates/quickstart/README.md b/examples/templates/quickstart/README.md index c7f3ebed83..640151b43a 100644 --- a/examples/templates/quickstart/README.md +++ b/examples/templates/quickstart/README.md @@ -16,7 +16,7 @@ Get up and running with Coder in minutes. Choose your programming languages, pic When you create a workspace from this template, you select: 1. **Languages** to pre-install (Python, Node.js, Go, Rust, Java, C/C++) -2. **Editors** to connect (VS Code in the browser, VS Code Desktop, Cursor, JetBrains, Zed, Windsurf) +2. **Editors** to connect (VS Code in the browser, Cursor, JetBrains, Zed, Windsurf) 3. **A Git repository** to clone (optional) Coder provisions a workspace with your selections and you can start developing immediately. @@ -59,6 +59,7 @@ Select a preset to auto-fill languages and editors for common workflows: ## IDE Notes - **VS Code (Browser)**: Opens directly in your browser with no local install required. -- **VS Code Desktop, Cursor, Windsurf**: Require the desktop application installed on your local machine. Coder opens them via protocol handler. +- **VS Code Desktop**: Available on every workspace by default (Coder enables the VS Code Desktop display app automatically), so it is not listed as a separate editor option. +- **Cursor, Windsurf**: Require the desktop application installed on your local machine. Coder opens them via protocol handler. - **JetBrains IDEs**: Filtered by your language selection (e.g. PyCharm for Python, GoLand for Go). Requires JetBrains Toolbox or Gateway on your local machine. - **Zed**: Connects over SSH. Requires Zed installed on your local machine. diff --git a/examples/templates/quickstart/main.tf b/examples/templates/quickstart/main.tf index f8bd2e7cd8..1d84750d04 100644 --- a/examples/templates/quickstart/main.tf +++ b/examples/templates/quickstart/main.tf @@ -87,11 +87,6 @@ data "coder_parameter" "ides" { value = "code-server" icon = "/icon/code.svg" } - option { - name = "VS Code Desktop" - value = "vscode-desktop" - icon = "/icon/code.svg" - } option { name = "Cursor" value = "cursor" @@ -283,14 +278,6 @@ module "code-server" { order = 1 } -module "vscode-desktop" { - count = data.coder_workspace.me.start_count * (contains(local.ides, "vscode-desktop") ? 1 : 0) - source = "registry.coder.com/coder/vscode-desktop/coder" - version = "~> 1.0" - agent_id = coder_agent.main.id - folder = "/home/coder" - order = 2 -} module "cursor" { count = data.coder_workspace.me.start_count * (contains(local.ides, "cursor") ? 1 : 0)