Skip to main content

GitHub Copilot CLI 정보

명령줄에서 Copilot을 사용하는 방법을 알아보세요.

누가 이 기능을 사용할 수 있나요?

GitHub Copilot CLI는 GitHub Copilot Pro, GitHub Copilot Pro(프로)+, GitHub Copilot Business,GitHub Copilot Enterprise 플랜과 함께 사용할 수 있습니다.

조직에서 Copilot을 수신하는 경우 조직의 설정에서 Copilot CLI 정책을 활성화해야 합니다.

소개

GitHub Copilot용 CLI(명령줄 인터페이스)를 사용하면 터미널에서 직접 Copilot을 활용할 수 있습니다. 이를 통해 질문에 답하고, 코드를 작성/디버깅하고, GitHub.com과 상호 작용할 수 있습니다. 예를 들어, Copilot에게 프로젝트를 변경하고 끌어오기 요청을 생성하도록 요청할 수 있습니다.

GitHub Copilot CLI를 사용하면 터미널에서 나가지 않고도 강력한 AI 에이전트에 빠르게 액세스할 수 있습니다. 이 기능은 사용자를 대신해 작업하여 작업을 더 빠르게 완료하는 데 도움이 되며, GitHub Copilot CLI와 반복적으로 작업하여 필요한 코드를 작성할 수 있습니다.

참고 항목

GitHub Copilot CLI는 현재 공개 미리 보기 상태이며 변경될 수 있습니다.

지원되는 운영 체제

설치 지침은 GitHub Copilot CLI 설치을(를) 참조하세요.

사용 모드

GitHub Copilot CLI는 두 가지 모드로 사용할 수 있습니다.

  • 대화형 모드: copilot 명령을 사용하여 대화형 세션을 시작합니다. CLI를 사용하기 위한 기본 모드입니다.

    이 모드에서는 Copilot에게 질문에 답하거나 작업을 수행하도록 요청할 수 있습니다. 동일한 세션에서 Copilot의 응답에 바로 반응할 수 있습니다.

    Copilot의 대화형 모드에서 표시되는 환영 메시지의 스크린샷

  • 프로그래밍 모드: 명령줄에서 직접 단일 프롬프트를 CLI에 전달할 수도 있습니다. -p 또는 --prompt 명령줄 옵션을 사용하여 이 작업을 수행합니다. Copilot이 파일을 수정하거나 실행할 수 있도록 허용하려면 승인 옵션 중 하나를 사용해야 합니다(이 문서의 뒷부분에 있는 수동 승인 없이 도구 사용 허용 참조). 예시:

    Bash
    copilot -p "List my open PRs" --allow-all-tools 

    또는 스크립트를 사용하여 명령줄 옵션을 출력하고 이를 copilot에 파이프로 전달할 수 있습니다. 예시:

    Bash
    echo ./script-outputting-options.sh | copilot 

주의

--allow-all-tools와 같은 자동 승인 옵션을 사용하면 Copilot은 컴퓨터의 파일에 대해 사용자와 동일한 액세스 권한을 가지며, 사전 승인 없이도 사용자가 실행할 수 있는 모든 셸 명령을 실행할 수 있습니다. 이 문서의 뒷부분에 나오는 보안 고려 사항을 참조하세요.

GitHub Copilot CLI 사용 사례

다음 섹션에서는 GitHub Copilot CLI를 사용하여 완료할 수 있는 작업의 예를 제공합니다.

로컬 작업

  • 프로젝트 디렉터리 내에서 Copilot에게 프로젝트 코드 변경을 요청할 수 있습니다. 예시:

    Change the background-color of H1 headings to dark blue

    Copilot은 H1 헤딩이 정의된 CSS 파일을 찾아 색상 값을 변경합니다.

  • Copilot에게 파일의 변경 내역을 알려 달라고 요청합니다.

    Show me the last 5 changes made to the CHANGELOG.md file. Who changed the file, when, and give a brief summary of the changes they made

  • Copilot을 사용하면 프로젝트의 코드나 문서를 개선하는 데 도움이 됩니다.

    • Suggest improvements to content.js

    • Rewrite the readme in this project to make it more accessible to newcomers

  • Copilot을 사용하면 Git 작업을 수행하는 데 도움이 됩니다.

    • Commit the changes to this repo

    • Revert the last commit, leaving the changes unstaged

  • Copilot에게 개념 증명 등의 목적으로 처음부터 애플리케이션을 만들어 달라고 요청합니다.

    Use the create-next-app kit and tailwind CSS to create a next.js app. The app should be a dashboard built with data from the GitHub API. It should track this project's build success rate, average build duration, number of failed builds, and automated test pass rate. After creating the app, give me easy to follow instructions on how to build, run, and view the app in my browser.

  • Copilot에게 변경 내용이 예상대로 작동하지 않는 이유를 설명해 달라고 요청하거나, 마지막으로 변경한 내용의 이슈를 해결해 달라고 Copilot에게 요청합니다. 예시:

    You said: "The application is now running on http://localhost:3002 and is fully functional!" but when I browse to that URL I get "This site can't be reached"

