# GitHub Copilot CLI용 확장 정보

확장을 사용하면 CLI와 함께 제공되는 SDK만 사용하여 고유한 도구와 슬래시 명령을 GitHub Copilot CLI추가할 수 있습니다.

> \[!NOTE]
> GitHub Copilot CLI 확장은 현재 실험적 기능이며 변경될 수 있습니다.

확장 프로그램을 사용하면 Copilot CLI에 자체 기능을 추가할 수 있습니다. 각 확장은 대화형 세션과 함께 별도의 프로세스로 실행되고 다시 연결하는 작은 Node.js 모듈입니다. 해당 연결을 통해 확장은 다음을 추가할 수 있습니다.

* \*\*\*\*가 사용자를 대신하여 작업하는 동안 호출할 수 있는 Copilot
* 직접 실행하는 **슬래시 명령어**.

확장은 머신에서 실제 코드를 실행하므로 기본 제공 도구에 없는 기능을 추가할 수 있습니다. 예를 들어 확장은 세션에서 일어나는 일을 모니터링하고, 일회성 셸 명령으로는 할 수 없는 방식으로 도구 호출 전반에 걸쳐 누적 합계를 유지할 수 있습니다.

이 문서에서는 확장이 작동하는 방식과 이를 처리하는 방법을 Copilot CLI 설명합니다. 고유한 확장을 빌드하는 실습 가이드는 [GitHub Copilot CLI용 확장 프로그램 만들기](/ko/copilot/tutorials/create-an-extension)을 참조하세요.

> \[!WARNING]
> 확장은 사용자 권한으로 컴퓨터에서 실행됩니다. 신뢰하는 확장 코드만 로드합니다. 동일한 방식으로 직접 작성하지 않은 다른 스크립트만 실행합니다.

## 확장을 검색하는 방법

Copilot CLI 시작되면 여러 위치에서 확장을 찾습니다. 각 확장 프로그램은 자체 하위 디렉터리에 있으며, 해당 하위 디렉터리에는 이름이 `extension.mjs`, `extension.cjs` 또는 `extension.js`인 엔트리 파일이 반드시 포함되어야 합니다. 다음은 모두 JavaScript 파일 Copilot CLI 입니다. Node.js직접 항목 파일을 실행하므로 확장을 JavaScript로 작성해야 합니다. TypeScript 및 기타 언어는 현재 지원되지 않습니다.

하위 디렉터리의 이름은 확장의 이름이 됩니다.

| Source                                  | 위치                                  | Availability                        |
| --------------------------------------- | ----------------------------------- | ----------------------------------- |
| **프로젝트**                                |                                     |                                     |
| `.github/extensions/NAME/` 현재 리포지토리 내에서 | 해당 리포지토리에서 작업하는 모든 사용자가 사용할 수 있습니다. |                                     |
| **User**                                | `~/.copilot/extensions/NAME/`       | 모든 CLI 세션, 모든 디렉터리에서 사용할 수 있습니다.    |
| **플러그 인**                               | 설치된 플러그 인                           | 플러그 인을 사용할 수 있는 모든 위치에서 사용할 수 있습니다. |

## 확장이 있는 위치 선택

확장 디렉터리를 배치하는 위치에 따라 확장 디렉터리를 사용할 수 있는 사람이 결정됩니다.

* **`.github/extensions/`** 확장이 해당 프로젝트와 관련이 있고 해당 프로젝트에서 작업하는 모든 사용자와 공유하려는 경우 리포지토리에 배치합니다.
* CLI를 **`~/.copilot/extensions/`** 시작하는 디렉터리에 관계없이 모든 자체 세션에서 확장을 사용할 수 있도록 하려면 이 옵션을 입력합니다.

두 위치는 정확히 동일한 구조(파일이 포함된 `extension.mjs` 명명된 하위 디렉터리)를 따르므로 폴더를 재배치하기만 하면 확장명을 한 위치에서 다른 위치로 이동할 수 있습니다.

## 확장 기능 활성화

확장은 현재 실험적 기능이므로 실험적 기능을 켜야 합니다. 다음 중 하나를 수행하여 이 작업을 수행할 수 있습니다.

