Visual Studio Codespaces

Visual Studio Codespaces provides cloud-powered development environments for any activity - whether it’s a long-term project, or a short-term task like reviewing a pull request. You can work with these environments from three possible clients: Visual Studio Code, a browser-based editor, or the Visual Studio IDE (currently in Private Preview).

Visual Studio Codespaces extension

Environments

An environment is the “backend” half of Visual Studio Codespaces. It’s where all of the compute associated with software development happens: compiling, debugging, restoring, etc. When you need to work on a new project, pick up a new task, or review a PR, you can simply spin up a Cloud-hosted environment, and Visual Studio Codespaces takes care of configuring it correctly. It automatically configures everything you need to work on your project: the source code, runtime, compiler, debugger, editor, custom dotfile configurations, relevant editor extensions and more.

Customization

Visual Studio Codespaces are fully customizable on a per project basis. This is accomplished by including a devcontainer.json file in the project’s repository, similar to VS Code Remote Container development.

Example customizations include:

  • Setting which Linux-based operating system to use.
  • Automatically installing various tools, runtimes, and frameworks.
  • Forwarding commonly used ports.
  • Setting environment variables.
  • Configuring editor settings and installing preferred extensions.

See the Codespace Configuring documentation for Codespace-specific devcontainer.json settings.

Dotfile per user configuration

Dotfiles are files whose filename begins with a dot (.). They typically contain configuration information for applications and can control how terminals, editors, source control, and various other tools behave. .bashrc, .gitignore and .editorconfig are examples of dotfiles commonly used by developers.

You can specify a GitHub repo containing your dotfiles, a target location for the files, as well as install commands when creating a Codespace.

See the Codespace Personalizing documentation to learn how to add your dotfile configurations to a Codespace.

Getting started

The Visual Studio Codespaces documentation has Quickstarts for all three clients. The Quickstarts will fast-track you through signing in to Visual Studio Codespaces, creating your first environment, and connecting to it with your preferred client:

How-to guides

In addition to the Quickstarts, there are How-to guides, which go into more detail about managing and configuring your environments:

Self-hosted environments

If you already have a working development environment, you can connect your own self-hosted environments to Visual Studio Codespaces. This lets you and your team have the same consistent development experience, whether you are working on a managed cloud-hosted environment or your own infrastructure.

Extension authors

The VS Code extension API hides most of the implementation details of running remotely so many extensions will just work in Visual Studio Codespaces environments without any modification. However, we recommend that you test your extension in a Codespace to be sure that all of its functionality works as expected. See the article on Supporting Remote Development and Visual Studio Codespaces for details.

Questions or feedback

If you have questions, you can consult the Visual Studio Codespaces Troubleshooting guide and FAQ. If you want to provide Feedback, you can enter issues in the Visual Studio Codespaces GitHub repository.