Skip to main content

GitHub Copilot CLI について

コマンド ラインから Copilot を使う方法について説明します。

この機能を使用できるユーザーについて

GitHub Copilot CLI は、GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Business、GitHub Copilot Enterprise プランで使用できます。

Copilot を organization から受け取る場合は、organization の設定で Copilot CLI ポリシーを有効にする必要があります。

はじめに

GitHub Copilot のコマンド ライン インターフェイス (CLI) を使うと、ターミナルから直接 Copilot を使用できます。 これにより、質問への回答、コードの作成とデバッグ、GitHub.com の操作を行うことができます。 たとえば、プロジェクトを変更して pull request を作成するよう Copilot に依頼できます。

GitHub Copilot CLI を使うと、ターミナルを離れることなく、強力な AI エージェントにすばやくアクセスできます。 ユーザーに代わって作業することで、タスクの迅速な完了を支援する機能があります。また、GitHub Copilot CLI を繰り返し使って必要なコードをビルドすることもできます。

メモ

GitHub Copilot CLI はパブリック プレビュー段階であり、変更される可能性があります。

サポートされるオペレーティング システム

インストール手順については、「GitHub Copilot CLI のインストール」を参照してください。

使用モード

GitHub Copilot CLI は、次の 2 つのモードで使用できます。

  • 対話型モード: copilot コマンドを使って対話型セッションを開始します。 これは、CLI を操作する場合の既定のモードです。

    このモードでは、Copilot に質問への回答やタスクの実行を依頼するプロンプトを送信できます。 ユーザーは同じセッションで Copilot の応答に対応できます。

    Copilot の対話モードでのようこそメッセージのスクリーンショット。

  • プログラム モード: コマンド ラインで CLI に 1 つのプロンプトを直接渡すこともできます。 これを実行するには、-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 上の任意のリポジトリからオープン状態の pull request が一覧表示されます。 より具体的な結果を得るには、プロンプトにリポジトリ名を含めます。

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

  • Copilot に issue の解決を依頼します。

    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.

  • ファイルを変更し、GitHub.com で pull request を作成するよう Copilot に依頼します。

    • 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 で pull request を作成します。 Pull request の作成者としてマークされるのはユーザーです。

  • GitHub.com で issue を作成するよう Copilot に依頼します。

    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.

  • Pull request 内のコード変更をチェックするよう 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 からの pull request を管理します。

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

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

  • 特定の種類の issue を見つけます。

    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 を使用しても常に安全な場所であると確信できる場合にのみ、この 2 つ目のオプションを選んでください。

CLI の config.json ファイル内の trusted_folders 配列の内容を修正することで、永続的に信頼するディレクトリの一覧を編集できます。 これは、既定で ~/.config ディレクトリにあります。 この場所は、XDG_CONFIG_HOME 環境変数を設定することで変更できます。

許可済みツール

ファイルの変更や実行に使用できるツール (例: touchchmodnodesed) を Copilot で初めて使う必要がある場合、そのツールの使用を許可するかどうかを尋ねられます。

通常、次の 3 つのオプションから選択できます。

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 がユーザーの承認を得ずに使用できるツールを決定するために、3 つのコマンド ライン オプションを使用できます。

  • --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)' と指定すると、My-MCP-Server という MCP サーバーからの tool_name というツールを使うことを Copilot に禁止できます。

    MCP サーバーの名前を確認するには、Copilot CLI の対話モードで「/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 のヘッドレス操作が可能になりますが、意図しないアクションが実行され、データの損失や破損、その他のセキュリティに関する issue が発生するリスクが高まります。

リスク軽減

インターネットにアクセスできない仮想マシン、コンテナー、専用システムなどの制限された環境で Copilot CLI を使うと、自動承認オプションの使用に関連するリスクを軽減できます。 これにより、レビューと検証が済んでいないコマンドの実行を Copilot に許可した場合に発生する可能性のある損害を限定できます。

モデルの使用法

メモ

Claude Sonnet 4.5 は、GitHub Copilot CLI バージョン 0.0.329 以降で使用できます。

GitHub Copilot CLI で使われる既定のモデルは Claude Sonnet 4 です。 GitHub はこのモデルを変更する権利を留保します。

モデルを変更するには、COPILOT_MODEL 環境変数をサポートされるいずれかの値に設定します。 たとえば、COPILOT_MODELgpt-5 に設定して、モデルを GPT-5 に変更します。

モデル名COPILOT_MODEL
Claude Sonnet 4claude-sonnet-4
Claude Sonnet 4.5claude-sonnet-4.5
GPT-5gpt-5

Copilot CLI の対話モードで Copilot にプロンプトを送信するたびに、また Copilot CLI をプログラム モードで使うたびに、Copilot の Premium リクエストの月間クォータが 1 つずつ減ります。 Premium リクエストについては、「GitHub Copilot における要求」をご覧ください。

フィードバック

GitHub Copilot CLI についてフィードバックがある場合は、対話型セッションで /feedback スラッシュ コマンドを使い、いずれかのオプションを選んでお知らせください。 プライベート フィードバック アンケートに回答したり、バグ レポートを送信したり、新しい機能を提案したりできます。

参考資料