GitHub.com과 관련된 작업

  • GitHub.com에서 작업의 세부 정보를 가져와서 표시합니다.

    • List my open PRs

      GitHub의 모든 리포지토리에서 열려 있는 끌어오기 요청이 나열됩니다. 보다 구체적인 결과를 얻으려면 프롬프트에 리포지토리 이름을 포함하세요.

    • List all open issues assigned to me in OWNER/REPO

  • Copilot에게 이슈 작업 요청하기:

    I've been assigned this issue: https://github.com/octo-org/octo-repo/issues/1234. Start working on this for me in a suitably named branch.

  • Copilot에게 파일을 변경하고 GitHub.com에서 끌어오기 요청을 생성하도록 요청하세요.

    • In the root of this repo, add a Node script called user-info.js that outputs information about the user who ran the script. Create a pull request to add this file to the repo on GitHub.

    • Create a PR that updates the README at https://github.com/octo-org/octo-repo, changing the subheading "How to run" to "Example usage"

    Copilot은 github.com에서 사용자를 대신하여 끌어오기 요청을 만듭니다. 사용자는 끌어오기 요청 작성자로 표시됩니다.

  • Copilot에게 GitHub.com에서 이슈를 생성해 달라고 요청합니다.

    Raise an improvement issue in octo-org/octo-repo. In src/someapp/somefile.py the `file = open('data.txt', 'r')` block opens a file but never closes it.

  • Copilot에게 끌어오기 요청의 코드 변경 내용을 확인하도록 요청합니다.

    Check the changes made in PR https://github.com/octo-org/octo-repo/pull/57575. Report any serious errors you find in these changes.

    Copilot은 발견한 모든 이슈를 요약하여 CLI에서 응답합니다.

  • GitHub Copilot CLI에서 끌어오기 요청을 관리합니다.

    • Merge all of the open PRs that I've created in octo-org/octo-repo

    • Close PR #11 on octo-org/octo-repo

  • 특정 유형의 이슈를 찾습니다.

    Use the Github MCP server to find good first issues for a new team member to work on from octo-org/octo-repo

    참고 항목

    특정 MCP 서버가 특정 작업을 수행할 수 있다는 것을 알고 있다면, 프롬프트에 이를 지정하여 Copilot에서 원하는 결과를 제공하는 데 도움이 될 수 있습니다.

  • 특정 GitHub Actions 워크플로를 찾습니다.

    List any Actions workflows in this repo that add comments to PRs

  • GitHub Actions 워크플로를 만듭니다.

    Branch off from main and create a github actions workflow that will run on pull requests, or can be run manually. The workflow should run eslint to check for problems in the changes made in the PR. If warnings or errors are found these should be shown as messages in the diff view of the PR. I want to prevent code with errors from being merged into main so, if any errors are found, the workflow should cause the PR check to fail. Push the new branch and create a pull request.

보안 고려 사항

Copilot CLI를 사용하면 Copilot이 파일을 실행하거나 수정하고, 셸 명령을 실행하는 등의 작업을 대신 수행할 수 있습니다.

따라서 Copilot CLI를 사용할 때는 파일을 직접 작업하거나 터미널에서 직접 명령을 실행할 때와 마찬가지로 항상 보안 고려 사항을 염두에 두어야 합니다. Copilot CLI에서 승인을 요청할 때는 항상 제안된 명령을 주의 깊게 검토해야 합니다.

신뢰할 수 있는 디렉터리

GitHub Copilot CLI 세션을 시작하면 CLI를 실행한 디렉터리의 파일과 그 하위 디렉터리의 파일을 신뢰하는지 확인하라는 메시지가 표시됩니다.

