This version of this article is for using repository custom instructions with the GitHub Copilot CLI. Click the tabs above for instructions on using custom instructions in other environments.
Creating custom instructions
GitHub Copilot supports three types of repository custom instructions.
-
Repository-wide custom instructions, which apply to all requests made in the context of a repository.
These are specified in a
copilot-instructions.mdfile in the.githubdirectory of the repository. See Creating repository-wide custom instructions. -
Path-specific custom instructions, which apply to requests made in the context of files that match a specified path.
These are specified in one or more
NAME.instructions.mdfiles within or below the.github/instructionsdirectory in the repository. See Creating path-specific custom instructions.If the path you specify matches a file that Copilot is working on, and a repository-wide custom instructions file also exists, then the instructions from both files are used. You should avoid potential conflicts between instructions as Copilot's choice between conflicting instructions is non-deterministic.
-
Agent instructions are used by AI agents.
You can create one or more
AGENTS.mdfiles, stored anywhere within the repository. When Copilot is working, the nearestAGENTS.mdfile in the directory tree will take precedence. For more information, see the openai/agents.md repository.Alternatively, you can use a single
CLAUDE.mdorGEMINI.mdfile stored in the root of the repository.
Creating repository-wide custom instructions
-
In the root of your repository, create a file named
.github/copilot-instructions.md.Create the
.githubdirectory if it does not already exist. -
Add natural language instructions to the file, in Markdown format.
Whitespace between instructions is ignored, so the instructions can be written as a single paragraph, each on a new line, or separated by blank lines for legibility.
Creating path-specific custom instructions
-
Create the
.github/instructionsdirectory if it does not already exist. -
Create one or more
NAME.instructions.mdfiles, whereNAMEindicates the purpose of the instructions. The file name must end with.instructions.md. -
At the start of the file, create a frontmatter block containing the
applyTokeyword. Use glob syntax to specify what files or directories the instructions apply to.For example:
--- applyTo: "app/models/**/*.rb" ---You can specify multiple patterns by separating them with commas. For example, to apply the instructions to all TypeScript files in the repository, you could use the following frontmatter block:
--- applyTo: "**/*.ts,**/*.tsx" ---Glob examples:
*- will all match all files in the current directory.**or**/*- will all match all files in all directories.*.py- will match all.pyfiles in the current directory.**/*.py- will recursively match all.pyfiles in all directories.src/*.py- will match all.pyfiles in thesrcdirectory. For example,src/foo.pyandsrc/bar.pybut notsrc/foo/bar.py.src/**/*.py- will recursively match all.pyfiles in thesrcdirectory. For example,src/foo.py,src/foo/bar.py, andsrc/foo/bar/baz.py.**/subdir/**/*.py- will recursively match all.pyfiles in anysubdirdirectory at any depth. For example,subdir/foo.py,subdir/nested/bar.py,parent/subdir/baz.py, anddeep/parent/subdir/nested/qux.py, but notfoo.pyat a path that does not contain asubdirdirectory.
-
Optionally, to prevent the file from being used by either Copilot coding agent or Copilot code review, add the
excludeAgentkeyword to the frontmatter block. Use either"code-review"or"coding-agent".For example, the following file will only be read by Copilot coding agent.
--- applyTo: "**" excludeAgent: "code-review" ---If the
excludeAgentkeyword is not included in the front matterblock, both Copilot code review and Copilot coding agent will use your instructions. -
Add your custom instructions in natural language, using Markdown format. Whitespace between instructions is ignored, so the instructions can be written as a single paragraph, each on a new line, or separated by blank lines for legibility.
Repository custom instructions in use
The instructions in the file(s) are available for use by Copilot as soon as you save the file(s). The complete set of instructions will be automatically added to requests that you submit to Copilot in the context of that repository. For example, they are added to the prompt you submit to Copilot Chat.
Further reading
- Support for different types of custom instructions
- Custom instructions—a curated collection of examples
- Using custom instructions to unlock the power of Copilot code review