What are GitHub Codespaces? - GitHub Docs
https://docs.github.com/en/codespaces/about-codespaces/what-are-codespaces • 172 KB fetched
Open original page
What are GitHub Codespaces? - GitHub Docs Skip to main content
GitHub Docs Version: Free, Pro, & Team
Search or ask Copilot Search or ask Copilot
Select language: current language is English
Search or ask Copilot Search or ask Copilot
Open menu
Collapse sidebar Expand sidebar
Scroll breadcrumbs left
* Home
* Codespaces
* Getting started
* What are Codespaces?
Scroll breadcrumbs right
Codespaces
*
*
* Quickstart
* Getting started
* What are Codespaces?
* Codespaces features
* The codespace lifecycle
* Deep dive into Codespaces
* Developing in a codespace
* Develop in a codespace
* Create a codespace for a repo
* Create a codespace from a template
* Delete a codespace
* Open an existing codespace
* Work collaboratively
* Source control
* Pull requests
* Stop a codespace
* Forward ports
* Rebuilding a container
* Default environment variables
* Persist variables and files
* Connecting to a private network
* Machine learning
* Visual Studio Code
* GitHub CLI
* Customizing your codespace
* Rename a codespace
* Change your shell
* Change the machine type
* Setting your user preferences
* Personalize your codespaces
* Set the default editor
* Set the default region
* Set the timeout
* Configure automatic deletion
* Choose the host image
* Setting up your project
* Adding a dev container configuration
* Introduction to dev containers
* Setting up a Node.js project
* Setting up a C# (.NET) project
* Setting up a Java project
* Setting up a PHP project
* Setting up a Python project
* Configuring dev containers
* Set a minimum machine spec
* Adding features
* Automatically opening files
* Specifying recommended secrets
* Setting up your repository
* Facilitating codespace creation
* Set up a template repo
* Prebuilding your codespaces
* About prebuilds
* Configure prebuilds
* Allow external repo access
* Manage prebuilds
* Test dev container changes
* Managing your codespaces
* Codespaces secrets
* Repository access
* Security logs
* GPG verification
* Managing your organization
* Enable or disable Codespaces
* Billing and ownership
* List organization codespaces
* Manage Codespaces costs
* Manage secrets
* Audit logs
* Restrict machine types
* Restrict codespace creation
* Restrict base image
* Restrict port visibility
* Restrict timeout periods
* Restrict the retention period
* Reference
* Access a private registry
* Copilot in Codespaces
* VS Code Command Palette
* Security in Codespaces
* Disaster recovery
* Troubleshooting
* Codespaces logs
* Codespaces clients
* Included usage
* Exporting changes
* Creation and deletion
* Authenticating to repositories
* Connection
* Codespaces prebuilds
* Personalization
* Port forwarding
* GPG verification
* Working with support
* github.dev editor
What are GitHub Codespaces?
Learn about what GitHub Codespaces are.
Copy as Markdown
In this article
* Introduction
* Using GitHub Codespaces
* Billing for Codespaces
Introduction
A codespace is a development environment that's hosted in the cloud. You can customize your project for GitHub 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. See Introduction to dev containers .
Each codespace you create is hosted by GitHub in a Docker container, running on a virtual machine. You can choose from a selection of virtual machine types, from 2 cores, 8 GB RAM, and 32 GB storage, up to 32 cores, 128 GB RAM, and 128 GB storage.
By default, the codespace development environment is created from an Ubuntu Linux image that includes a selection of popular languages and tools, but you can use an image based on a Linux distribution of your choice and configure it for your particular requirements. Regardless of your local operating system, your codespace will run in a Linux environment. Windows and macOS are not supported operating systems for the remote development container.
You can connect to your codespaces from your browser, from Visual Studio Code, or by using GitHub CLI. When you connect, you are placed within the Docker container. You have limited access to the outer Linux virtual machine host.
Using GitHub Codespaces
To begin developing using cloud-based compute resources, you can create a codespace from a template or from any branch or commit in a repository. When you create a codespace from a template, you can start from a blank template or choose a template suitable for the work you're doing.
To get started with GitHub Codespaces, see Quickstart for GitHub Codespaces . For more information on creating a codespace, see Creating a codespace for a repository or Creating a codespace from a template . If you want to return to a codespace you've already created, see Opening an existing codespace . To learn more about how GitHub Codespaces works, see Deep dive into GitHub Codespaces .
Using codespaces owned by your personal account
All personal GitHub accounts have a monthly quota of free use of GitHub Codespaces included in the Free or Pro plan. You can get started using GitHub Codespaces on your personal account without changing any settings or providing payment details.
If you create a codespace from an organization-owned repository, use of the codespace will either be charged to the organization (if the organization is configured for this), or to your personal account.
You can continue using GitHub Codespaces beyond your monthly included storage and compute usage by providing payment details and setting a spending limit. See GitHub Codespaces billing .
Using organization-owned codespaces
Owners of organizations on GitHub Team and GitHub Enterprise plans can pay for their members' and collaborators' use of GitHub Codespaces. This applies to codespaces created from repositories owned by the organization. See Choosing who owns and pays for codespaces in your organization . You can set a spending limit for use of GitHub Codespaces on your organization or enterprise account. See Setting up budgets to control spending on metered products .
If use of a codespace will be billed to an organization or enterprise, this is shown when the codespace is created. See Creating a codespace for a repository . Codespaces that are billed to an organization, or its parent enterprise, are owned by the organization and can be deleted by an organization owner. See Deleting a codespace .
Your ability to create codespaces from organization-owned repositories depends on several factors, including the repository's visibility and the settings of the organization or its parent enterprise. For more information, see Troubleshooting creation and deletion of codespaces .
Customizing GitHub Codespaces
To customize the runtimes and tools in your codespace, you can create one or more dev container configurations for your repository. Adding dev container configurations to your repository allows you to define a choice of different development environments that are appropriate for the work people will do in your repository.
If you create a codespace from a repository without any dev container configurations, GitHub Codespaces will clone your repository into an environment with the default dev container image that includes many tools, languages, and runtime environments. If you create a codespace from a template, you might start with some initial configuration on top of the default image. See Introduction to dev containers .
You can personalize aspects of your codespace environment by using a public dotfiles repository. You can use dotfiles to set shell aliases and preferences, or to install your personal preference of the tools you like to use. If you use GitHub Codespaces in the browser, or in Visual Studio Code, you can use Settings Sync to give your codespace editor the same settings, keyboard shortcuts, snippets, and extensions that you have set up in your local installation of Visual Studio Code.
See Customizing your codespace .
Billing for Codespaces
For information on pricing, storage, and usage for GitHub Codespaces, see GitHub Codespaces billing .
If your account does not have a valid payment method on file, usage is blocked once you use up your quota.
If you have a valid payment method on file, spending may be limited by one or more budgets. Check the budgets set for your account to ensure they are appropriate for your usage needs. See Setting up budgets to control spending on metered products .
Costs for GitHub Codespaces are always billed monthly, even if your account is otherwise billed annually. For information on how organizations owners and billing managers can manage the spending limit for GitHub Codespaces for an organization, see Setting up budgets to control spending on metered products .
Back to top
Help and support
Was this Doc helpful?
Yes No
Help us make GitHub Docs great!
All Docs are open source. See something that's wrong or unclear? Submit a pull request.
Make a contribution
Still need help?
Provide GitHub Feedback Contact support Expert services Blog
GitHub Inc. © 2026 Terms Privacy Status Pricing
Links found on this page
- Skip to main content [direct]
- GitHub Docs [direct]
- Codespaces [direct]
- Getting started [direct]
- Quickstart [direct]
- Codespaces features [direct]
- The codespace lifecycle [direct]
- Deep dive into Codespaces [direct]
- Develop in a codespace [direct]
- Create a codespace for a repo [direct]
- Create a codespace from a template [direct]
- Delete a codespace [direct]
- Open an existing codespace [direct]
- Work collaboratively [direct]
- Source control [direct]
- Pull requests [direct]
- Stop a codespace [direct]
- Forward ports [direct]
- Rebuilding a container [direct]
- Default environment variables [direct]
- Persist variables and files [direct]
- Connecting to a private network [direct]
- Machine learning [direct]
- Visual Studio Code [direct]
- GitHub CLI [direct]
- Rename a codespace [direct]
- Change your shell [direct]
- Change the machine type [direct]
- Personalize your codespaces [direct]
- Set the default editor [direct]
- Set the default region [direct]
- Set the timeout [direct]
- Configure automatic deletion [direct]
- Choose the host image [direct]
- Introduction to dev containers [direct]
- Setting up a Node.js project [direct]
- Setting up a C# (.NET) project [direct]
- Setting up a Java project [direct]
- Setting up a PHP project [direct]
- Setting up a Python project [direct]
- Set a minimum machine spec [direct]
- Adding features [direct]
- Automatically opening files [direct]
- Specifying recommended secrets [direct]
- Facilitating codespace creation [direct]
- Set up a template repo [direct]
- About prebuilds [direct]
- Configure prebuilds [direct]
- Allow external repo access [direct]
- Manage prebuilds [direct]
- Test dev container changes [direct]
- Codespaces secrets [direct]
- Repository access [direct]
- Security logs [direct]
- GPG verification [direct]
- Enable or disable Codespaces [direct]
- Billing and ownership [direct]
- List organization codespaces [direct]
- Manage Codespaces costs [direct]
- Manage secrets [direct]
- Audit logs [direct]
- Restrict machine types [direct]
- Restrict codespace creation [direct]
- Restrict base image [direct]
- Restrict port visibility [direct]
- Restrict timeout periods [direct]
- Restrict the retention period [direct]
- Access a private registry [direct]
- Copilot in Codespaces [direct]
- VS Code Command Palette [direct]
- Security in Codespaces [direct]
- Disaster recovery [direct]
- Codespaces logs [direct]
- Codespaces clients [direct]
- Included usage [direct]
- Exporting changes [direct]
- Creation and deletion [direct]
- Authenticating to repositories [direct]
- Connection [direct]
- Codespaces prebuilds [direct]