경고

  • 신뢰하는 디렉터리에서만 Copilot CLI를 실행해야 합니다. 신뢰할 수 없는 실행 파일이 포함되어 있는 디렉터리에서는 Copilot CLI를 사용해서는 안 됩니다. 마찬가지로, 중요하거나 기밀인 데이터나 변경하고 싶지 않은 파일이 들어 있는 디렉터리에서 CLI를 실행하면 의도치 않게 해당 파일이 위험에 노출될 수 있습니다. 일반적으로 홈 디렉터리에서는 Copilot CLI를 실행하지 않는 것이 좋습니다.
  • 권한 범위 지정은 추론 방식으로 동작하며 GitHub는 신뢰할 수 있는 디렉터리 외부의 모든 파일이 보호된다는 것을 보장하지 않습니다. 이 문서의 뒷부분에 있는 위험 완화를 참조하세요.

다음 중에서 디렉터리를 신뢰할 수 있는 방법을 선택할 수 있습니다.

  • 현재 실행 중인 세션에만 적용
  • 현재 및 향후 세션 모두에 적용

이후 세션에서도 해당 디렉터리를 신뢰하도록 선택하면 신뢰할 수 있는 디렉터리 프롬프트가 다시 표시되지 않습니다. Copilot이 항상 안전하게 작동할 수 있는 환경이라고 확신하는 경우에만 이 두 번째 옵션을 선택해야 합니다.

CLI의 config.json 파일에 있는 trusted_folders 배열의 내용을 수정하여 영구적으로 신뢰할 수 있는 디렉터리 목록을 편집할 수 있습니다. 기본적으로 ~/.config 디렉터리에 있습니다. XDG_CONFIG_HOME 환경 변수를 설정하여 이 위치를 변경할 수도 있습니다.

허용된 도구

Copilot이 파일을 수정하거나 실행하는 데 사용할 수 있는 도구(예: touch, chmod, node, sed)를 처음으로 사용해야 할 때, 해당 도구를 사용하도록 허용할지 여부를 묻습니다.

일반적으로 다음 세 가지 옵션 중에서 선택할 수 있습니다.

1. Yes 2. Yes, and approve TOOL for the rest of the running session 3. No, and tell Copilot what to do differently (Esc) 

옵션 1은 Copilot이 이번에만 이 특정 명령을 실행하도록 허용합니다. 다음에 이 도구를 사용해야 할 때 다시 묻게 됩니다.

