Creating a codespace

You can create a codespace for a branch in a repository to develop online.

Codespaces are available for repositories owned by organizations using GitHub Team and GitHub Enterprise Cloud.

Codespaces is available for organizations using GitHub Team or GitHub Enterprise Cloud. For more information, see "GitHub's products."

About codespace creation

You can create a codespace on GitHub.com, in Visual Studio Code, or by using GitHub CLI. Each codespace you create is only available to you. No one else can work in your codespace.

Codespaces are associated with a specific branch of a repository and the repository cannot be empty. You can create more than one codespace per repository or even per branch. However, each user account has a limit of 10 codespaces. If you've reached the limit and want to create a new codespace, you must delete a codespace first. For more information, see "Deleting a codespace."

When you create a codespace, a number of steps happen to create and connect you to your development environment:

  • Step 1: VM and storage are assigned to your codespace.
  • Step 2: Container is created and your repository is cloned.
  • Step 3: You can connect to the codespace.
  • Step 4: Codespace continues with post-creation setup.

For more information on what happens when you create a codespace, see "Deep Dive."

For more information on the lifecycle of a codespace, see "Codespaces lifecycle."

If you want to use Git hooks for your codespace, then you should set up hooks using the devcontainer.json lifecycle scripts, such as postCreateCommand, during step 4. Since your codespace container is created after the repository is cloned, any git template directory configured in the container image will not apply to your codespace. Hooks must instead be installed after the codespace is created. For more information on using postCreateCommand, see the devcontainer.json reference in the Visual Studio Code documentation.

You can edit code, debug, and use Git commands while developing in a codespace with Visual Studio Code. For more information, see the Visual Studio Code documentation.

You can see every available codespace that you have created at github.com/codespaces.

Access to Codespaces

Codespaces are available for repositories owned by organizations using GitHub Team and GitHub Enterprise Cloud.

When you have access to Codespaces, you'll see a "Codespaces" tab within the Code drop-down menu when you view a repository.

You'll have access to codespaces under the following conditions:

  • You are a member of an organization that has enabled Codespaces and set a spending limit.
  • An organization owner has granted you access to Codespaces.
  • The repository is owned by the organization that has enabled Codespaces.

Note: Individuals who have already joined the beta with their personal GitHub account will not lose access to Codespaces, however Codespaces for individuals will continue to remain in beta.

Organization owners can allow all members of the organization to create codespaces, limit codespace creation to selected organization members, or disable codespace creation. For more information about managing access to codespaces within your organization, see "Enable Codespaces for users in your organization."

Before Codespaces can be used in an organization, an owner or billing manager must have set a spending limit. For more information, see "About spending limits for Codespaces."

If you would like to create a codespace for a repository owned by your personal account or another user, and you have permission to create repositories in an organization that has enabled Codespaces, you can fork user-owned repositories to that organization and then create a codespace for the fork.

Creating a codespace

  1. On GitHub.com, navigate to the main page of the repository.

  2. Under the repository name, use the "Branch" drop-down menu, and select the branch you want to create a codespace for.

    Branch drop-down menu

  3. Under the repository name, use the Code drop-down menu, and in the Codespaces tab, click New codespace.

    New codespace button

    If you are a member of an organization and are creating a codespace on a repository owned by that organization, you can select the option of a different machine type. From the dialog, choose a machine type and then click Create codespace. Machine type choice

After you connect your account on GitHub.com to the GitHub Codespaces extension, you can create a new codespace.

  1. In Visual Studio Code, in the left sidebar, click the Remote Explorer icon. The Remote Explorer icon in Visual Studio Code

  2. Click the Add icon, then click Create New Codespace.

    The Create new Codespace option in Codespaces

  3. Type, then click the repository's name you want to develop in.

    Searching for repository to create a new Codespaces

  4. Click the branch you want to develop on.

    Searching for a branch to create a new Codespaces

  5. Click the machine type you want to develop in.

    Instance types for a new Codespaces

To learn more about GitHub CLI, see "About GitHub CLI."

To create a new codespace, use the gh codespace create subcommand.

gh codespace create 

You are prompted to choose a repository, a branch, and a machine type (if more than one is available).

Alternatively, you can use flags to specify some or all of the options:

gh codespace create -r owner/repo -b branch -m machine-type 

Replace owner/repo with the repository identifier. Replace branch with the name of the branch, or the full SHA hash of the commit, that you want to be initially checked out in the codespace. If you use the -r flag without the b flag, the codespace is created from the default branch.

Replace machine-type with a valid identifier for an available machine type. Identifiers are strings such as: basicLinux32gb and standardLinux32gb. The type of machines that are available depends on the repository, your user account, and your location. If you enter an invalid or unavailable machine type, the available types are shown in the error message. If you omit this flag and more than one machine type is available you will be prompted to choose one from a list.

For more information about this command, see the GitHub CLI manual.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.