About machine types
Typically, you can run your codespace on a choice of remote machine types. These machine types offer a choice of hardware specifications ranging from 2 cores to 32 cores, although the full range of machine types may not always be available. Each machine type has a different level of resources and a different billing tier. For information, see "About billing for GitHub Codespaces."
By default the machine type with the lowest valid resources is used when you create a codespace. You can choose an alternative machine type either when you create a codespace or at any time after you've created a codespace.
For information on choosing a machine type when you create a codespace, see "Creating a codespace for a repository."
Unpublished codespaces (codespaces created from a template that are not linked to a repository on GitHub Enterprise Cloud) always run on a virtual machine with the same specifications. You can't change the machine type of an unpublished codespace. For more information, see "Creating a codespace from a template."
Changing the machine type
Note: Your choice of available machine types may be limited by a number of factors. These can include a policy configured for your organization, or a minimum machine type specification for your repository. For more information, see "Restricting access to machine types" and "Setting a minimum specification for codespace machines."
-
Navigate to the "Your codespaces" page at github.com/codespaces.
The number of cores, and the currently used storage space, are displayed for each codespace. Hover over the number of cores to display a tooltip that also shows the RAM and disk capacity of the machine.
-
Click the ellipsis (...) to the right of the codespace you want to modify.
-
Click Change machine type.
-
If multiple machine types are available for your codespace, choose the type of machine you want to use.
-
Click Update codespace.
-
In VS Code, open the Command Palette with Command+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux).
-
Search for and select "Codespaces: Change Machine Type."
-
If you're not following these instructions within a codespace, click the codespace that you want to change.
If you are following these instructions in a codespace, the change will apply to the codespace you're working in.
-
Select the machine type you want to use.
-
If you're changing to a machine type with a different storage capacity, a prompt will appear asking if you would like to continue. Read the prompt and click Yes to accept.
You can use the gh codespace edit --machine MACHINE-TYPE-NAME
GitHub CLI command to change the machine type of a codespace. To use this command, you'll first need to find out the available machine types for your codespace.
-
To view your list of codespaces, in a terminal, enter the following command.
gh codespace list
-
Optionally, to find the current machine type for a codespace, enter the following command.
gh api /user/codespaces/CODESPACE-NAME
Replace
CODESPACE-NAME
with the permanent name of the codespace, for exampleoctocat-literate-space-parakeet-mld5
. The permanent names are listed under the NAME column in the list returned bygh codespace list
.If you're prompted to request the
codespace
scope, follow the instructions in the terminal.Details for the current machine are listed under the
machine
field. -
To find the available machine types for a codespace, enter the following command.
gh api /user/codespaces/CODESPACE-NAME/machines
Replace
CODESPACE-NAME
with the permanent name of the codespace, for exampleoctocat-literate-space-parakeet-mld5
. -
To change the machine type for a codespace, enter the following command.
gh codespace edit --machine MACHINE-TYPE-NAME
Replace
MACHINE-TYPE-NAME
with the name of an available machine type for your codespace, for examplestandardLinux32gb
. -
Using the arrow keys, navigate to the codespace you want to change, then press Enter.
If you changed to a virtual machine with a different storage capacity (for example, from 64GB to 32GB), your codespace will be unavailable for a short time while the machine type is changed. If the codespace is currently active, it will automatically be stopped. When the change is complete, you'll be able to restart the codespace running on the new machine type.
If you changed to a virtual machine with the same storage capacity, the change will be applied the next time you restart the codespace. An active codespace will not be stopped automatically. For more information on restarting a codespace, see "Stopping and starting a codespace."
Further reading
- "Codespaces machines" in the REST API documentation
gh codespace edit
in the GitHub CLI manual