옵션 2는 Copilot이 현재 실행 중인 세션 동안 별도의 허가를 요청하지 않고도 이 도구를 다시 사용할 수 있도록 허용합니다. 새로운 세션에서 또는 나중에 현재 세션을 다시 시작할 경우에는 다시 승인을 요청합니다. 이 옵션을 선택하면 Copilot이 적절하다고 생각하는 방식으로 이 도구를 사용할 수 있게 됩니다. 예를 들어, Copilot에서 명령 rm ./this-file.txt를 실행하도록 허용해 달라고 요청했을 때 옵션 2를 선택하면, 이 세션이 현재 실행되는 동안 Copilot은 사용자의 승인을 구하지 않고도 모든 rm 명령(예: rm -rf ./*)을 실행할 수 있습니다.

옵션 3은 제안된 명령을 취소하고 Copilot에게 다른 접근 방식을 시도하도록 지시할 수 있습니다.

수동 승인 없이 도구를 사용할 수 있도록 허용

Copilot이 사용자의 승인을 받지 않고도 사용할 수 있는 도구를 결정하기 위해 대화형 모드 또는 프로그래밍 모드에서 사용할 수 있는 세 가지 명령줄 옵션이 있습니다.

  • --allow-all-tools

    Copilot이 사용자의 승인 없이 모든 도구를 사용할 수 있도록 허용합니다.

    예를 들어, 프로그래밍 모드에서 이 옵션을 사용하여 CLI가 모든 명령을 실행하도록 허용할 수 있습니다. 예시:

    copilot -p "Revert the last commit" --allow-all-tools 
  • --deny-tool

    Copilot이 특정 도구를 사용하지 못하도록 합니다.

    이 옵션은 --allow-all-tools--allow-tool 옵션보다 우선 적용됩니다.

  • --allow-tool

    Copilot이 사용자의 승인 없이 특정 도구를 사용할 수 있도록 허용합니다.

승인 옵션 사용하기

--deny-tool--allow-tool 옵션에는 다음 인수 중 하나가 필요합니다.

  • 'shell(COMMAND)'

    예를 들어, copilot --deny-tool 'shell(rm)'은 Copilot이 rm 명령을 사용하는 것을 방지합니다.

    gitgh 명령의 경우, 특정 1차 하위 명령을 지정하여 허용하거나 거부할 수 있습니다. 예시:

    copilot --deny-tool 'shell(git push)' 

    도구 사양은 선택 사항입니다. 예를 들어, copilot --allow-tool 'shell'은 Copilot이 개별 승인 없이 모든 셸 명령을 사용할 수 있도록 허용합니다.

  • 'write'

    이 인수는 셸 명령 이외의 도구에서 파일을 수정할 수 있는 권한을 허용하거나 거부합니다.

    예를 들어, copilot --allow-tool 'write'는 Copilot이 개별 승인 없이 파일을 편집할 수 있도록 허용합니다.

  • 'MCP_SERVER_NAME'

    이 인수는 지정된 MCP 서버의 도구를 허용하거나 거부합니다. 여기서 MCP_SERVER_NAME은 사용자가 구성한 MCP 서버의 이름입니다. 서버에서 제공하는 도구는 MCP 서버에 등록된 도구 이름을 사용하여 괄호로 지정됩니다. 도구를 지정하지 않고 서버 이름을 사용하면 해당 서버의 모든 도구를 허용하거나 거부할 수 있습니다.

    예를 들어, copilot --deny-tool 'My-MCP-Server(tool_name)'는 Copilot이 My-MCP-Server라는 MCP 서버에서 제공하는 tool_name이라는 도구를 사용하지 못하도록 합니다.

    Copilot CLI의 대화형 모드에서 /mcp를 입력하고 표시되는 목록에서 서버를 선택하면 MCP 서버 이름을 찾을 수 있습니다.

승인 옵션 결합하기

승인 옵션을 결합해 Copilot이 승인 없이 사용할 수 있는 도구를 정확하게 지정할 수 있습니다.

예를 들어, Copilot이 rmgit push 명령을 사용하지 못하도록 하면서 그 외 다른 모든 도구는 자동으로 허용하려면 다음을 사용합니다.

copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)' 

Copilot이 My-MCP-Server라는 MCP 서버의 도구 tool_name을 사용하지 못하도록 하지만, 해당 서버의 다른 모든 도구는 개별 승인 없이 사용할 수 있도록 하려면 다음을 사용하세요.

copilot --allow-tool 'My-MCP-Server' --deny-tool 'My-MCP-Server(tool_name)' 

자동 도구 승인의 보안 영향

승인 명령줄 옵션 사용 시 보안에 미치는 영향을 알고 있어야 합니다. 이러한 옵션을 사용하면 Copilot이 요청을 완료하는 데 필요한 명령을 실행할 수 있으며, 실행되기 전에 해당 명령을 검토하고 승인할 기회를 제공하지 않습니다. 이렇게 하면 워크플로를 간소화하고 CLI를 헤드리스로 작동할 수 있도록 하지만 데이터 손실, 손상 또는 기타 보안 문제가 발생할 수 있는 의도하지 않은 작업이 수행될 위험이 커집니다.

위험 완화

인터넷 접속이 불가능한 가상 머신, 컨테이너, 전용 시스템과 같은 제한된 환경에서 Copilot CLI를 사용하면 자동 승인 옵션 사용과 관련된 위험을 완화할 수 있습니다. 이는 사용자가 검토하고 유효성을 검사하지 않은 명령을 Copilot이 실행할 때 발생할 수 있는 잠재적 피해를 제한된 범위로 국한시킵니다.

모델 사용

GitHub Copilot CLI에서 사용하는 기본 모델은 Claude Sonnet 4입니다. GitHub는 이 모델을 변경할 수 있는 권한을 가집니다.

COPILOT_MODEL 환경 변수를 gpt-5로 설정하면 모델을 GPT-5로 변경할 수 있습니다.

Copilot CLI의 대화형 모드에서 Copilot에 프롬프트를 제출할 때마다, 그리고 프로그래매틱 모드에서 Copilot CLI를 사용할 때마다, Copilot 프리미엄 요청의 월별 할당량이 하나씩 줄어듭니다. 프리미엄 요청에 관한 내용은 GitHub Copilot의 요청을(를) 참조하세요.

피드백

GitHub Copilot CLI에 대한 피드백이 있다면 대화형 세션에서 /feedback 슬래시 명령을 사용하여 옵션 중 하나를 선택하여 알려주세요. 프라이빗 피드백 설문 조사를 완료하거나 버그 보고서를 제출하거나 새 기능을 제안할 수 있습니다.

추가 참고 자료