코파일럿 CLI 는 컴퓨터의 단일 디렉터리에 구성, 세션 기록, 로그 및 사용자 지정을 저장합니다. 기본적으로 이 디렉터리는 ~/.copilot (즉, $HOME/.copilot)입니다.
이 문서에서는 이 디렉터리의 내용과 이를 사용하는 방법을 설명합니다.
디렉터리 개요
~/.copilot 디렉터리에는 다음과 같은 최상위 항목이 포함됩니다.
| Path | 유형 | 설명 |
|---|---|---|
agents/ | 디렉터리 | 개인 사용자 지정 에이전트 정의 |
config.json | 파일 | 자동으로 관리되는 애플리케이션 상태(인증, 설치된 플러그 인 및 기타 내부 데이터) |
copilot-instructions.md | 파일 | 개인 사용자 지정 지침(모든 세션에 적용됨) |
extensions/ | 디렉터리 | CLI에서 로드한 개인 확장 |
hooks/ | 디렉터리 | 사용자 수준 후크 스크립트 |
ide/ | 디렉터리 | IDE 통합 상태 |
installed-plugins/ | 디렉터리 | 설치된 플러그 인 파일 |
instructions/ | 디렉터리 | 추가 개인 *.instructions.md 파일 |
logs/ | 디렉터리 | 세션 로그 파일 |
lsp-config.json | 파일 | 사용자 수준 LSP 서버 정의 |
mcp-config.json | 파일 | 사용자 수준 MCP 서버 정의 |
mcp-oauth-config/ | 디렉터리 | MCP OAuth 토큰 및 등록 대체 스토리지 |
mcp-secrets/ | 디렉터리 | MCP 비밀 자리 표시자에 대한 로컬 대체 스토리지 및 인덱스 |
permissions-config.json | 파일 | 프로젝트당 저장된 도구 및 디렉터리 권한 |
plugin-data/ | 디렉터리 | 설치된 플러그 인에 대한 영구 데이터 |
session-state/ | 디렉터리 | 세션 기록 및 작업 영역 데이터 |
command-history-state/ | 디렉터리 | 명령 기록 데이터 |
session-store.db | 파일 | 세션 간 데이터에 대한 SQLite 데이터베이스 |
settings.json | 파일 | 개인 구성 설정 |
skills/ | 디렉터리 | 개인 사용자 지정 기술 정의 |
참고
이러한 항목이 모두 즉시 표시되지는 않습니다. 일부는 특정 기능을 처음 사용할 때 요청 시 만들어집니다. 예를 들어 installed-plugins/ 첫 번째 플러그 인을 설치한 후에만 표시됩니다.
사용자가 편집할 수 있는 파일
다음 파일은 사용자가 직접 편집하거나 CLI 명령을 통해 관리하도록 설계되었습니다.
settings.json
에 대한 기본 구성 파일입니다 코파일럿 CLI. 세션 내에서 대화형 /settings 명령을 사용하여 특정 값을 변경하거나 실행 /settings KEY VALUE 하여 단일 값을 설정하거나 텍스트 편집기에서 직접 파일을 편집할 수 있습니다. 파일은 주석이 있는 JSON(JSONC)을 지원합니다.
참고
사용자가 편집할 수 있는 설정은 원래 에 저장되었습니다 config.json. 그들은 settings.json로 이동되었습니다. 시작 시 config.json 표시되는 모든 사용자 설정은 자동으로 .로 settings.json마이그레이션됩니다.
설정의 전체 목록 및 리포지토리 수준 구성과 상호 작용하는 방법은 이 문서의 뒷부분에 있는 구성 파일 설정을 참조하세요.
팁
터미널에서 copilot help config을(를) 실행하여 빠르게 참조하십시오.
copilot-instructions.md
작업 중인 프로젝트에 관계없이 모든 세션에 적용되는 개인 사용자 지정 지침입니다. 이 파일은 리포지토리 수준 copilot-instructions.md 과 동일한 방식으로 작동하지만 전역적으로 적용됩니다.
자세한 내용은 GitHub Copilot 대한 리포지토리 사용자 지정 지침 추가을(를) 참조하세요.
instructions/
여기에 추가적인 개인 설명 파일을 *.instructions.md 파일로 저장하십시오. 이러한 항목은 함께 copilot-instructions.md 로드되고 모든 세션에 적용됩니다. 토픽별로 지침을 구성할 수 있습니다. 예를 들면 다음과 같습니다 ~/.copilot/instructions/code-style.instructions.md.
mcp-config.json
사용자 수준에서 사용할 수 있는 MCP(모델 컨텍스트 프로토콜) 서버를 정의합니다. 이러한 서버는 현재 있는 프로젝트 디렉터리에 관계없이 모든 세션에서 사용할 수 있습니다. Project 수준 MCP 구성(.mcp.json 또는 .github/mcp.json)은 서버 이름이 충돌할 때 사용자 수준 정의보다 우선합니다.
자세한 내용은 에 대한 MCP 서버 추가 GitHub Copilot 명령 줄 인터페이스 (CLI)을(를) 참조하세요.
lsp-config.json
사용자 수준에서 사용할 수 있는 LSP(Language Server Protocol) 서버를 정의합니다. 이러한 서버는 에이전트에 언어 인텔리전스(진단, 완료 등)를 제공합니다. 슬래시 명령을 사용하여 /lsp 이 파일을 관리하거나 직접 편집합니다.
자세한 내용은 GitHub Copilot 명령 줄 인터페이스 (CLI)에 대한 LSP 서버 추가을(를) 참조하세요.
agents/
여기에 개인 사용자 지정 에이전트 정의를 파일로 .agent.md 저장합니다. 이 디렉터리에 배치된 에이전트는 모든 세션에서 사용할 수 있습니다. 프로젝트 수준의 에이전트(.github/agents/)는 같은 이름을 가진 경우 개인 에이전트보다 우선적으로 적용됩니다.
자세한 내용은 사용자 지정 에이전트 만들기 및 사용 GitHub Copilot 명령 줄 인터페이스 (CLI)을(를) 참조하세요.
skills/
여기에 개인 사용자 지정 기술 정의를 저장합니다. 각 기술은 파일을 포함하는 SKILL.md 하위 디렉터리에 있습니다(예 ~/.copilot/skills/my-skill/SKILL.md: .). 개인 기술은 모든 세션에서 사용할 수 있습니다. Project 수준의 기술은 동일한 이름을 공유하는 경우 개인 기술보다 우선합니다.
자세한 내용은 GitHub Copilot 명령 줄 인터페이스 (CLI)에 에이전트 기술 추가을(를) 참조하세요.
hooks/
여기에 사용자 수준 후크 스크립트를 저장합니다. 이러한 후크는 모든 세션에 적용됩니다. 사용자 구성 파일(~/.copilot/settings.json)에서 hooks 키를 사용하여 후크를 인라인으로 정의할 수도 있습니다. 리포지토리 수준 후크(in .github/hooks/)는 사용자 수준 후크와 함께 로드됩니다.
자세한 내용은 GitHub Copilot 명령 줄 인터페이스 (CLI)로 후크 사용하기을(를) 참조하세요.
extensions/
여기에 사용자 수준 확장 파일을 저장합니다. 이 디렉터리의 확장은 세션 간에 사용할 수 있습니다.
이 디렉터리에 파일을 수동으로 만들거나 확장을 스캐폴드한 다음 생성된 파일을 편집할 수 있습니다.
자동으로 관리되는 파일
다음 항목은 CLI에서 관리됩니다. 일반적으로 수동으로 편집해서는 안 됩니다.
config.json
인증 데이터, 설치된 플러그 인 메타데이터 및 기타 런타임 정보를 포함하여 CLI에서 자동으로 관리되는 내부 애플리케이션 상태를 저장합니다. 일반적으로 이 파일을 편집할 필요가 없습니다.
참고
이전 버전의 코파일럿 CLI는 사용자 설정과 애플리케이션 상태를 config.json에 저장했습니다. 이제 사용자가 편집할 수 있는 설정이 .에 있습니다 settings.json. 시작 시 config.json 의 모든 사용자 설정은 자동으로 .로 settings.json마이그레이션됩니다. 애플리케이션 상태 필드(예: loggedInUsers, installedPlugins, firstLaunchAt및 staff)는 그대로 유지 config.json 되며 마이그레이션되지 않습니다.
permissions-config.json
프로젝트 위치별로 구성된 저장된 도구 및 디렉터리 권한 결정을 저장합니다. 도구를 승인하거나 현재 위치에 대한 디렉터리에 대한 액세스 권한을 부여하는 경우 CLI는 여기에 결정을 기록하므로 동일한 리포지토리 또는 디렉터리에 다시 메시지가 표시되지 않습니다.
참고
프로젝트에 대한 사용 권한을 다시 설정하려면 이 파일에서 관련 항목을 삭제할 수 있습니다. 그러나 세션이 실행되는 동안 파일을 편집하면 예기치 않은 동작이 발생할 수 있습니다. CLI는 위치 경로가 디스크에 더 이상 존재하지 않는 항목을 자동으로 제거합니다.
파일 위치
코파일럿 CLI 는 구성 디렉터리에서 파일을 확인합니다.
| 우선순위 | Source | 사용된 파일 |
|---|---|---|
| 1 | --config-dir=DIRECTORY | DIRECTORY/ |
| 2 | COPILOT_HOME | $COPILOT_HOME/ |
| 3 | Default | ~/ |
이 --config-dir 옵션은 레거시 옵션입니다. 구성 디렉터리를 변경해야 할 때는 COPILOT_HOME를 사용하는 것이 좋습니다.
Windows 기본 파일은 일반적으로 다음과 같습니다.
C:\Users\YOUR-USER\.copilot\permissions-config.json
이전 빌드는 확장명 없는 파일을 사용했습니다 permissions-config. 존재하지 않지만 확장 없는 파일이 있는 경우 permissions-config.json CLI는 여전히 레거시 파일을 적용합니다. 새 편집에는 permissions-config.json를 사용합니다.
~/.copilot이 설정되지 않은 경우, 이전 XDG 기반 구성 위치는 시작 시 COPILOT_HOME로 마이그레이션됩니다.
위치 키
최상위 locations 개체는 절대 경로로 키가 지정됩니다.
- Git 리포지토리의 경우 권한 범위 지정에 사용되는 Git 루트를 사용합니다.
- 연결된 워크트리는 메인 리포지토리 루트로 해석되므로 메인 워크트리와 권한을 공유합니다.
- 하위 모듈은 자체 작업 디렉터리를 사용합니다.
- Git 리포지토리에 없는 디렉터리의 경우 정규화된 현재 작업 디렉터리를 사용합니다.
키가 실행 중인 위치 코파일럿 CLI 와 일치해야 합니다. 키가 일치하지 않으면 저장된 승인이 적용되지 않습니다.
CLI는 세션이 시작되고 활성 작업 디렉터리가 변경되는 경우 일치하는 위치의 승인을 로드합니다.
스키마
파일에는 JSON 개체가 포함되어야 합니다.
| Field | 유형 | 필수 | Default | 허용되는 값 | 설명 |
|---|---|---|---|---|---|
locations | Object | No | {} | 절대 경로 키 | 저장된 승인에 위치 키 매핑 |
locations.<key> | Object | No | {} | 임의의 절대 위치 키 | 하나의 리포지토리 또는 디렉터리에 대한 승인을 저장했습니다. |
locations.<key>.tool_approvals | 배열 | No | [] | 승인 대상 개체 | 이 위치에 대해 승인된 도구입니다. |
locations.<key>.allowed_directories | 문자열 배열 | No | [] | 절대 디렉터리 경로 | 경로 게이트가 이 위치에 액세스할 수 있는 추가 디렉터리입니다. CLI가 구성을 적용할 때 각 디렉터리가 있어야 합니다. |
locations.<key>.tool_approvals[].kind | 문자열 | 예 | 없음 | ||
commands,read, write, mcp, mcp-sampling, memory``custom-tool, extension-management``extension-permission-access | 승인 유형을 선택합니다. | ||||
command | 문자열 배열 | 네, commands의 경우 | 없음 | 명령 식별자 | 승인할 셸 명령 식별자 |
serverName | 문자열 | 예, mcp 및 mcp-sampling의 경우입니다. | 없음 | MCP 서버 이름 | 승인할 MCP 서버 |
toolName | 문자열 또는 null | 네, mcp의 경우 | 없음 | MCP 도구 이름 또는 null | 승인할 MCP 도구. 서버의 모든 도구를 승인하는 데 사용합니다 null . |
toolName | 문자열 | 네, custom-tool의 경우 | 없음 | 사용자 지정 도구 이름 | 정확한 이름으로 승인할 사용자 지정 도구입니다. |
operation | 문자열 | 아니요, extension-management의 경우 | 생략 | 확장 작업 이름 | 승인 대기 중인 확장 프로그램 관리 작업 모든 확장 관리 작업을 승인하려면 이 필드를 생략합니다. |
extensionName | 문자열 | 네, extension-permission-access의 경우 | 없음 | 확장 이름 | 권한 제어 기능에 대한 액세스가 승인된 확장입니다. |
permissions-config.json 는 거부 규칙, "요청" 규칙, 기본 모드, URL 규칙, 도구 필터링 또는 리포지토리-로컬 공유 정책을 지원하지 않습니다. 이러한 동작의 경우 , --deny-tool, --available-tools``--excluded-tools및 --allow-url.와 같은 --deny-url명령줄 옵션을 사용합니다. 저장된 URL 규칙은 settings.json에 저장되고 permissions-config.json에는 저장되지 않습니다.
알 수 없는 필드는 스키마의 일부가 아닙니다. CLI는 이를 무시할 수 있으며 나중에 쓰기를 통해 제거할 수 있습니다.
승인 종류
각 항목은 tool_approvals 다음 개체 중 하나여야 합니다.
kind | 필수 필드 | 선택적 필드 | Meaning |
|---|---|---|---|
commands | command | 없음 | 일치하는 셸 명령 식별자를 승인합니다. |
read | 없음 | 없음 | 읽기 도구 요청을 승인합니다. 대화형 CLI 세션은 이미 읽기를 자동으로 승인하므로 일반적으로 필요하지 않습니다. |
write | 없음 | 없음 | 파일 만들기 및 수정 도구 요청을 승인합니다. 경로 프롬프트는 허용된 디렉터리 외부의 경로를 계속 적용할 수 있습니다. |
mcp | |||
serverName, toolName | 없음 | MCP 도구 하나 또는 toolName가 null일 때 서버의 모든 도구를 승인합니다. | |
mcp-sampling | serverName | 없음 | 한 서버에 대한 MCP 샘플링 요청을 승인합니다. |
memory | 없음 | 없음 | 메모리 쓰기 및 투표 요청을 승인합니다. |
custom-tool | toolName | 없음 | 정확한 이름으로 사용자 지정 도구를 승인합니다. |
extension-management | 없음 | operation | 확장 관리를 승인합니다. |
operation이 생략되면 모든 확장 관리 작업에 적용됩니다. | |||
extension-permission-access | extensionName | 없음 | 권한 제어 기능에 대한 확장의 액세스를 승인합니다. |
MCP 승인의 serverName 경우 구성된 MCP 서버 이름과 정확히 일치해야 합니다. 삭제된 도구 이름 접두사는 아닌 MCP 구성의 원시 서버 이름을 사용합니다.
셸 명령 일치
commandIdentifiers 는 셸 요청에서 추출된 명령 식별자와 일치합니다.
:* 접미사를 제외하면 정확히 일치합니다.
| 패턴 | 검색 결과 | 일치하지 않음 |
|---|---|---|
git status | git status | git status --short |
git:* | ||
git | ||
git status | ||
git push | ||
gitea | ||
gh pr:* | ||
gh pr | ||
gh pr view | ||
gh pr create | ||
gh repo view |
:* 접미사는 일반적인 glob 패턴이 아닙니다. 정확히 stem과 일치하거나, stem 뒤에 공백과 추가 텍스트가 오는 경우와 일치합니다.
디렉터리 일치
allowed_directories 항목을 사용하면 별도의 경로 프롬프트 없이 해당 디렉터리 내의 경로에 액세스할 수 코파일럿 CLI 있습니다. 그들은 도구의 작동 자체를 승인하지 않습니다. 예를 들어 허용된 디렉터리에서 파일을 편집하려면 승인이 write 필요할 수 있습니다.
각 allowed_directories 항목은 비어있지 않은 절대 액세스 가능한 디렉터리여야 합니다. CLI는 경로를 비교하기 전에 심볼릭 링크를 해석하고, 확장 길이의 로컬 경로가 아닌 경우 UNC 네트워크 경로를 차단하며, Windows에서는 경로를 대/소문자를 구분하지 않고 비교하고 다른 플랫폼에서는 경로를 대/소문자를 구분하여 비교합니다. 항목을 적용할 수 없는 경우 CLI는 경고를 기록하고 해당 항목을 건너뜁니다.
예제
모든 Git 하위 명령을 허용하고 추가 로컬 디렉터리에 액세스합니다.
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": ["git:*"]
}
],
"allowed_directories": ["C:\\src\\shared-docs"]
}
}
}
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": ["git:*"]
}
],
"allowed_directories": ["C:\\src\\shared-docs"]
}
}
}
파일을 쓰기 전에 계속 묻는 동안 선택한 명령을 허용합니다.
{
"locations": {
"/Users/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git status",
"git diff",
"git log",
"npm test",
"npm run build"
]
}
]
}
}
}
{
"locations": {
"/Users/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git status",
"git diff",
"git log",
"npm test",
"npm run build"
]
}
]
}
}
}
리포지토리에 대한 파일 쓰기 및 MCP 서버 1개를 승인합니다.
{
"locations": {
"/home/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "write"
},
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": null
}
]
}
}
}
{
"locations": {
"/home/YOUR-USER/src/my-repo": {
"tool_approvals": [
{
"kind": "write"
},
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": null
}
]
}
}
}
하나의 MCP 도구, 메모리 쓰기 및 확장 권한 액세스를 승인합니다.
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": "search_code"
},
{
"kind": "memory"
},
{
"kind": "extension-permission-access",
"extensionName": "my-extension"
}
]
}
}
}
{
"locations": {
"C:\\src\\my-repo": {
"tool_approvals": [
{
"kind": "mcp",
"serverName": "github-mcp-server",
"toolName": "search_code"
},
{
"kind": "memory"
},
{
"kind": "extension-permission-access",
"extensionName": "my-extension"
}
]
}
}
}
session-state/
하위 디렉터리의 세션 ID별로 구성된 세션 기록 데이터를 포함합니다. 각 세션 디렉터리에는 이벤트 로그(events.jsonl) 및 작업 영역 아티팩트(계획, 검사점, 추적된 파일)가 저장됩니다. 이 데이터는 세션 다시 시작(--resume 또는 --continue)을 사용하도록 설정합니다.
이 디렉터리에서 파일을 삭제하면 로컬 복사본만 제거됩니다. 계정에 세션을 GitHub 동기화한 경우 동기화된 데이터는 별도로 저장되며 로컬 파일 삭제의 영향을 받지 않습니다. 에서 동기화된 세션을 삭제하거나 숨길 수 있습니다 GitHub.com. 자세한 내용은 세션 데이터에 대한 정보 GitHub Copilot 명령 줄 인터페이스 (CLI)을(를) 참조하세요.
command-history-state/
대화형 인터페이스에서 역방향 검색(Ctrl+R) 및 기록 탐색에 사용되는 명령 기록 데이터를 포함합니다. 이 디렉터리가 자동으로 관리되므로 편집하면 안 됩니다.
session-store.db
검사점 인덱싱 및 검색과 같은 세션 간 데이터에 대해 CLI에서 사용하는 SQLite 데이터베이스입니다. 이 파일은 자동으로 관리되며 편집해서는 안 됩니다.
이 파일을 삭제하면 /chronicle reindex 명령을 사용하여 다시 빌드할 수 있습니다. 또한 다시 인덱싱하면 세션 데이터가 계정에 동기화됩니다.
logs/
CLI 세션에 대한 로그 파일을 포함합니다. 각 세션은 .라는 process-{timestamp}-{pid}.log로그 파일을 만듭니다. 이러한 파일은 문제를 디버깅하는 데 유용합니다.
CLI는 아래에 logs/extensions/확장 관련 로그를 만들 수도 있습니다.
이는 사용자가 작성한 확장 코드를 저장하는 ~/.copilot/extensions/와는 별개입니다.
팁
현재 세션에 대한 로그 파일을 찾으려면 대화형 세션을 입력 /session 하세요. 출력에는 세션 ID, 기간 및 작업 디렉터리와 같은 다른 세션 세부 정보와 함께 로그 파일의 전체 경로가 포함됩니다.
installed-plugins/
설치한 플러그 인에 대한 파일을 포함합니다. 마켓플레이스에서 설치된 플러그 인은 .에 installed-plugins/{marketplace-name}/{plugin-name}/저장됩니다. 직접 설치된 플러그 인은 아래에 installed-plugins/_direct/저장됩니다. 이 디렉터리를 직접 편집하는 대신 명령을 사용하여 copilot plugin 플러그 인을 관리합니다.
자세한 내용은 GitHub Copilot CLI 플러그 인 참조을(를) 참조하세요.
plugin-data/
마켓플레이스 및 플러그 인 이름으로 구성된 설치된 플러그 인에 대한 영구 데이터를 포함합니다. 이 데이터는 플러그 인 자체에서 관리되며 수동으로 편집해서는 안됩니다.
ide/
IDE 통합을 위한 잠금 파일 및 상태를 포함합니다(예: 코파일럿 CLI가 Visual Studio Code에 연결할 때). 이 디렉터리가 자동으로 관리됩니다.
mcp-oauth-config/
키 집합 지원 스토리지를 사용할 수 없는 경우 MCP OAuth 토큰, 등록 및 PKCE 대체 파일을 포함합니다. 이 디렉터리가 자동으로 관리됩니다.
mcp-secrets/
키체인 기반 저장소를 사용할 수 없는 경우, MCP 비밀 자리 표시자를 위한 대체 파일 저장소와 인덱스를 포함합니다. 이 디렉터리가 자동으로 관리됩니다.
구성 디렉터리의 위치 변경
기본 ~/.copilot 위치를 재정의하려면 환경 변수를 COPILOT_HOME 사용하려는 디렉터리의 경로로 설정합니다.
export COPILOT_HOME=/path/to/my/copilot-config
export COPILOT_HOME=/path/to/my/copilot-config
알아야 할 사항
-
COPILOT_HOME는 전체~/.copilot경로를 바꿉니다. 설정한 값은 구성 파일 및 하위 디렉터리에 사용할 디렉터리의 전체 경로여야 합니다. -
디렉터리를 변경하면 기존 구성, 세션 기록, 설치된 플러그 인 및 저장된 권한이 새 위치에서 찾을 수 없습니다. 내용을 유지하려는 경우 내용을
~/.copilot복사하거나 새 위치로 이동합니다. -
캐시 디렉터리(마켓플레이스 캐시, 자동 업데이트 패키지 및 기타 임시 데이터에 사용됨)는 플랫폼 규칙을 따르며 영향을
COPILOT_HOME받지 않습니다. 다음 위치에 있습니다.- macOS:
~/Library/Caches/copilot - Linux:
$XDG_CACHE_HOME/copilot또는~/.cache/copilot - Windows:
%LOCALAPPDATA%/copilot
캐시 디렉터리를 별도로 재정의하려면
COPILOT_CACHE_HOME을 설정합니다. - macOS:
안전하게 삭제할 수 있는 항목
| 항목 | 삭제해도 안전한가요? | 영향 |
|---|---|---|
agents/ | ||
skills/ | ||
hooks/ | ||
| 권장되지 않음 | 개인 사용자 지정이 손실됩니다. 먼저 백업하세요. | |
config.json | 주의해서 | 인증을 포함하여 애플리케이션 상태를 다시 설정합니다. 다시 인증해야 하며 CLI는 다음 시작 시 내부 상태를 다시 검색합니다. |
copilot-instructions.md, instructions/ | 권장되지 않음 | 개인 사용자 지정 지침이 손실됩니다. 먼저 백업하세요. |
extensions/ | 권장되지 않음 | 개인 확장 프로그램을 잃게 됩니다. 먼저 백업하세요. |
installed-plugins/ | 권장되지 않음 | 플러그인 메타데이터 copilot plugin uninstall의 정확성을 유지하기 위해 대신 config.json을 사용하세요. |
logs/ | 예 | 로그 파일은 각 세션마다 다시 만들어집니다. 삭제해도 함수에 영향을 주지 않습니다. |
lsp-config.json | 권장되지 않음 | 사용자 수준 LSP 서버 정의가 손실됩니다. 먼저 백업하세요. |
mcp-config.json | 권장되지 않음 | 사용자 수준 MCP 서버 정의가 손실됩니다. 먼저 백업하세요. |
mcp-oauth-config/ | 주의해서 | 로컬 MCP OAuth 대체 상태를 지웁니다. MCP 서버를 다시 인증해야 할 수도 있습니다. |
mcp-secrets/ | 주의해서 | 로컬 MCP 비밀 대체 상태 및 매핑을 지웁니다. 비밀 지원 MCP 서버는 재구성이 필요할 수 있습니다. |
permissions-config.json | 주의해서 | 저장된 모든 권한을 다시 설정합니다. CLI는 도구 및 디렉터리 승인을 다시 묻는 메시지를 표시합니다. |
plugin-data/ | 예 | 플러그 인 영구 데이터는 필요에 따라 다시 만들어집니다. |
session-state/ | 주의해서 | 삭제하면 세션 기록이 제거됩니다. 더 이상 과거 세션을 다시 시작할 수 없습니다. |
command-history-state/ | 주의해서 | 삭제하면 명령 기록이 제거됩니다. |
| Ctrl+R을 사용하여 이전 명령을 더 이상 검색할 수 없습니다. | ||
session-store.db | 주의해서 | 삭제하면 세션 간 데이터가 제거됩니다. 파일이 자동으로 다시 만들어집니다. |
settings.json | 주의해서 | 모든 사용자 기본 설정을 기본값으로 다시 설정합니다. 설정을 다시 구성해야 합니다. |
구성 파일 설정
설정은 다음 순서로 적용됩니다(나중의 설정이 앞선 설정을 재정의함):
- 내장 기본값
- MDM(모바일 장치 관리) 관리 설정
- 사용자 설정(
~/.copilot/settings.json) - 리포지토리 설정(
.github/copilot/settings.json) - 로컬 설정(
.github/copilot/settings.local.json) - 환경 변수
- 명령줄 플래그
MDM 관리 설정은 시작 시 로드되고 사용자 설정과 정책 기준으로 병합됩니다. 대부분의 키에서 사용자 설정은 해당 기준을 재정의할 수 있습니다. 의 경우 permissions.disableBypassPermissionsModeMDM 값이 "disable" 항상 우선합니다. 자세한 내용은 MDM 관리 설정을 참조하세요.
| Scope | Location | Purpose |
|---|---|---|
| 사용자 | ~/ | 모든 리포지토리의 전역 기본값입니다. 환경 변수를 COPILOT_HOME 사용하여 대체 경로를 지정합니다. |
| 리포지토리 | .github/ | 공유 리포지토리 구성(리포지토리에 커밋됨) |
| Local | .github/ | 개인 재정의(여기에 .gitignore 추가). |
CLI는 또한 리포지토리 설정의 여러 도구에서 공유되는 하위 집합(예: .claude/settings.json, .claude/settings.local.json, companyAnnouncements, disableAllHooks, enabledPlugins)에 대해 extraKnownMarketplaces 및 hooks도 읽습니다.
사용자 설정(~/.copilot/settings.json)
이러한 설정은 모든 세션 및 리포지토리에 적용됩니다. 슬래시 명령을 사용하여 /settings 대화형 대화 상자를 실행하거나 특정 슬래시 명령을 사용하여 개별 값을 업데이트하거나 이 파일을 직접 편집할 수 있습니다.
| 암호키 | 유형 | Default | 설명 |
|---|---|---|---|
allowedUrls | string[] | [] | URL 또는 도메인은 프롬프트 없이 허용됩니다. 정확한 URL, 도메인 패턴 및 와일드카드 하위 도메인(예: "*.github.com")을 지원합니다. |
askUser | boolean | true | 에이전트가 명확한 질문을 할 수 있도록 허용합니다. 완전 자율 작업을 위해 false 설정됩니다. |
--no-ask-user으로도 설정할 수 있습니다. | |||
autoUpdate | boolean | true | CLI 업데이트를 자동으로 다운로드합니다. |
auto | |||
"stable" | |||
| | | |||
"prerelease" | |||
"stable" | 채널을 업데이트합니다. 시험판 업데이트를 받도록 "prerelease" 설정합니다. | ||
banner | |||
"always" | |||
| | | |||
"once" | |||
| | | |||
"never" | |||
"once" | 애니메이션 배너 표시 빈도입니다. | ||
bashEnv | boolean | false | bash 셸에 대한 지원을 사용하도록 설정합니다 BASH_ENV . 또는 .를 사용하여 --bash-env``--no-bash-env설정할 수도 있습니다. |
beep | boolean | true | 주의가 필요할 때 가청 경고음을 재생합니다. |
beepOnSchedule | boolean | true | 예약된 /every 또는 /after 실행이 완료되면 신호음을 울립니다. |
built | boolean | true | 에이전트 계획에 대해 비판적 피드백을 제공하는 러버덕 하위 에이전트를 사용 설정합니다. |
built | boolean | false | 자동 고무 오리 호출에 대한 사전 대응 프롬프트를 포함합니다. 에이전트의 응답 차례 동안 추가 러버덕 안내를 받으려면 true로 설정합니다. |
colorMode | |||
"default" | |||
| | | |||
"github" | |||
| | | |||
"dim" | |||
| | | |||
"high-contrast" | |||
| | | |||
"colorblind" | |||
"default" | 색 대비 모드입니다. | ||
/settings 및 /theme 슬래시 명령어로 관리됩니다. | |||
compactPaste | boolean | true | 큰 붙여넣기(10줄 이상)를 압축 토큰으로 축소합니다. |
company | string[] | [] | 시작 시 임의로 표시되는 사용자 지정 메시지입니다. CLI가 시작될 때마다 하나의 메시지가 임의로 선택됩니다. 팀 알림 또는 미리 알림에 유용합니다. |
continue | boolean | false | 속도가 제한되면 자동으로 자동 모드로 전환됩니다. |
true 허용 기준에 맞는 속도 제한 오류가 발생하면 자동 모드로 전환되어 다시 시도합니다. 전역 속도 제한 또는 BYOK 공급자에는 적용되지 않습니다. | |||
copyOnSelect | boolean | ||
true (macOS), false (기타) | 마우스로 선택한 텍스트를 시스템 클립보드에 자동으로 복사합니다. | ||
custom | boolean | false | 로컬 사용자 지정 에이전트만 사용합니다(원격 조직 또는 엔터프라이즈 에이전트 없음). |
deniedUrls | string[] | [] | 항상 거부되는 URL 또는 도메인입니다. 거부 규칙은 허용 규칙보다 우선합니다. |
disableAllHooks | boolean | false | 모든 후크(리포지토리 수준 및 사용자 수준 모두)를 사용하지 않도록 설정합니다. |
disabled | string[] | [] | 사용하지 않도록 설정할 MCP 서버 이름입니다. 나열된 서버는 구성되었지만 시작되지 않았습니다. |
disabledSkills | string[] | [] | 사용하지 않도록 설정할 기술 이름입니다. 나열된 기술은 검색되지만 로드되지 않습니다. |
dynamicRetrieval | { skills?: boolean } | 해제 | 임베딩 기반 동적 지침 검색의 범주별 제어 기술에 대한 검색을 사용하지 않도록 skills를 false로 설정하세요. |
--dynamic-retrieval로도 설정할 수 있습니다(예: --dynamic-retrieval skills=off). 플래그를 사용하면 이 파일에 대한 기본 설정이 저장됩니다. | |||
effortLevel | string | "medium" | 확장된 사고에 대한 추론 노력 수준: "low", "medium", "high"또는 "xhigh". 상위 수준은 더 많은 컴퓨팅을 사용합니다. |
enabledMcpServers | string[] | [] | 기본적으로 사용하지 않도록 설정된 기본 제공 MCP 서버를 사용하도록 설정합니다(예: "computer-use"). |
enabledPlugins | Record<string, boolean> | {} | 선언적 플러그 인 자동 설치. 키는 플러그인 사양이며, 값은 true (사용) 또는 false (사용 안 함)입니다. |
experimental | boolean | false | 실험적 기능을 사용하도록 설정합니다. 명령줄 옵션 --experimental 또는 슬래시 명령 /experimental을 사용하여 사용할 수 있도록 설정할 수도 있습니다. |
extra | Record<string, {...}> | {} | 추가 플러그 인 마켓플레이스. 각 키는 마켓플레이스 이름입니다. 값은 원본("directory"또는"git"``"github")을 지정합니다. |
footer | object | — | 상태 줄에 표시되는 항목을 제어합니다. 하위 키에는 ,, showModelEffort,showDirectory, showBranch, show, showAgent, show, show및 showYolo (모두showCustom)가 포함boolean됩니다. |
/statusline 슬래시 명령어를 통해 관리합니다. | |||
hooks | object | — | 이벤트 이름으로 키가 지정된 인라인 사용자 수준 후크 정의입니다. |
.github/ 파일과 동일한 스키마를 사용합니다. | |||
| GitHub Copilot 명령 줄 인터페이스 (CLI)로 후크 사용하기을(를) 참조하세요. | |||
ide.autoConnect | boolean | true | 시작할 때 IDE 작업 영역에 자동으로 연결합니다. |
false시, /ide 명령을 사용하여 수동으로 연결할 수 있습니다. | |||
ide.open | boolean | true | 연결된 IDE에서 승인하기 위해 파일의 변경 사항을 열기 이 경우 false파일 편집 승인은 터미널에만 표시됩니다. |
include | boolean | true | 에이전트가 만든 git 커밋에 Co-authored-by 레이블을 추가합니다. |
keepAlive | |||
"on" | |||
| | | |||
"off" | |||
| | | |||
"busy" | |||
"off" | CLI 시작 시 적용된 연결 유지 모드입니다. | ||
"on" 항상 시스템에서 절전 모드를 방지하고, "busy" 에이전트가 실행되는 동안에만 절전 모드를 방지하며, "off" 활성 유지를 비활성화합니다. | |||
/keep-alive 슬래시 명령을 사용하여 구성할 수도 있습니다. | |||
logLevel | |||
"none" | |||
| | | |||
"error" | |||
| | | |||
"warning" | |||
| | | |||
"info" | |||
| | | |||
"debug" | |||
| | | |||
"all" | |||
| | | |||
"default" | |||
"default" | 로깅의 세부 정보 표시. | ||
mergeStrategy | |||
"rebase" | |||
| | | |||
"merge" | |||
| — | |||
/pr fix conflicts에 대한 충돌 해결 전략 | |||
"rebase"로 설정하면 기본 브랜치에 리베이스하여 충돌이 해결됩니다. 로 "merge"설정하면 기본 분기가 기능 분기에 병합됩니다. 구성되지 않은 경우 선택기 대화 상자가 표시됩니다. | |||
model | string | 다양하다 | 사용할 AI 모델입니다. 사용 가능한 최상의 모델을 자동으로 선택하도록 "auto"Copilot 설정합니다. |
/model 슬래시 명령어를 통해 관리합니다. | |||
mouse | boolean | true | 마우스 지원을 사용하도록 설정합니다. 또는 .를 사용하여 --mouse``--no-mouse설정할 수도 있습니다. |
permissions.disable | string | — | 로 "disable"설정하면 모든 허용 플래그(--allow-all-tools, --allow-all-paths, , --allow-all-urls,--allow-all``--yolo)가 시작 시 표시되지 않으며 상승된 권한을 부여하는 데 사용할 수 없습니다. |
powershellFlags | string[] | ["-NoProfile", "-NoLogo"] | 시작 시 PowerShell에 전달된 플래그입니다. Windows CLI는 PowerShell 7 이상(pwsh)을 선호하며 powershell.exe 사용할 수 없는 경우 Windows PowerShell(pwsh)으로 대체합니다. Windows 전용. |
proxy | string | 해제 | Kerberos/Negotiate 프록시 인증용 SPN(서비스 주체 이름)으로, 파생된 HTTP/<proxy-host>를 재정의합니다. |
proxyUrl | string | 해제 | HTTP(S) 요청에 대한 프록시 URL(예: http:/)입니다. |
HTTP_PROXY 또는 HTTPS_PROXY 환경 변수에 의해 재정의됩니다(대소문자 구분 없이). | |||
remote | |||
"on" | |||
| | | |||
"off" | |||
"on" | 세션 동기화 및 원격 액세스를 제어합니다. | ||
"off" 세션 데이터를 로컬로만 유지하고 원격 제어를 사용하지 않도록 설정됩니다. 또는 .를 사용하여 --remote``--no-remote설정할 수도 있습니다. | |||
renderMarkdown | boolean | true | 터미널 출력에서 Markdown을 렌더링합니다. |
remoteExport | boolean | true | 세션 동기화를 사용할 수 있는 경우 세션을 원격으로 내보냅니다. 기본적으로 원격 내보내기를 옵트아웃하도록 false 설정합니다. |
remoteSessions 설정이 true로 설정되었거나 --remote 플래그가 설정된 경우, 이 설정과 관계없이 내보내기 및 조향이 계속 활성화됩니다. | |||
respectGitignore | boolean | true | 파일 멘션 선택기에서 @ gitignored 파일을 제외합니다. 이 경우 false 선택기는 일반적으로 .gitignore에 의해 제외되는 파일을 포함합니다. |
screenReader | boolean | false | 화면 읽기 프로그램 최적화를 사용하도록 설정합니다. |
scrollbar | boolean | true | 스크롤 가능한 보기에서 스크롤 막대를 표시합니다. 숨기도록 false 설정하고 전체 터미널 너비를 사용합니다. |
showTipsOnStartup | boolean | true | CLI가 시작될 때 임의의 명령 팁을 표시합니다. |
skillDirectories | string[] | [] | 추가 디렉터리(~/ 외)에 사용자 지정 기술 정의를 검색합니다. |
statusLine | object | — | 사용자 지정 상태 줄 표시. |
type: 반드시 "command"이어야 합니다. | |||
command: stdin에서 세션 JSON을 수신하고 상태 콘텐츠를 stdout에 출력하는 실행 가능한 스크립트의 경로입니다. | |||
padding: 선택적인 왼쪽 여백 공간의 수. | |||
store | boolean | false | 시스템 키 집합을 사용할 수 없는 경우 인증 토큰을 일반 텍스트로 config.json 저장할 수 있습니다. |
stream | boolean | true | 스트리밍 응답을 사용하도록 설정합니다. |
streamerMode | boolean | false | 미리 보기 모델 이름 및 할당량 세부 정보를 숨깁니다. 화면 공유 또는 코파일럿 CLI을(를) 시연할 때 유용합니다. |
subagents.agents | object | {} | 에이전트별 모델 구성( 에이전트 이름으로 키 지정) 각 값은 선택적 model (문자열), (문자열) effortLevel 및 contextTier ("default", "long_context"또는 "inherit") 필드가 있는 개체입니다. 디스패치 시 부모 세션의 값을 사용하도록 필드를 "inherit" 설정합니다. |
/subagents 슬래시 명령을 사용하여 이러한 설정을 대화형으로 구성합니다. | |||
subagents.disabled | string[] | [] | 디스패치되지 않도록 하는 에이전트 이름입니다. |
rubber-duck 이 설정을 통해 에이전트만 비활성화할 수 없습니다. 다른 모든 기본 제공 에이전트(예explore: , task, code-review``general-purpose``research및security-review)를 사용하지 않도록 설정할 수 있습니다. | |||
tabs.enabled | boolean | true | 홈 탭 표시줄을 표시합니다. 완전히 숨기도록 false 설정합니다. |
tabs.hide | string[] | [] | 숨길 탭 식별자입니다. 허용되는 값: "copilot", "agents", "issues", "pull-requests"``"gists" (대/소문자를 구분하지 않는 일치) |
tabs.sort | string[] | [] | 탭이 표시되는 순서입니다. 나열되지 않은 탭은 나열된 탭 뒤의 기본 상대 순서를 유지합니다. 알 수 없는 식별자는 무시됩니다. |
terminalProgress | boolean | true | 에이전트가 작업하는 동안 OSC 9;4 터미널 진행률 표시기를 출력합니다. 지원되는 터미널에는 Windows 터미널, iTerm2, Ghostty 및 ConEmu가 포함됩니다. |
theme | |||
"auto" | |||
| | | |||
"dark" | |||
| | | |||
"light" | |||
"auto" | 터미널 색 테마입니다. | ||
"auto" 는 터미널 배경을 검색하고 그에 따라 선택합니다. | |||
toolSearch | boolean | 모델 및 기능 종속 | 도구 검색을 제어합니다(도구 지연 로딩). 도구 검색을 옵트아웃하도록 설정합니다 toolSearch: false . |
update | boolean | true | 터미널 탭 또는 창 제목에 현재 의도를 표시합니다. |
리포지토리 설정(.github/copilot/settings.json)
리포지토리 설정은 리포지토리에서 작동하는 모든 사용자에게 적용됩니다. 리포지토리에 커밋되고 공동 작업자와 공유됩니다.
참고
리포지토리 구성 파일(enabledPlugins 및 extraKnownMarketplaces)의 플러그인 관련 키는 Copilot 클라우드 에이전트뿐만 아니라 코파일럿 CLI에서도 읽습니다. 이렇게 하면 단일 파일에서 두 클라이언트에 대해 동일한 플러그 인을 사용하도록 설정할 수 있습니다. 플러그 인에 대한 자세한 내용은 플러그 인 정보 GitHub Copilot을 참조하세요.
다음 표에 나열된 키만 리포지토리 수준에서 지원됩니다. 사용자 구성 파일에서 유효한 키를 포함한 다른 키는 자동으로 무시됩니다.
| 암호키 | 유형 | 동작 통합 | 설명 |
|---|---|---|---|
company | string[] | Replaced - 리포지토리가 우선합니다. | 시작 시 임의로 표시되는 메시지입니다. |
disableAllHooks | boolean | 리포지토리가 우선합니다. | 모든 후크를 사용하지 않도록 설정합니다. |
enabledPlugins | Record<string, boolean> | 병합됨 - 저장소가 동일한 키에 대해 사용자를 우선합니다. | 선언적 플러그 인 자동 설치. |
extra | Record<string, {...}> | 병합됨 - 저장소가 동일한 키에 대해 사용자를 우선합니다. | 이 리포지토리에서 사용할 수 있는 플러그 인 마켓플레이스입니다. |
hooks | object | 연결됨 - 사용자 후크 이후에 리포지토리 후크 실행 | 이 리포지토리로 범위가 지정된 후크 정의. |
| GitHub Copilot 명령 줄 인터페이스 (CLI)로 후크 사용하기을(를) 참조하세요. | |||
mergeStrategy | |||
"rebase" | |||
| | | |||
"merge" | |||
| 리포지토리가 우선합니다. | |||
/pr fix conflicts에 대한 충돌 해결 전략 |
로컬 설정(.github/copilot/settings.local.json)
리포지토리에서 커밋되지 않아야 할 개인 재정의를 위해 .github/copilot/settings.local.json를 만듭니다. 에 이 파일을 추가합니다 .gitignore.
로컬 구성 파일은 리포지토리 구성 파일(.github/copilot/settings.json)과 동일한 스키마를 사용하며 이보다 우선합니다.
MDM 관리 설정
IT 관리자는 사용자별 구성을 요구하지 않고 MDM(모바일 장치 관리) 관리 설정을 사용하여 기준 정책을 푸시할 수 있습니다. 이러한 설정은 지원되는 키에 대한 디바이스 수준 기본값을 적용하고 사용자 설정 전에 로드합니다.
MDM 관리 설정 원본
코파일럿 CLI 는 플랫폼별 MDM 또는 파일 기반 위치에서 관리되는 설정을 읽습니다.
| Platform | 원본 유형 | Location |
|---|---|---|
| macOS | MDM plist | com.github.copilot |
| macOS | 파일 | / |
| Windows | MDM 레지스트리 | HKLM\ |
| Windows | 파일 | %Program |
| 리눅스 | 파일 | / |
참고
POSIX 시스템에서 코파일럿 CLI는 심볼릭 링크이거나, root가 소유하지 않거나, 모든 사용자가 쓰기 가능한 파일 기반 관리 설정을 거부합니다.
파일 형식
파일 기반 관리 설정을 JSON으로 작성합니다.
{
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}
지원되는 키
MDM 관리 설정에서는 다음 키만 지원됩니다.
| 암호키 | 설명 |
|---|---|
enabledPlugins | 특정 플러그 인 사용 또는 사용 안 함 |
extra | 신뢰할 수 있는 플러그 인 마켓플레이스 추가 |
model | 모든 사용자의 기본 모델 설정(--model 플래그 또는 재개된 세션의 모델로 재정의됨) |
permissions | |
disable을 포함한 관리되는 권한을 설정합니다. | |
strict | 알려진 마켓플레이스로 플러그 인 제한 |