---
name: "gh-repo-create"
section: "1"
platform: "linux"
package: "github-cli"
version: "2.102.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gh-repo-create"
---

# gh-repo-create(1)

Create a new repository

## NAME

gh-repo-create - Create a new repository

## SYNOPSIS

**gh repo create \[\<name\>\] \[flags\]**

## DESCRIPTION

Create a new GitHub repository.

To create a repository interactively, use **gh repo create** with no arguments.

To create a remote repository non-interactively, supply the repository name and one of **--public**, **--private**, or **--internal**. Pass **--clone** to clone the new repository locally.

If the **OWNER/** portion of the **OWNER/REPO** name argument is omitted, it defaults to the name of the authenticating user.

To create a remote repository from an existing local repository, specify the source directory with **--source**. By default, the remote repository name will be the name of the source directory.

Pass **--push** to push any local commits to the new repository. If the repo is bare, this will mirror all refs.

For language or platform .gitignore templates to use with **--gitignore**,  ⟨https://github.com/github/gitignore⟩.

For license keywords to use with **--license**, run **gh repo license list** or visit  ⟨https://choosealicense.com⟩.

The repo is created with the configured repository default branch, see  ⟨https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-user-account-settings/managing-the-default-branch-name-for-your-repositories⟩.

## OPTIONS

- **--add-readme**

  Add a README file to the new repository

- **-c**, **--clone**

  Clone the new repository to the current directory

- **-d**, **--description** **\<string\>**

  Description of the repository

- **--disable-issues**

  Disable issues in the new repository

- **--disable-wiki**

  Disable wiki in the new repository

- **-g**, **--gitignore** **\<string\>**

  Specify a gitignore template for the repository

- **-h**, **--homepage** **\<URL\>**

  Repository home page URL

- **--include-all-branches**

  Include all branches from template repository

- **--internal**

  Make the new repository internal

- **-l**, **--license** **\<string\>**

  Specify an Open Source License for the repository

- **--private**

  Make the new repository private

- **--public**

  Make the new repository public

- **--push**

  Push local commits to the new repository

- **-r**, **--remote** **\<string\>**

  Specify remote name for the new repository

- **-s**, **--source** **\<string\>**

  Specify path to local repository to use as source

- **-t**, **--team** **\<name\>**

  The name of the organization team to be granted access

- **-p**, **--template** **\<repository\>**

  Make the new repository based on a template repository

## ALIASES

gh repo new

## EXIT CODES

0: Successful execution

1: Error

2: Command canceled

4: Authentication required

NOTE: Specific commands may have additional exit codes. Refer to the command's help for more information.

## EXAMPLE

```
# Create a repository interactively
$ gh repo create
# Create a new remote repository and clone it locally
$ gh repo create my-project --public --clone
# Create a new remote repository in a different organization
$ gh repo create my-org/my-project --public
# Create a remote repository from the current directory
$ gh repo create my-project --private --source=. --remote=upstream
```

## SEE ALSO

**[gh-repo(1)](/gh-repo/1.md)**
