GH-REPO-CREATE(1) GitHub CLI manual GH-REPO-CREATE(1)

# [NAME](#NAME)

gh-repo-create - Create a new repository

# [SYNOPSIS](#SYNOPSIS)

**gh repo create \[&lt;name&gt;] \[flags]**

# [DESCRIPTION](#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](#OPTIONS)

[**--add-readme**](#add_readme)

Add a README file to the new repository

[**-c**, **--clone**](#c)

Clone the new repository to the current directory

[**-d**, **--description** **&lt;string&gt;**](#d)

Description of the repository

[**--disable-issues**](#disable_issues)

Disable issues in the new repository

[**--disable-wiki**](#disable_wiki)

Disable wiki in the new repository

[**-g**, **--gitignore** **&lt;string&gt;**](#g)

Specify a gitignore template for the repository

[**-h**, **--homepage** **&lt;URL&gt;**](#h)

Repository home page URL

[**--include-all-branches**](#include_all_branches)

Include all branches from template repository

[**--internal**](#internal)

Make the new repository internal

[**-l**, **--license** **&lt;string&gt;**](#l)

Specify an Open Source License for the repository

[**--private**](#private)

Make the new repository private

[**--public**](#public)

Make the new repository public

[**--push**](#push)

Push local commits to the new repository

[**-r**, **--remote** **&lt;string&gt;**](#r)

Specify remote name for the new repository

[**-s**, **--source** **&lt;string&gt;**](#s)

Specify path to local repository to use as source

[**-t**, **--team** **&lt;name&gt;**](#t)

The name of the organization team to be granted access

[**-p**, **--template** **&lt;repository&gt;**](#p)

Make the new repository based on a template repository

# [ALIASES](#ALIASES)

gh repo new

# [EXIT CODES](#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](#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](#SEE_ALSO)

[**gh-repo(1)**](/man/os/gh/gh-repo.1)

Oct 2026

---

Document: gh-repo-create(1) from gh 2.103.3-r1 (Chainguard OS)
Source: https://github.com/cli/cli
