참고 항목
터미널에 입력 copilot plugin [SUBCOMMAND] --help 하여 플러그 인 사용에 대한 도움말을 찾을 수 있습니다.
CLI 명령
터미널에서 다음 명령을 사용하여 부조종사 CLI에 대한 플러그 인을 관리할 수 있습니다.
| Command | Description |
|---|---|
copilot plugin install SPECIFICATION | 플러그 인을 설치합니다. 아래 명령의 플러그 인 사양을 install 참조하세요. |
copilot plugin uninstall NAME | 플러그 인 제거 |
copilot plugin list | 설치된 플러그 인 나열 |
copilot plugin update NAME | 플러그 인 업데이트 |
copilot plugin marketplace add SPECIFICATION | 마켓플레이스 등록 |
copilot plugin marketplace list | 등록된 마켓플레이스 나열 |
copilot plugin marketplace browse NAME | 마켓플레이스 플러그 인 찾아보기 |
copilot plugin marketplace remove NAME | 마켓플레이스 등록 취소 |
명령에 대한 install 플러그 인 사양
| 포맷 | 예시 | Description |
|---|---|---|
| 마켓플레이스 | plugin@marketplace | 등록된 마켓플레이스에서 플러그 인 |
| GitHub | OWNER/REPO | GitHub 리포지토리의 루트 |
| GitHub 서브디렉토리 | OWNER/REPO:PATH/TO/PLUGIN | 리포지토리의 하위 디렉터리 |
| Git URL | https://github.com/o/r.git | 모든 Git URL |
| 로컬 경로 |
`./my-plugin` 또는 `/abs/path` | 로컬 디렉터리 |
plugin.json
모든 플러그 인은 플러그 인 디렉터리의 루트에 있는 plugin.json 매니페스트 파일을 포함하는 플러그 인 디렉터리로 구성됩니다.
GitHub Copilot 명령 줄 인터페이스 (CLI)에 대한 플러그 인 만들기을(를) 참조하세요.
필수 필드
| 분야 | 유형 | Description |
|---|---|---|
name | 문자열 | Kebab-case 플러그 인 이름(문자, 숫자, 하이픈만 해당). 최대 64자 |
선택적 메타데이터 필드
| 분야 | 유형 | Description |
|---|---|---|
description | 문자열 | 간략한 설명입니다. 최대 1024자 |
version | 문자열 | 의미 체계 버전(예: 1.0.0). |
author | 객체 |
`name` (필수), `email` (선택 사항), `url` (선택 사항) |
| homepage | 문자열 | 플러그 인 홈페이지 URL입니다. |
| repository | 문자열 | 원본 리포지토리 URL입니다. |
| license | 문자열 | 라이선스 식별자(예: MIT). |
| keywords | 문자열[] | 키워드를 검색합니다. |
| category | 문자열 | 플러그 인 범주입니다. |
| tags | 문자열[] | 추가 태그입니다. |
구성 요소 경로 필드
그러면 플러그 인의 구성 요소를 찾을 수 있는 위치를 CLI에 알립니다. 모두 선택 사항입니다. 생략하면 CLI는 기본 규칙을 사용합니다.
| 분야 | 유형 | Default | Description |
|---|---|---|---|
agents | string | string[] | agents/ | 에이전트 디렉터리(.agent.md 파일)에 대한 경로입니다. |
skills | string | string[] | skills/ | 기술 디렉터리(SKILL.md 파일)에 대한 경로입니다. |
commands | string | string[] | — | 명령 디렉터리에 대한 경로입니다. |
hooks | string | 개체 | — | 후크 구성 파일 또는 인라인 후크 개체의 경로입니다. |
mcpServers | string | 개체 | — | MCP 구성 파일(예: .mcp.json) 또는 인라인 서버 정의에 대한 경로입니다. |
lspServers | string | 개체 | — | LSP 구성 파일 또는 인라인 서버 정의에 대한 경로입니다. |
예제 plugin.json 파일
{
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "[email protected]"
},
"license": "MIT",
"keywords": ["react", "frontend"],
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "[email protected]"
},
"license": "MIT",
"keywords": ["react", "frontend"],
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
marketplace.json
리포지토리의 .github/plugin/ 디렉터리에 marketplace.json 파일을 만들어 저장하면, 사람들이 플러그인을 검색하고 설치할 수 있는 플러그인 마켓플레이스를 만들 수 있습니다. 파일을 로컬 파일 시스템에 저장할 수도 있습니다 marketplace.json. 예를 들어 파일을 다음과 같이 /PATH/TO/my-marketplace/.github/plugin/marketplace.json 저장하면 다음 명령을 사용하여 CLI에 파일을 추가할 수 있습니다.
copilot plugin marketplace add /PATH/TO/my-marketplace
참고 항목
부조종사 CLI는 .claude-plugin/ 디렉터리에서 marketplace.json 파일을 또한 찾습니다.
자세한 내용은 GitHub Copilot 명령 줄 인터페이스 (CLI)에 대한 플러그 인 마켓플레이스 만들기을(를) 참조하세요.
예제 marketplace.json 파일
{
"name": "my-marketplace",
"owner": {
"name": "Your Organization",
"email": "[email protected]"
},
"metadata": {
"description": "Curated plugins for our team",
"version": "1.0.0"
},
"plugins": [
{
"name": "frontend-design",
"description": "Create a professional-looking GUI ...",
"version": "2.1.0",
"source": "./plugins/frontend-design"
},
{
"name": "security-checks",
"description": "Check for potential security vulnerabilities ...",
"version": "1.3.0",
"source": "./plugins/security-checks"
}
]
}
{
"name": "my-marketplace",
"owner": {
"name": "Your Organization",
"email": "[email protected]"
},
"metadata": {
"description": "Curated plugins for our team",
"version": "1.0.0"
},
"plugins": [
{
"name": "frontend-design",
"description": "Create a professional-looking GUI ...",
"version": "2.1.0",
"source": "./plugins/frontend-design"
},
{
"name": "security-checks",
"description": "Check for potential security vulnerabilities ...",
"version": "1.3.0",
"source": "./plugins/security-checks"
}
]
}
참고 항목
각 플러그 인에 source 대한 필드 값은 리포지토리의 루트를 기준으로 플러그 인 디렉터리의 경로입니다. 경로의 시작 부분에 사용할 ./ 필요는 없습니다. 예를 들어 "./plugins/plugin-name"와 "plugins/plugin-name"은 동일한 디렉터리로 해결됩니다.
`marketplace.json` 필드
최상위 필드
| 분야 | 유형 | 필수 | Description |
|---|---|---|---|
name | 문자열 | 네 | 케밥형 마켓플레이스 이름입니다. 최대 64자 |
owner | 객체 | 네 |
`{ name, email? }` — 마켓플레이스 소유자 정보입니다. |
| plugins | 배열 | 네 | 플러그 인 항목 목록(아래 표 참조). |
| metadata | 객체 | 아니오 | { description?, version?, pluginRoot? } |
플러그 인 항목 필드(배열 내의 plugins 개체)
| 분야 | 유형 | 필수 | Description |
|---|---|---|---|
name | 문자열 | 네 | Kebab-case 플러그 인 이름입니다. 최대 64자 |
source | string | 개체 | 네 | 플러그 인(상대 경로, GitHub또는 URL)을 가져올 위치입니다. |
description | 문자열 | 아니오 | 플러그 인 설명입니다. 최대 1024자 |
version | 문자열 | 아니오 | 플러그 인 버전입니다. |
author | 객체 | 아니오 | { name, email?, url? } |
homepage | 문자열 | 아니오 | 플러그 인 홈페이지 URL입니다. |
repository | 문자열 | 아니오 | 원본 리포지토리 URL입니다. |
license | 문자열 | 아니오 | 라이선스 식별자 |
keywords | 문자열[] | 아니오 | 키워드를 검색합니다. |
category | 문자열 | 아니오 | 플러그 인 범주입니다. |
tags | 문자열[] | 아니오 | 추가 태그입니다. |
commands | 문자열 | 문자열[] | 아니오 | 명령 디렉터리에 대한 경로입니다. |
agents | string[] | | 아니오 | 에이전트 디렉터리에 대한 경로입니다. |
skills | string | string[] | 아니오 | 기술 디렉터리에 대한 경로입니다. |
hooks | string | 개체 | 아니오 | 후크 구성 또는 인라인 후크 개체에 대한 경로입니다. |
mcpServers | string | 개체 | 아니오 | MCP 구성 또는 인라인 서버 정의에 대한 경로입니다. |
lspServers | string | 개체 | 아니오 | LSP 구성 또는 인라인 서버 정의에 대한 경로입니다. |
strict | 불리언 | 아니오 | false이면 플러그 인에 자체 plugin.json플러그 인이 필요하지 않습니다. 기본값: true. |
파일 위치
| Item | 경로 |
|---|---|
| 설치된 플러그 인 |
`~/.copilot/installed-plugins/` 및 `~/.copilot/installed-plugins/_direct` |
| Marketplace 캐시 | ~/.copilot/state/marketplace-cache/ |
| 플러그 인 매니페스트 |
plugin.json, .github/plugin/plugin.json 또는 .claude-plugin/plugin.json |
| Marketplace 매니페스트 |
.github/plugin/marketplace.json 또는 .claude-plugin/marketplace.json |
| Agents |
agents/ (기본값, 매니페스트에서 재정의 가능) |
| 기술 |
skills/ (기본값, 매니페스트에서 재정의 가능) |
| 후크 설정 |
hooks.json 또는 hooks/hooks.json |
| MCP 구성 |
.mcp.json 또는 .github/mcp.json |
| LSP 구성 |
lsp.json 또는 .github/lsp.json |
로드 순서 및 우선 순위
여러 플러그 인을 설치하는 경우 MCP 서버를 통해 제공되는 일부 사용자 지정 에이전트, 기술, MCP 서버 또는 도구에 중복 이름이 있을 수 있습니다. 이 경우 CLI는 우선 순위에 따라 사용할 구성 요소를 결정합니다.
-
**에이전트 및 기술은** 첫 번째 발견된 항목 우선 규칙을 사용합니다.설치한 플러그 인의 이름과 ID가 같은 프로젝트 수준 사용자 지정 에이전트 또는 기술이 있는 경우 플러그 인의 에이전트 또는 기술은 자동으로 무시됩니다. 플러그 인은 프로젝트 수준 또는 개인 구성을 재정의할 수 없습니다. 사용자 지정 에이전트는 파일 이름에서 파생된 ID를 기반으로 중복이 제거됩니다(예: 파일 이름이
reviewer.agent.md인 경우, 에이전트 ID는reviewer가 됩니다). 파일 내SKILL.md의 이름 필드를 기준으로 기술이 중복 제거됩니다. -
**MCP 서버** 는 마지막 우선 순위를 사용합니다.이미 설치한 MCP 서버와 동일한 서버 이름을 가진 MCP 서버를 정의하는 플러그 인을 설치하는 경우 플러그 인의 정의가 우선합니다. 명령줄 옵션
--additional-mcp-config을 사용하여 플러그인을 통해 설치된 MCP 서버 구성과 동일한 이름의 구성을 재정의할 수 있습니다. -
**기본 제공 도구 및 에이전트는** 항상 존재하며 사용자 정의 구성 요소에서 재정의할 수 없습니다.
다음 다이어그램에서는 로드 순서 및 우선 순위 규칙을 보여 줍니다.
┌─────────────────────────────────────────────────────────┐
│ BUILT-IN - HARDCODED, ALWAYS PRESENT │
│ • tools: bash, view, apply_patch, glob, rg, task, ... │
│ • agents: explore, task, code-review, general-purpose │
└────────────────────────┬────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────────────┐
│ CUSTOM AGENTS - FIRST LOADED IS USED (dedup by ID) │
│ 1. ~/.copilot/agents/ (user, .github convention) │
│ 2. <project>/.github/agents/ (project) │
│ 3. <parents>/.github/agents/ (inherited, monorepo) │
│ 4. ~/.claude/agents/ (user, .claude convention) │
│ 5. <project>/.claude/agents/ (project) │
│ 6. <parents>/.claude/agents/ (inherited, monorepo) │
│ 7. PLUGIN: agents/ dirs (plugin, by install order) │
│ 8. Remote org/enterprise agents (remote, via API) │
└──────────────────────┬──────────────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────────────┐
│ AGENT SKILLS - FIRST LOADED IS USED (dedup by name) │
│ 1. <project>/.github/skills/ (project) │
│ 2. <project>/.agents/skills/ (project) │
│ 3. <project>/.claude/skills/ (project) │
│ 4. <parents>/.github/skills/ etc. (inherited) │
│ 5. ~/.copilot/skills/ (personal-copilot) │
│ 6. ~/.claude/skills/ (personal-claude) │
│ 7. PLUGIN: skills/ dirs (plugin) │
│ 8. COPILOT_SKILLS_DIRS env + config (custom) │
│ --- then commands (.claude/commands/), skills override commands ---│
└──────────────────────┬──────────────────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────────────┐
│ MCP SERVERS - LAST LOADED IS USED (dedup by server name) │
│ 1. ~/.copilot/mcp-config.json (lowest priority) │
│ 2. .vscode/mcp.json (workspace) │
│ 3. PLUGIN: MCP configs (plugins) │
│ 4. --additional-mcp-config flag (highest priority) │
└─────────────────────────────────────────────────────────────────────┘