* 플래그를 사용하여 CLI를 시작합니다 `‑‑experimental` .
* `/experimental on` 대화형 세션 내에서 슬래시 명령을 실행합니다.

## CLI에서 확장을 처리하는 방법 변경

명령을 사용하여 Copilot 확장에 대한 액세스를 제한`/extensions mode`하거나 완전히 해제할 수 있습니다. 이 명령을 사용하면 다음 세 가지 옵션이 제공됩니다.

* **로드 및 보강**(기본값) - CLI는 \_\_ 확장을 실행하고 Copilot.
* **로드 전용** - CLI는 확장을 실행하지만 Copilot 관리할 수는 없습니다.
* **사용 안 함** - 확장은 현재 세션에서 완전히 꺼져 있으며 다른 두 설정 중 하나로 전환할 때까지 이후 세션에서는 사용하지 않도록 유지됩니다. 다른 현재 세션은 영향을 받지 않습니다.

변경한 내용은 현재 세션에서 즉시 적용됩니다.

* **사용 안 함으로** 전환하면 현재 실행 중인 모든 확장이 중지됩니다. 프로세스가 종료되고 해당 도구를 더 이상 사용할 수 없습니다.
* **사용 안 함에서** 다른 설정 중 하나로 전환하면 확장이 시작됩니다.
* **Load Only**와 **Load & Augment** 간에 전환하면 확장을 관리할 수 있는지 여부 Copilot 만 변경됩니다.

### "확장 관리"의 의미

**로드 및 보강** 모드 Copilot 에서는 요청 수행의 일환으로 확장 시스템에서 직접 작동할 수 있는 작은 추가 도구 집합이 제공됩니다. 이러한 도구를 사용하여 Copilot 다음을 수행할 수 있습니다:

* 검색한 확장을 **나열**하고 해당 상태를 확인합니다.
* **검사**를 통해 로그 파일의 마지막 부분을 포함한 확장 기능을 살펴보고, 실패했거나 오작동하는 확장 기능을 진단하는 데 도움을 받을 수 있습니다.
* 새 확장의 **기본 틀을 만듭니다**—이를 기반으로 개발할 수 있는 시작용 `extension.mjs` 파일을 생성합니다.
* 확장을 **다시 로드**하여 확장 프로그램(또는 사용자)이 방금 작성한 코드가 세션을 다시 시작하지 않고도 적용되도록 합니다.

이것이 바로 Copilot에 확장 프로그램을 빌드해 달라고 요청할 수 있게 해 주는 요소입니다.
Copilot 는 세션을 종료하지 않고 파일을 만들고, 코드를 작성하고, 다시 로드할 수 있습니다.

알려져 있고 신뢰할 수 있는 확장 프로그램 세트는 계속 실행되도록 유지하되, \*\*\*\* 의 작업에 따른 부수 효과로 사용자 컴퓨터에서 실행되는 확장 코드를 생성하거나, 다시 로드하거나, 그 밖의 방식으로 변경하지 않으려는 경우 Copilot을 선택하세요. 기존 확장은 계속 실행되며 Copilot , 제공하는 도구를 계속 호출할 수 있습니다. 단순히 확장 자체를 관리할 수 없습니다.

## 플러그 인과 비교된 확장

확장과 플러그 인은 모두 기능을 추가하지만 다른 용도로 Copilot CLI사용됩니다.

* **확장**은 세션에서 실행되는 코드로 지원되는 도구 및 슬래시 명령을 추가하기 위해 작성하는 단일 JavaScript 모듈입니다.
* **플러그 인**은 에이전트, 기술, 후크 및 통합과 같은 재사용 가능한 구성 요소를 번들로 묶고 마켓플레이스를 통해 배포할 수 있는 설치 가능한 패키지입니다.

플러그 인에 대한 자세한 내용은 [플러그 인 정보 GitHub Copilot](/ko/copilot/concepts/agents/about-plugins)을 참조하세요.

## 추가 읽기

* [GitHub Copilot CLI용 확장 프로그램 만들기](/ko/copilot/tutorials/create-an-extension)
* [GitHub Copilot CLI 명령 참조](/ko/copilot/reference/copilot-cli-reference/cli-command-reference#slash-commands-in-the-interactive-interface)
* [GitHub Copilot CLI](/ko/copilot/how-tos/copilot-cli)