A codespace is a development environment that's hosted in the cloud. You can customize your project for Codespaces by committing configuration files to your repository (often known as Configuration-as-Code), which creates a repeatable codespace configuration for all users of your project.
Codespaces run on a variety of VM-based compute options hosted by GitHub, that you can configure from 2 core machines up to 32 core machines. You can connect to your codespaces from the browser or locally using Visual Studio Code.
You can create a codespace from any branch or commit in your repository and begin developing using cloud-based compute resources.
To customize the runtimes and tools in your codespace, you can create a custom configuration to define an environment (or dev container) that is specific for your repository. Using a dev container allows you to specify a Docker environment for development with a well-defined tool and runtime stack that can reference an image, Dockerfile, or docker-compose. This means that anyone using the repository will have the same tools available to them when they create a codespace.
If you don't do any custom configuration, Codespaces will clone your repository into an environment with the default codespace image that includes many tools, languages, and runtime environments. For more information, see "Configuring Codespaces for your project".
You can also personalize aspects of your codespace environment by using a public dotfiles repository and Settings Sync. Personalization can include shell preferences, additional tools, editor settings, and VS Code extensions. For more information, see "Customizing your codespace".
Codespaces is free to use during the beta. When Codespaces becomes generally available, you will be billed for storage and compute usage. For more information, see "About billing for Codespaces."
A limited number of people will be invited to join the beta. To join the waitlist, see Sign up for the Codespaces beta.