Skip to main content

GitHub Copilot CLI 플러그 인 참조

CLI 플러그 인에 대한 명령 및 구성 세부 정보를 찾습니다.

참고

터미널에 입력 copilot plugin [SUBCOMMAND] --help 하여 플러그 인 사용에 대한 도움말을 찾을 수 있습니다.

플러그 인의 정의 및 클라이언트에서 Copilot 작동하는 방식에 대한 개요는 플러그 인 정보 GitHub Copilot을 참조하세요.

CLI 명령

터미널에서 다음 명령을 사용하여 플러그 인 코파일럿 CLI을 관리할 수 있습니다. copilot plugincopilot plugins는 서로 바꿔 사용할 수 있으므로, 하위 명령에 더 자연스러운 표현을 사용하세요.

Command설명
copilot plugin install SPECIFICATION플러그 인을 설치합니다. 아래 명령의 플러그 인 사양을 install 참조하세요.
copilot plugin uninstall NAME플러그 인 제거
copilot plugin list설치된 플러그 인 나열
copilot plugin update NAME명명된 플러그 인을 업데이트합니다. 설치된 모든 플러그 인을 한 번에 업데이트하는 데 사용합니다 --all .
copilot plugin enable NAME이전에 사용하지 않도록 설정된 플러그 인 사용
copilot plugin disable NAME플러그 인을 제거하지 않고 사용하지 않도록 설정
copilot plugin marketplace add SPECIFICATION마켓플레이스를 등록합니다. 매니페스트에서 marketplace.json 마켓플레이스의 고유한 이름은 등록 키가 되며 사용자 지정 로컬 이름을 설정할 수 있는 옵션은 없습니다.
copilot plugin marketplace list등록된 마켓플레이스 나열
copilot plugin marketplace browse NAME마켓플레이스 플러그 인 찾아보기
copilot plugin marketplace update [NAME] (별칭 refresh)마켓플레이스의 플러그 인 카탈로그를 다시 가져옵니다. 등록된 모든 마켓플레이스의 카탈로그를 새로 고치려면 NAME를 생략합니다.
copilot plugin marketplace remove NAME마켓플레이스 등록을 취소합니다. 마켓플레이스의 플러그인이 여전히 설치되어 있으면 거부됩니다. 해당 플러그인도 제거하려면 --force을(를) 지정하세요.

비대화형으로 copilot plugins enable NAME --plugin, copilot plugins disable NAME --plugincopilot plugins remove NAME --plugin는 동일한 활성화, 비활성화 및 제거 작업을 제공합니다. --plugin 는 기본 종류이며 이러한 세 가지 명령에 대해 생략할 수 있습니다. 이러한 명령을 MCP 서버 및 기술로 확장하는 비대화형 --mcp 종류는 --skill을 참조하세요.

명령에 대한 install 플러그 인 사양

포맷예시설명
마켓플레이스plugin@marketplace등록된 마켓플레이스에서 플러그 인
GitHubOWNER/REPO리포지토리의 GitHub 루트
GitHub 서브디렉터리OWNER/REPO:PATH/TO/PLUGIN리포지토리의 하위 디렉터리
Git URLhttps://github.com/o/r.git모든 Git URL
로컬 경로
./my-plugin 또는 /abs/path로컬 디렉터리

copilot plugins install 옵션

사양에서 플러그 인을 설치하는 것 외에도 파일, copilot plugins install URL 또는 디렉터리 --skill에서 개별 기술을 설치할 수 있습니다. 기술 설치는 플러그 인 설치가 아니며 마켓플레이스를 거치지 않습니다. 기술 자체에 대한 자세한 내용은 GitHub Copilot CLI 명령 참조 을 참조하세요.

Option설명
--plugin플러그 인(기본값)을 설치합니다.
--skill로컬 경로 또는 URL에서 기술을 설치합니다.
--scope SCOPE파일 또는 URL --skill 설치 시: user (기본값) 또는 project.
project 는 사용자 계정 대신 현재 리포지토리의 .github/skills 디렉터리로 설치 범위를 지정하고 파일 또는 URL 기술 설치에만 적용됩니다.
--config-dir=DIRECTORY구성 디렉터리의 경로입니다. 이 옵션은 사용되지 않습니다.
COPILOT_HOME를 대신 사용하세요.

디렉터리를 설치하면 디렉터리를 복사하는 대신 사용자 지정 기술 원본으로 등록합니다. 파일 또는 URL을 설치하면 기술 콘텐츠가 개인 또는 프로젝트 기술 디렉터리에 복사됩니다.

