New
Discover how Dropbox streamlined dev environments & cut costs by switching 1000 developers to Coder

Read the success story

Deploy Generative AI at scale with one code block using Coder, VS Code Web and GitHub Copilot

author avatar
Tim Quinlan
 on March 4th, 2024

One of the greatest advantages of using a Cloud Development Environment (CDE) such as Coder is the ability to deploy developer tooling at scale quickly in a consistent, stable and secure manner. This blog post covers using GitHub’s Copilot in a Coder workspace. It is available on the Visual Studio Marketplace which makes it a great fit to run in a workspace using Microsoft’s browser-based Visual Studio Code for the Web.

While one can install this extension in desktop VS Code, that method relies on each developer to install the extension and keep it updated. Both Coder Open Source and Coder Enterprise support automatically installing extensions in browser-based IDEs. Although only Coder Enterprise allows platform-wide restrictions to run in browser-only mode. Since the goal of this piece is to show how to deploy extensions at scale in a secure, enterprise-like deployment all the examples are shown in a browser-only mode.

Coder workspaces are defined by declarative Terraform templates. They are very flexible in nature and allow Platform Engineers to deploy tooling following their own best practices. This example shows how to install Visual Studio Code for the Web, along with extensions, using Coder’s module registry. To deploy simply add the VS Code Web’s module code in the highest context of your template and define the extensions to install with the “extensions” array:

1 2 3 4 5 6 7 module "vscode-web" { source = "registry.coder.com/modules/vscode-web/coder" version = "1.0.6" agent_id = coder_agent.main.id extensions = ["github.copilot", "ms-python.python"] accept_license = true }

Build and publish the template and that’s it. With that one addition, all of the VS Code Web users who build/rebuild from this template will have the current version of GitHub Copilot installed and available to use. Let’s see how this works in flow:

There are some considerations for larger deployments, especially in high-security or air-gapped DCs. In these scenarios, tooling is typically baked into the workspace image rather than downloaded on each workspace start. This is fine for installing IDE’s but extensions are typically installed in the user’s home directory. There are a few different ways to install extensions in these environments. Without going into detail on each, the methods are:

  • Host the module and extension somewhere inside your DC and install from there
  • Host the module and extension somewhere on the image and install or run from there
  • Have the users sync their dotfiles with pre-installed extension configurations from a source code repo

Leveraging a CDE to deploy GitHub's Copilot is a leap forward in scalable, secure developer tooling. This blog post has guided you through setting up these tools in a streamlined, enterprise-grade fashion. By adopting the outlined approach, teams can ensure that every member operates with the latest tools and extensions, effortlessly. Embrace this method to elevate your development processes, ensuring your team remains on the cutting edge of technology. Ready to revolutionize your workflow? Dive in and deploy your enhanced development environment today.

Related Content:

Microsoft VS Code Server in a Coder Cloud Development Environment

Introducing Cloud Development Environments to Your Enterprise

CDEs Are Going to Live Up to the Hype

Subscribe to our Newsletter

Want to stay up to date on all things Coder? Subscribe to our monthly newsletter and be the first to know when we release new things!