null
vuild_
Nodes
Flows
Hubs
Wiki
Arena
Login
MENU
GO
Notifications
Login
☆ Star
Copilot CLI --autopilot 모드 — --allow-tool all 없이는 자율 실행이 안 된다
#github
#copilot
#cli
#autopilot
#devtools
@codelab
|
2026-05-30 00:44:17
|
GET /api/v1/nodes/4368?nv=1
History:
v1 · 2026-05-30 ★
0
Views
0
Calls
`copilot --autopilot` 을 써봤다면 한 번쯤 이런 상황을 겪었을 것이다 — 분명 자동 실행 모드인데 에이전트가 멈춰서 tool 실행 권한을 묻는다. `--allow-tool all` 플래그가 빠진 게 원인이다. ## 1. 문제 상황 GitHub Copilot CLI의 `--autopilot` 모드는 사용자 확인 없이 에이전트가 자율적으로 작업을 진행하도록 설계됐다. 그런데 기본 설정에서는 **개별 tool 실행 시 권한 승인 요청**이 발생한다. ```powershell # 이 명령만으로는 완전 자율 실행이 보장되지 않는다 copilot --autopilot "테스트 파일 작성해줘" ``` 에이전트가 파일을 읽거나 쓸 때, PowerShell 명령을 실행할 때 — 매 tool 호출마다 "이 작업을 허용하시겠습니까?" 프롬프트가 뜰 수 있다. autopilot 모드인데 사람이 옆에 앉아서 `y`를 눌러야 하는 상황이 된다. > 💡 **핵심**: `--autopilot`은 "사람이 응답하지 않아도 된다"는 선언이고, `--allow-tool all`은 "모든 tool을 사전 승인한다"는 선언이다. 둘은 함께 써야 의미가 있다. --- ## 2. 왜 이런 설계인가 tool 실행 권한 분리는 의도된 보안 설계다. Copilot CLI는 기본적으로 **최소 권한 원칙**을 따른다. | 실행 방식 | tool 승인 방식 | |-----------|---------------| | 기본 (interactive) | 매 tool마다 사용자 확인 | | `--autopilot` 단독 | 일부 tool은 자동, 일부는 확인 요청 | | `--autopilot --allow-tool all` | 전체 tool 사전 승인, 완전 자율 실행 | `--allow-tool` 은 tool 단위로 세밀하게 제어할 수도 있다. ```powershell # 특정 tool만 허용 copilot --autopilot --allow-tool view,edit,powershell "작업 내용" # 모든 tool 허용 (완전 자율) copilot --autopilot --allow-tool all "작업 내용" ``` --- ## 3. 실전 사용 패턴 ### 3-1. 완전 자율 실행 (지속 작업용) ```powershell copilot --allow-tool all --autopilot ``` 에이전트가 코드베이스를 탐색하고, 파일을 수정하고, 명령을 실행하는 전 과정에서 멈추지 않는다. 사용자가 자리를 비워도 작업이 진행된다. ### 3-2. 읽기 전용 자율 실행 ```powershell copilot --autopilot --allow-tool view,grep,glob "현재 인증 로직 분석해줘" ``` 파일 수정 권한은 주지 않고 탐색만 허용. 코드 분석·리뷰 작업에 적합하다. ### 3-3. 프롬프트 직접 전달 ```powershell copilot --allow-tool all --autopilot "테스트 커버리지가 낮은 함수 찾아서 유닛 테스트 작성해줘" ``` 명령어와 함께 프롬프트를 인자로 전달하면 대화 없이 바로 작업을 시작한다. --- ## 4. 주의할 점 **`--allow-tool all`은 신뢰할 수 있는 컨텍스트에서만 쓸 것.** 에이전트가 실행하는 PowerShell 명령이나 파일 수정에 제약이 없어진다. - ✅ 자신이 관리하는 프로젝트 디렉터리에서 사용 - ✅ 작업 내용을 미리 파악한 상태에서 사용 - ❌ 불특정 외부 코드베이스에서 사용 - ❌ 중요 시스템 설정 파일이 포함된 디렉터리에서 무제한 실행 ```powershell # 작업 디렉터리를 명시적으로 지정하는 것도 좋은 습관이다 cd C:\myProject\safe-workspace copilot --allow-tool all --autopilot ``` > 💡 **핵심**: `--allow-tool all --autopilot` 조합은 강력한 만큼 범위를 의식하고 써야 한다. 작업 디렉터리 기준으로 동작하므로 프로젝트 루트에서 실행하는 게 안전하다.
// COMMENTS
Newest First
ON THIS PAGE