소개
Copilot CLI 는 다양한 도구를 사용하여 작업을 완료합니다. 셸 명령을 실행하고, 파일을 읽고 쓰고, 코드베이스를 검색하고, 웹 콘텐츠를 가져오고, 작업을 특수 하위 에이전트에 위임할 수 있습니다.
검색, 파일 읽기 및 읽기 전용 셸 명령 실행과 같은 읽기 전용 작업은 일반적으로 해당 정책에 따라 자동으로 허용됩니다. 파괴적인 셸 명령 실행, 파일 편집 또는 URL 액세스와 같은 다른 작업에는 Copilot가 이를 사용하려면 먼저 권한이 필요합니다. 프롬프트가 표시되는지 여부는 기존 사용 권한 및 사용 권한 모드에 따라 달라집니다. 예를 들어 셸 명령은 패키지 설치, 파일 삭제, 코드 푸시 또는 네트워크 요청 등 사용자 계정에서 수행할 수 있는 모든 작업을 수행할 수 있으므로 이러한 컨트롤은 의도하지 않은 변경을 방지하는 데 도움이 됩니다.
CLI를 시작할 때 또는 대화형 세션 중에 도구에 대한 사용 권한을 허용하거나 거부할 수 있습니다. 수동 승인 모드에서는 Copilot CLI가 아직 허용되지 않은 요청에 대해 사용자에게 확인을 요청합니다. 이 도구를 한 번 또는 세션의 나머지 부분에 대해 허용하도록 선택할 수 있습니다.
지속형 권한
일부 프롬프트 옵션은 다시 묻지 않도록 동의를 저장합니다. 승인이 저장되는 위치는 승인한 내용에 따라 달라집니다.
현재 위치에 대한 도구를 승인하면 승인이 구성 디렉터리에 저장 permissions-config.json 됩니다. 기본적으로 이 파일은 .입니다 ~/.copilot/permissions-config.json. 예를 들어 셸 명령, 파일 쓰기, MCP 도구 또는 메모리 업데이트에 대해 "이 리포지토리에서 다시 묻지 않음"(또는 "이 디렉터리에서")을 선택할 수 있습니다. 승인 범위는 현재 위치(Git 리포지토리 루트 또는 리포지토리에 없는 경우 작업 디렉터리)로 범위가 지정됩니다. 액세스 권한을 부여하는 모든 디렉터리도 동일한 파일에 저장됩니다.
URL 승인은 다르게 작동합니다. URL을 영구적으로 승인하면 해당 도메인이 사용자의 allowedUrls목록에 추가 settings.json 됩니다. 기본적으로 이 파일은 .입니다 ~/.copilot/settings.json. 이 승인은 단일 위치에 연결되지 않고 모든 세션에 적용됩니다.
--allow-tool 및 --deny-tool 같은 명령줄 옵션은 현재 세션에만 적용되며 permissions-config.json에 기록되지 않습니다. 거부 규칙은 여전히 저장된 승인보다 우선합니다.
저장된 승인이 저장되는 위치, 위치 일치 방법 및 전체 permissions-config.json 스키마에 대한 자세한 내용은 GITHUB COPILOT CLI 구성 디렉터리을 참조하세요.
도구 컨트롤의 레이어
명령줄 옵션에서 도구 권한을 지정할 때 사용할 수 있는 두 가지 컨트롤 계층이 있습니다. 당신은 할 수 있어요:
- AI 모델에 사용할 수 있는 도구의 선택을 제한합니다.
- 특정 도구에 대한 사용 권한을 허용하거나 거부합니다.
AI 모델에 사용할 수 있는 도구 선택 제한
--available-tools 및 --excluded-tools 옵션은 AI 모델이 알고 있는 도구 집합을 제한하므로 작업을 완료하는 방법을 결정할 때 선택할 수 있습니다.
--available-tools은 지정한 도구 이외의 모든 도구를 사용하지 않도록 설정합니다.--excluded-tools는 지정된 도구만 사용하지 않도록 설정합니다.
두 옵션을 함께 사용하는 경우 CLI는 지정된 --available-tools 허용 목록을 적용하고 지정한 거부 목록을 --excluded-tools무시합니다.
도구가 사용 가능한 집합에 없는 경우 옵션으로 --allow-tool 지정하더라도 AI 모델은 도구를 전혀 사용할 수 없습니다. 사용 가능한 도구 집합을 지정하지 않는 대화형 세션에서 AI 모델은 거부될 때만 도구를 사용하려고 할 수 있습니다.
--available-tools 및 --excluded-tools 옵션을 사용하면 이러한 방식으로 모델과의 상호 작용을 낭비할 수 없습니다.
예제 사용 사례
프로젝트에서 벤치마킹을 실행하기 위해 CLI 세션을 시작하고 있으며, AI 모델이 웹 검색을 사용하지 않도록 하려고 합니다.
copilot --excluded-tools='web_fetch, web_search'
참고
이 문서에 언급된 이러한 명령줄 및 기타 명령줄 옵션에 대한 구문에 대한 자세한 내용은 GitHub Copilot CLI 명령 참조을 참조하세요.
특정 도구에 대한 사용 권한 허용 또는 거부
--allow-tool 및 --deny-tool 옵션은 특정 도구 또는 도구 하위 명령에 대한 사용 권한을 허용하거나 거부합니다.
이러한 각 옵션의 값은 쉼표로 구분된 도구 종류 목록으로, 선택적으로 정확한 도구 및 하위 명령 패턴을 지정할 수 있습니다.
도구를 --allow-tool지정하는 경우 AI 모델은 사용 권한을 요청하지 않고 해당 도구를 사용하도록 선택할 수 있습니다. 도구를 --deny-tool사용하여 지정하는 경우 AI 모델은 작업을 완료하는 데 가장 적합한 선택인 경우에도 해당 도구를 전혀 사용할 수 없습니다.
거부 규칙은 설정되거나 일치하는 승인이 저장된 --allow-all경우에도 permissions-config.json 항상 허용 규칙보다 우선합니다.
예제
| Option | 영향 |
|---|---|
--allow-tool=shell | 모든 셸 명령을 허용합니다. |
--allow-tool='shell(git commit)' | |
git commit 명령을 허용합니다. | |
--allow-tool='shell(git:*)' --deny-tool='shell(git push)' | |
git 명령을 제외한 모든 git push 명령을 허용합니다. | |
--deny-tool=write | 모든 파일 쓰기 작업을 거부합니다. |
--allow-tool='read, write(.github/ | 모든 읽기 작업을 허용하고 특정 파일에 대한 쓰기 작업을 허용합니다. |
--allow-tool='My | |
create_issue MCP 서버의 delete_issue 도구와 MyMCP 도구를 허용합니다. | |
--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)' | 제한된 CLI 세션에 대해 두 컨트롤 계층을 결합합니다. |
| Copilot 에서는 코드를 탐색하고, 편집하고, 변경 내용을 커밋할 수 있지만 인터넷에 연결하거나, 임의의 스바겐트를 실행하거나, Git 기록에 푸시할 수 없습니다. |
지원되는 도구 종류에 대한 자세한 내용은 GitHub Copilot CLI 명령 참조을 참조하세요.
허용 옵션
다음 명령줄 옵션은 Copilot CLI에 모든 사용 가능한 도구를 사용할 수 있는 권한을 부여합니다.
Copilot Business 또는 Copilot Enterprise 라이선스를 보유하고 있는 경우, 엔터프라이즈 관리자가 이러한 명령을 차단할 수 있습니다.
Copilot에 모든 허용 옵션으로 광범위한 권한을 부여하기 전에, 로컬 샌드박싱을 사용하거나 클라우드 샌드박스에서 세션을 실행하여 Copilot이 액세스할 수 있는 항목을 제한하는 것을 고려하세요. 자세한 내용은 로컬 샌드박싱 정보 GitHub Copilot 및 클라우드 샌드박스 정보 GitHub Copilot을(를) 참조하세요.
-
--allow-all-tools— 사용 가능한 도구에 대한 모든 권한. -
--allow-all또는--yolo- CLI를 시작할 때 모든--allow-all-tools,--allow-all-paths및--allow-all-urls옵션을 사용하는 것과 같습니다.대화형 세션 내에서
/permissions allow-all또는/yolo슬래시 명령을 사용하여 세션을 다시 시작하지 않고도 모든 도구를 사용할 수 있습니다.
주의
격리된 환경에서만 이러한 옵션을 사용하는 것이 좋습니다. Copilot CLI를 시작할 때마다 별칭을 사용하여 이러한 옵션 중 하나를 적용해서는 안 됩니다. 그렇게 하면 CLI를 사용할 때마다 명시적 권한 없이 Copilot를 사용할 수 있게 되어, 의도하지 않은 결과가 발생할 수 있습니다.
assisted permissions로 프롬프트 줄이기
모든 권한 허용 옵션은 개별 작업을 검토하지 않고 광범위한 권한을 부여합니다. 일괄 사용 권한을 부여하지 않고 승인 프롬프트를 줄이려면 대신 이 assisted permissions 옵션을 사용하세요.
assisted permissions을 켜려면 대화형 세션에서 /permissions assisted 슬래시 명령을 입력합니다. 대규모 언어 모델은 적격 권한 요청을 평가하고 안전하다고 판단한 요청을 자동으로 승인합니다. 기존 사용 권한 및 엔터프라이즈 규칙이 계속 적용되며 승인이 여전히 필요한 요청이 사용자에게 전달됩니다. 수동 승인으로 돌아가려면 /permissions show을 입력하고, 현재 설정을 확인하려면 /permissions manual을 입력합니다.
/permissions도 인수 없이 입력하여 목록에서 모드를 선택할 수 있습니다.
관리되는 기본값이 구성되지 않은 경우 새 대화형 세션에서 assisted permissions를 기본적으로 사용하려면 사용자 구성 파일에서 "assisted"을 defaultPermissionMode로 설정합니다. CI/CD 워크플로와 같이 비대화형 실행에 사용하려면 --assisted-approval 명령줄 옵션을 사용합니다. 자세한 내용은 수동 승인 없이 안전한 명령을 실행할 수 있도록 허용을(를) 참조하세요.
권한 다시 설정
/reset-allowed-tools 슬래시 명령은 현재 대화형 세션 중에 부여한 권한을 취소합니다. 이는 프롬프트에 응답하여 부여한 사용 권한과 /allow-all, /yolo 또는 /permissions 슬래시 명령 사용에 동일하게 적용됩니다. 또한 권한 모드를 수동으로 되돌리고, 허용-모든 권한 또는 assisted permissions 중 하나가 켜져 있으면 이를 끕니다.
/reset-allowed-tools을 사용하면 권한을 기본값으로 되돌리거나, Copilot CLI를 시작했을 때 사용한 규칙 기반 및 URL 명령줄 옵션(예: --allow-tool, --deny-tool, --allow-url 및 --deny-url)으로 정의된 기준으로 되돌립니다.
또한 이 명령은 저장된 도구 승인 및 저장된 디렉터리 권한을 포함하여 permissions-config.json에서 현재 위치에 대해 저장된 모든 승인을 지웁니다. 또한 autopilot 권한 대화 상자를 다시 활성화하므로 필요한 경우 Copilot autopilot 권한을 다시 묻는 메시지가 표시됩니다.
예를 들어 옵션Copilot CLI으로 대화형 세션을 시작한 --allow-tool='shell(git:*)' 다음 프롬프트에 응답하여 세션 중에 추가 권한을 허용하고 거부하는 경우 명령을 사용하면 /reset-allowed-tools CLI의 사용 권한은 허용되거나 거부된 다른 권한 없이 원래 --allow-tool='shell(git:*)' 상태로 돌아갑니다. 세션에서 작업을 계속하면 Copilot에 추가 권한이 필요한 경우 메시지가 다시 표시됩니다.
다른 위치에 대해 저장된 승인을 제거하려면 .에서 permissions-config.json관련 위치 항목을 편집하거나 삭제합니다. 자세한 내용은 GITHUB COPILOT CLI 구성 디렉터리을(를) 참조하세요.