| name | project-setup |
| description | Provides information about how to setup various kinds of projects. Useful for initializing projects based on requirements and scaffolding the project. |
How to setup a project
Determine what kind of project the user wants to create, then based on that, choose which setup info below to follow. Only setup a project if the folder is empty or if you've just called the tool first calling the tool to create a workspace.
vscode-extension
A template for creating a VS Code extension using Yeoman and Generator-Code.
Run this command:
npx --package yo --package generator-code -- yo code . --skipOpen
The command has the following arguments:
-t, --extensionType: Specify extension type: ts, js, command-ts, command-js, colortheme, language, snippets, keymap, extensionpack, localization, commandweb, notebook. Defaults to ts
-n, --extensionDisplayName: Set the display name of the extension.
--extensionId: Set the unique ID of the extension. Do not select this option if the user has not requested a unique ID.
--extensionDescription: Provide a description for the extension.
--pkgManager: Specify package manager: npm, yarn, or pnpm. Defaults to npm.
--bundler: Bundle the extension using webpack or esbuild.
--gitInit: Initialize a Git repository for the extension.
--snippetFolder: Specify the location of the snippet folder.
--snippetLanguage: Set the language for snippets.
Rules
- Do not remove any arguments from the command. Only add arguments if the user requests them.
- Call the tool
copilot_getVSCodeAPI with the users query to get the relevant references.
- After the tool
copilot_getVSCodeAPI has completed, only then begin to modify the project.
next-js
A React based framework for building server-rendered web applications.
Run this command:
npx create-next-app@latest .
The command has the following arguments:
--ts, --typescript: Initialize as a TypeScript project. This is the default.
--js, --javascript: Initialize as a JavaScript project.
--tailwind: Initialize with Tailwind CSS config. This is the default.
--eslint: Initialize with ESLint config.
--app: Initialize as an App Router project.
--src-dir: Initialize inside a 'src/' directory.
--turbopack: Enable Turbopack by default for development.
--import-alias <prefix/*>: Specify import alias to use.(default is "@/*")
--api: Initialize a headless API using the App Router.
--empty: Initialize an empty project.
--use-npm: Explicitly tell the CLI to bootstrap the application using npm.
--use-pnpm: Explicitly tell the CLI to bootstrap the application using pnpm.
--use-yarn: Explicitly tell the CLI to bootstrap the application using Yarn.
--use-bun: Explicitly tell the CLI to bootstrap the application using Bun.
vite
A front end build tool for web applications that focuses on speed and performance. Can be used with React, Vue, Preact, Lit, Svelte, Solid, and Qwik.
Run this command:
npx create-vite@latest .
The command has the following arguments:
-t, --template NAME: Use a specific template. Available templates: vanilla-ts, vanilla, vue-ts, vue, react-ts, react, react-swc-ts, react-swc, preact-ts, preact, lit-ts, lit, svelte-ts, svelte, solid-ts, solid, qwik-ts, qwik
mcp-server
A Model Context Protocol (MCP) server project. This project supports multiple programming languages including TypeScript, JavaScript, Python, C#, Java, and Kotlin.
Rules
- First, visit https://github.com/modelcontextprotocol to find the correct SDK and setup instructions for the requested language. Default to TypeScript if no language is specified.
- Use the
copilot_fetchWebPage tool to find the correct implementation instructions from https://modelcontextprotocol.io/llms-full.txt
- Update the copilot-instructions.md file in the .github directory to include references to the SDK documentation
- Create an
mcp.json file in the .vscode folder in the project root with the following content: { "servers": { "mcp-server-name": { "type": "stdio", "command": "command-to-run", "args": [list-of-args] } } }.
- mcp-server-name: The name of the MCP server. Create a unique name that reflects what this MCP server does.
- command-to-run: The command to run to start the MCP server. This is the command you would use to run the project you just created.
- list-of-args: The arguments to pass to the command. This is the list of arguments you would use to run the project you just created.
- Install any required VS Code extensions based on the chosen language (e.g., Python extension for Python projects).
- Inform the user that they can now debug this MCP server using VS Code.
python-script
A simple Python script project which should be chosen when just a single script wants to be created.
Required extensions: ms-python.python, ms-python.vscode-python-envs
Rules
- Call the tool
copilot_runVscodeCommand to correctly create a new Python script project in VS Code. Call the command with the following arguments.
Note that "python-script" and "true" are constants while "New Project Name" and "/path/to/new/project" are placeholders for the project name and path respectively.
{
"name": "python-envs.createNewProjectFromTemplate",
"commandId": "python-envs.createNewProjectFromTemplate",
"args": [
"python-script",
"true",
"New Project Name",
"/path/to/new/project"
]
}
python-package
A Python package project which can be used to create a distributable package.
Required extensions: ms-python.python, ms-python.vscode-python-envs
Rules
- Call the tool
copilot_runVscodeCommand to correctly create a new Python package project in VS Code. Call the command with the following arguments.
Note that "python-package" and "true" are constants while "New Package Name" and "/path/to/new/project" are placeholders for the package name and path respectively.
{
"name": "python-envs.createNewProjectFromTemplate",
"commandId": "python-envs.createNewProjectFromTemplate",
"args": [
"python-package",
"true",
"New Package Name",
"/path/to/new/project"
]
}