소개
플러그 인은 .의 기능을 확장하는 패키지입니다 Copilot CLI. 플러그 인 정보 GitHub Copilot을(를) 참조하세요.
참고
터미널에 입력 copilot plugin [SUBCOMMAND] --help 하여 플러그 인 사용에 대한 도움말을 찾을 수 있습니다.
플러그 인 구조
플러그 인은 특정 구조와 매니페스트 파일이 있는 디렉터리로 plugin.json 구성됩니다. 에이전트 플러그 인 1.0에는 플러그 인 루트의 매니페스트가 필요합니다. 레거시 플러그 인은 추가 매니페스트 위치를 지원합니다. 플러그 인에는 에이전트, 기술, 후크 및 MCP 서버 구성의 조합도 포함될 수 있습니다.
Copilot CLI 에서는 다음 두 가지 플러그 인 형식을 지원합니다.
- 에이전트 플러그 인 1.0, 기술 및 MCP 서버에 대 한 이식 가능한 형식입니다. 정식
$schema형식plugin.json으로 선언하면 플러그 인이 이 형식으로 옵트인됩니다. - Copilot 전용 구성 요소와 구성 가능한 구성 요소 경로를 지원하는 레거시 Copilot 형식입니다. 에이전트 플러그 인
$schema이 없는 매니페스트는 이 형식을 계속 사용합니다.
두 형식 모두 지원됩니다. 호환되는 클라이언트에서 기술과 MCP 서버를 이식할 수 있도록 하려면 에이전트 플러그 인 1.0을 선택합니다. 사용자 지정 구성 요소 경로가 필요하거나 기존 특정 플러그 인을 유지 관리하는 경우 레거시 형식을 Copilot선택합니다. 에이전트 플러그 인 1.0에서 기술 및 MCP 서버는 이식 가능하며 Copilot에이전트, 명령, 규칙, 후크 및 LSP 서버와 같은 특정 구성 요소는 플러그 인의 com.github.copilot 디렉터리에서 제공됩니다.
플러그 인 만들기
-
플러그 인에 대한 디렉터리를 만듭니다.
-
플러그 인 형식을 선택한 다음, 디렉터리의 루트에 매니페스트 파일을 추가
plugin.json합니다.Agent Plugins 1.0 플러그인을 만들려면 표준
$schema을(를) 포함하세요:
예제 에이전트 플러그 인 1.0 plugin.json 파일
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.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"]
}
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.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"]
}
스키마는 최상위 필드로 name, version, description, author, homepage, repository, license, keywords, extensions, 및 $schema만 허용합니다. 알 수 없는 최상위 필드가 보고되고 무시됩니다. 이 extensions 필드는 역방향 도메인 네임스페이스로 키가 지정된 클라이언트별 데이터의 맵입니다.
레거시 플러그 인을 만들려면 에이전트 플러그 인 $schema을 생략합니다. 매니페스트에서 구성 요소 경로 필드를 사용할 수 있습니다.
레거시 plugin.json 파일 예제
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
이 파일에 포함할 수 있는 전체 필드 집합에 대한 자세한 내용은 GitHub Copilot CLI 플러그 인 참조을 참조하세요.
-
플러그 인에 구성 요소를 추가합니다.
Agent Plugins 1.0 플러그인에서는 스킬이
skills/의 바로 아래 하위 디렉터리여야 하며, 각 스킬에는SKILL.md파일이 포함되어 있어야 합니다. MCP 구성은 플러그인 루트의mcp.json에 있어야 합니다.plugin.json에서 이 위치들을 재정의할 수 없습니다. Copilot 전용 구성 요소는com.github.copilot/hooks/hooks.json디렉터리에 들어가며, 예를 들어 사용자 지정 에이전트용com.github.copilot/agents/및 후크용com.github.copilot가 있습니다.레거시 플러그 인에서 기본 구성 요소 위치 또는 에 구성된
plugin.json구성 요소 경로를 사용합니다.다음은 그 예입니다.
-
하위 디렉터리에
NAME.agent.md파일을 만들어 에이전트를agents에 추가합니다. Agent Plugins 1.0 플러그인에서com.github.copilot/agents/에 파일을 만듭니다. 레거시 플러그인에서는agents/에서 만드세요.Markdown --- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that...
--- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that... -
플러그인 디렉터리 내에
skills/NAME하위 디렉터리를 생성하여 스킬을 추가합니다. 여기서NAME는 스킬의 이름입니다. 그런 다음, 이 하위 디렉터리 내에서 기술을 정의하는 파일을 만듭니SKILL.md다.예를 들어 "배포" 기술을 만들려면 다음을 만듭니다
skills/deploy/SKILL.md.Markdown --- name: deploy description: Deploy the current project to... --- Instructions for the skill...
--- name: deploy description: Deploy the current project to... --- Instructions for the skill... -
에이전트 플러그 인 1.0 플러그 인의 경우 루트
mcp.json파일에 MCP 서버를 추가합니다. MCP 구성은 자체 에이전트 플러그 인 스키마를 사용합니다.JSON { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }
-
streamable-http 전송 이름은 Streamable HTTP 서버에 허용됩니다.
PLUGIN_DATA 서버의 경우, PLUGIN_ROOT는 ${PLUGIN_ROOT} 및 args 환경 변수를 제공하고 cwd, Copilot CLI 값 및 stdio에서 ${PLUGIN_DATA} 및 env를 확장합니다.
-
플러그 인을 개발할 때 테스트할 수 있도록 로컬로 설치합니다.
예를 들어,
./my-plugin가 플러그인 디렉터리의 경로인 경우 다음을 입력하십시오.Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
설치된 플러그 인 목록을 확인하여 플러그 인이 성공적으로 로드되었는지 확인합니다.
Shell copilot plugin list
copilot plugin list또는 새 대화형 세션을 시작하고 다음을 입력할 수 있습니다.
Copilot prompt /plugin list
/plugin list -
정의한 에이전트, 기술, 후크 및 MCP 서버 구성이 올바르게 로드되었는지 확인합니다.
예를 들어 대화형 세션에서 플러그 인에 정의된 사용자 지정 에이전트가 로드되었는지 확인하려면 다음을 입력합니다.
Copilot prompt /agent
/agent플러그 인에 정의된 기술이 로드되었는지 확인하려면 다음을 입력합니다.
Copilot prompt /skills list
/skills list -
플러그 인 구성 요소에서 제공하는 기능을 사용하여 각 구성 요소가 예상대로 작동하는지 확인합니다.
-
필요에 따라 플러그 인 개발을 반복합니다.
중요
플러그 인을 설치하면 해당 구성 요소가 캐시되고 CLI가 후속 세션을 위해 캐시에서 읽습니다. 로컬 플러그 인에 대한 변경 내용을 선택하려면 다시 설치합니다.
Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
테스트를 완료한 후 다음을 입력하여 플러그 인의 로컬 버전을 제거할 수 있습니다.
Shell copilot plugin uninstall NAME
copilot plugin uninstall NAME참고
플러그 인을 제거하려면 플러그 인의 디렉터리에 대한
name경로가 아니라 플러그 인의plugin.json매니페스트 파일 필드에 지정된 대로 플러그 인의 이름을 사용합니다.
플러그 인 배포
플러그 인을 배포하려면 마켓플레이스에 플러그 인을 추가할 수 있습니다. 에 대한 플러그 인 마켓플레이스 만들기 GitHub Copilot CLI을(를) 참조하세요.