MCP 서버는 인증 및 대화형 비밀 항목이 필요한 정책 구성 레지스트리에서 설치됩니다. copilot plugins install 대신 /plugins 대시보드(온라인 모드) 또는 /mcp 슬래시 명령을 사용해 MCP 서버를 추가하세요.

copilot plugins update 옵션

Option설명
--all설치된 모든 플러그 인 업데이트

copilot plugins marketplace 하위 명령어

기본 제공 마켓플레이스는 런타임과 함께 제공되며 제거할 수 없습니다.

하위 명령설명
list [--json]기본 제공 기본값을 포함하여 등록된 모든 마켓플레이스 나열
add SOURCE마켓플레이스(owner/repo, owner/repo#refURL 또는 로컬 경로) 추가
remove NAME [--force]마켓플레이스를 제거하면 --force 해당 마켓플레이스에서 설치한 플러그인도 제거됩니다.
browse NAME [--json]마켓플레이스 카탈로그에서 제공하는 플러그 인 나열
update [NAME] (별칭 refresh)마켓플레이스 하나의 플러그인 카탈로그를 새로 고치거나, NAME가 생략되면 모든 마켓플레이스의 카탈로그를 새로 고칩니다.

plugin.json

모든 플러그 인은 플러그 인 디렉터리의 루트에 있는 plugin.json 매니페스트 파일을 포함하는 플러그 인 디렉터리로 구성됩니다. 에 대한 플러그 인 만들기 GitHub Copilot 명령 줄 인터페이스 (CLI)을(를) 참조하세요.

필수 필드

분야유형설명
name문자열Kebab-case 플러그 인 이름(문자, 숫자, 하이픈만 해당). 최대 64자

선택적 메타데이터 필드

분야유형설명
description문자열간략한 설명입니다. 최대 1024자
version문자열의미 체계 버전(예: 1.0.0).
author객체
name (필수), email (선택 사항), url (선택 사항)
homepage문자열플러그 인 홈페이지 URL입니다.
repository문자열원본 리포지토리 URL입니다.
license문자열라이선스 식별자(예: MIT).
keywords문자열[]키워드를 검색합니다.
category문자열플러그 인 범주입니다.
tags문자열[]추가 태그입니다.

구성 요소 경로 필드

그러면 플러그 인의 구성 요소를 찾을 수 있는 위치를 CLI에 알립니다. 모두 선택 사항입니다. 생략하면 CLI는 기본 규칙을 사용합니다.

분야유형기본값설명
agents문자열 | 문자열[]agents/에이전트 디렉터리(.agent.md 파일)에 대한 경로입니다.
skills문자열 | 문자열[]skills/기술 디렉터리(SKILL.md 파일)에 대한 경로입니다.
commands문자열 | 문자열[]명령 디렉터리에 대한 경로입니다.
hooksstring | 개체후크 구성 파일 또는 인라인 후크 개체의 경로입니다.
extensionsstring | string[] | 개체확장 디렉터리에 대한 경로입니다. 기본 제공 확장 기능을 사용하지 않도록 하려면 { paths: [...], exclusive: true }을(를) 사용합니다.
mcpServersstring | 개체MCP 구성 파일(예: .mcp.json) 또는 인라인 서버 정의에 대한 경로입니다.
lspServersstring | 개체LSP 구성 파일 또는 인라인 서버 정의에 대한 경로입니다.

예제 plugin.json 파일

JSON
{
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "license": "MIT",
  "keywords": ["react", "frontend"],
  "agents": "agents/",
  "skills": ["skills/", "extra-skills/"],
  "hooks": "hooks.json",
  "mcpServers": ".mcp.json"
}

LSP 서버 구성

플러그인에 LSP(언어 서버 프로토콜) 서버를 포함하려면 플러그인 디렉터리에 lsp-config/servers.json 파일을 만들거나, lspServersplugin.json 필드를 사용하여 경로 또는 인라인 객체를 지정합니다.

예제 lsp-config/servers.json(또는 lspServers에서 plugin.json을 통한 인라인 방식):

{
    "lspServers": {
        "my-lsp": {
            "command": "my-language-server",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}

플랫폼 간 지원을 위해 bash 대신 powershellcommand을 사용하세요:

{
    "lspServers": {
        "my-lsp": {
            "bash": "${PLUGIN_ROOT}/scripts/start-lsp.sh",
            "powershell": "${PLUGIN_ROOT}/scripts/start-lsp.ps1",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}
분야유형필수설명
command문자열*언어 서버를 시작하는 실행 파일입니다.
bash문자열*서버를 실행하기 위한 Bash 스크립트(Linux/macOS); bash -c SCRIPT를 통해 실행됩니다.
powershell문자열*서버(Windows)를 시작하는 PowerShell 스크립트로, pwsh -c SCRIPT 통해 실행됩니다.
cwd문자열No작업 디렉터리입니다. 설정 파일을 기준으로 절대 경로 또는 상대 경로로 지정합니다.
${PLUGIN_ROOT}지원합니다.
args문자열[]No
command에 전달할 인수(bashpowershell의 경우 무시됨).
env객체No서버를 생성할 때 설정할 환경 변수입니다.
fileExtensions객체파일 확장자를 언어 ID에 매핑합니다(예: { ".ts": "typescript" }).
rootUri문자열Nogit 루트를 기준으로 한 프로젝트 루트(기본값: .).
initializationOptionsanyNoLSP initialize 요청에서 서버로 전송되는 옵션입니다.

(*) 하나 이상의 command, bash또는 powershell 필수입니다. bashpowershell 모두 지정되면 플랫폼에 적합한 항목이 자동으로 선택됩니다(Windows PowerShell, 다른 위치의 Bash).

플러그 인 디렉터리 내의 경로를 참조하는 데 사용합니다 ${PLUGIN_ROOT} .

marketplace.json

리포지토리의 marketplace.json 디렉터리에 .github/plugin/ 파일을 만들어 저장하면, 사람들이 플러그인을 검색하고 설치할 수 있는 플러그인 마켓플레이스를 만들 수 있습니다. 파일을 로컬 파일 시스템에 저장할 수도 있습니다 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 파일

JSON
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "plugins@example.com"
  },
  "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 필드

최상위 필드

분야유형필수설명
name문자열케밥 케이스 형식의 마켓플레이스 이름을 말합니다. 최대 64자
owner객체
{ name, email? } — 마켓플레이스 소유자 정보입니다.
pluginsarray플러그 인 항목 목록(아래 표 참조).
metadata객체No{ description?, version?, pluginRoot? }

플러그 인 항목 필드(배열 내의 plugins 개체)

분야유형필수설명
name문자열Kebab-case 플러그 인 이름입니다. 최대 64자
sourcestring | 개체플러그 인(상대 경로 또는 GitHubURL)을 가져올 위치입니다.
description문자열No플러그 인 설명입니다. 최대 1024자
version문자열No플러그 인 버전입니다.
author객체No{ name, email?, url? }
homepage문자열No플러그 인 홈페이지 URL입니다.
repository문자열No원본 리포지토리 URL입니다.
license문자열No라이선스 식별자
keywords문자열[]No키워드를 검색합니다.
category문자열No플러그 인 범주입니다.
tags문자열[]No추가 태그입니다.
commands문자열 | 문자열[]No명령 디렉터리에 대한 경로입니다.
agents문자열 | 문자열[]No에이전트 디렉터리에 대한 경로입니다.
skills문자열 | 문자열[]No기술 디렉터리에 대한 경로입니다.
hooksstring | 개체No후크 구성 또는 인라인 후크 개체에 대한 경로입니다.
mcpServersstring | 개체No플러그 인이 설치될 때 활성화할 MCP 서버입니다. 인라인 서버 맵 또는 JSON 구성 파일의 경로를 허용합니다. 플러그 인 원본이 자체 MCP 구성을 제공하지 않는 경우에 사용됩니다.
lspServersstring | 개체NoLSP 구성 또는 인라인 서버 정의에 대한 경로입니다.
strict부울No
true (기본값) 플러그 인은 전체 스키마 및 유효성 검사 규칙을 준수해야 합니다. 완화된 유효성 검사가 사용되면, 특히 false 직접 설치 또는 레거시 플러그인의 경우 더 유연해질 수 있습니다.

플러그 인 소스 형식

source 플러그 인 항목의 필드는 상대 경로 문자열 또는 리포지토리 또는 Git URL 원본을 GitHub 설명하는 개체를 허용합니다.

{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "ref": "v1.0.0",
        "path": "plugins/my-plugin"
    }
}

githuburl 소스 형식은 모두, sha에 추가로(또는 이를 대신해) 설치를 정확한 커밋에 고정하기 위한 선택적 ref 필드를 지원합니다:

{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "sha": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
        "path": "plugins/my-plugin"
    }
}

sha 는 전체 40자 커밋 SHA여야 합니다. 강제 푸시나 태그/브랜치 이동의 영향을 받지 않는 재현 가능한 설치를 위해 sha에 고정합니다.

파일 위치

ItemPath
설치된 플러그 인
~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME (마켓플레이스를 통해 설치) 및 ~/.copilot/installed-plugins/_direct/SOURCE-ID/ (직접 설치)
Marketplace 캐시플랫폼 캐시 디렉터리: ~/.cache/copilot/marketplaces/ (Linux), ~/Library/Caches/copilot/marketplaces/ (macOS).
COPILOT_CACHE_HOME로 재정의할 수 있습니다.
플러그 인 매니페스트
.plugin/plugin.json, plugin.json, .github/plugin/plugin.json또는 .claude-plugin/plugin.json (이 순서로 확인됨)
Marketplace 매니페스트
marketplace.json, .plugin/marketplace.json, .github/plugin/marketplace.json또는 .claude-plugin/marketplace.json (이 순서로 확인됨)
에이전트
agents/ (기본값, 매니페스트에서 재정의 가능)
기술
skills/ (기본값, 매니페스트에서 재정의 가능)
후크 구성
hooks.json 또는 hooks/hooks.json
MCP 구성
.mcp.json, .github/mcp.json
LSP 구성
lsp.json 또는 .github/lsp.json
플러그 인 데이터
${COPILOT_PLUGIN_DATA}(${CLAUDE_PLUGIN_DATA}로도 사용 가능). 설치된 각 플러그 인에 고유한 지속적이고 쓰기 가능한 디렉터리를 가리킵니다. 설치된 플러그 인 캐시 디렉터리 내의 경로 대신 플러그 인 관련 런타임 데이터에 사용합니다.

로드 순서 및 우선 순위

여러 플러그 인을 설치하는 경우 MCP 서버를 통해 제공되는 일부 사용자 지정 에이전트, 기술, MCP 서버 또는 도구에 중복 이름이 있을 수 있습니다. 이 경우 CLI는 우선 순위에 따라 사용할 구성 요소를 결정합니다.

  • 에이전트 및 기술은 먼저 발견된 것이 우선하는 규칙을 따릅니다.

    설치한 플러그 인의 이름과 ID가 같은 프로젝트 수준 사용자 지정 에이전트 또는 기술이 있는 경우 플러그 인의 에이전트 또는 기술은 자동으로 무시됩니다. 플러그 인은 프로젝트 수준 또는 개인 구성을 재정의할 수 없습니다. 사용자 지정 에이전트는 파일 이름에서 파생된 ID를 기반으로 중복이 제거됩니다(예: 파일 이름이 reviewer.agent.md인 경우, 에이전트 ID는 reviewer가 됩니다). 기술은 SKILL.md 파일 내에서 이름 필드를 기준으로 중복이 제거됩니다.

  • MCP 서버 는 마지막 우선 순위를 사용합니다.

    이미 설치한 MCP 서버와 동일한 서버 이름을 가진 MCP 서버를 정의하는 플러그 인을 설치하는 경우 플러그 인의 정의가 우선합니다. 명령줄 옵션 --additional-mcp-config을 사용하여 플러그인을 통해 설치된 MCP 서버 구성과 동일한 이름의 구성을 재정의할 수 있습니다. 둘 이상의 플러그 인이 동일한 이름으로 MCP 서버를 선언하는 경우 CLI는 마지막으로 로드된 플러그 인의 버전을 사용하고 이를 정의한 모든 이전 플러그 인의 이름을 지정하는 경고를 표시합니다.

  • 기본 제공 도구 및 에이전트는 항상 존재하며 사용자 정의 구성 요소에서 재정의할 수 없습니다.

다음 다이어그램에서는 로드 순서 및 우선 순위 규칙을 보여 줍니다.

┌──────────────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                            │
│  • tools: bash, view, apply_patch, glob, rg, task, ...           │
│  • agents: explore, task, code-review, general-purpose, research │
└────────────────────────┬─────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  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. <project>/.claude/agents/    (project)                          │
  │  5. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  6. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  7. 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. ~/.agents/skills/                (personal-agents)              │
  │  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. PLUGIN: MCP configs              (plugins)                      │
  │  3. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘

추가 읽기