対話形式で Copilot CLI を実行するだけでなく、対話型セッションに入らずに、1 つのコマンドで CLI に直接プロンプトを渡すこともできます。 これにより、Copilot をスクリプト、CI/CD パイプライン、自動化ワークフローでプログラムで利用することができます。 詳細については、「プログラムによる GitHub Copilot CLI の実行」を参照してください。
この記事では、Copilot CLI をプログラムで実行する場合に特に関連するコマンド ライン オプションと環境変数について説明します。
使用可能なオプションの完全な一覧を表示するには、 GitHub Copilot CLI コマンド リファレンス を参照するか、ターミナルで次のコマンドを入力します。
copilot help
copilot help
コマンド ライン オプション
プログラムでの実行時に特に便利なコマンドライン オプションがいくつかCopilot CLIにあります。
| オプション | 説明 |
|---|---|
-p PROMPT | 非対話型モードでプロンプトを実行します。 CLI はプロンプトを実行し、完了すると終了します。 |
-s | 統計と装飾を抑制し、エージェントの応答のみを出力します。 スクリプトの出力を配管するのに最適です。 |
--add-dir=DIRECTORY | 許可パスの一覧にディレクトリを追加します。 これを複数回使用して、複数のディレクトリを追加できます。 エージェントが現在の作業ディレクトリの外部で読み取り/書き込みを行う必要がある場合に便利です。 |
--agent=AGENT | 使用するカスタム エージェントを指定してください。 |
`--allow-all` (または `--yolo`) | CLI にすべてのアクセス許可を許可します。
`--allow-all-tools --allow-all-paths --allow-all-urls`に相当します。 |
| --allow-all-paths | ファイル パスの検証を完全に無効にします。 パスの制限が必要ない場合に --add-dir するより簡単な代替手段です。 |
| --allow-all-tools | 各ツールの明示的なアクセス許可なしですべてのツールの実行を許可します。 |
| --allow-all-urls | URL ごとに明示的なアクセス許可を持たないすべての URL へのアクセスを許可します。 |
| --allow-tool=TOOL ... | 特定のツールに対するアクセス許可を選択的に付与します。 複数のツールの場合は、引用符で囲まれたコンマ区切りのリストを使用します。 |
| --allow-url=URL ... | エージェントが特定の URL またはドメインをフェッチできるようにします。 ワークフローが既知のエンドポイントへの Web アクセスを必要とする場合に便利です。 複数の URL の場合は、引用符で囲まれたコンマ区切りのリストを使用します。 |
| --deny-tool=TOOL ... | 特定のツールを拒否します。 ロックダウンされたワークフローでエージェントが実行できる操作を制限する場合に便利です。 複数のツールの場合は、引用符で囲まれたコンマ区切りのリストを使用します。 |
| --model=MODEL | AI モデル ( gpt-5.2 や claude-sonnet-4.6など) を選択します。 再現可能なワークフローでモデルをピン留めする場合に便利です。 以下 の「モデルの選択」を 参照してください。 |
| --no-ask-user | エージェントが一時停止して追加のユーザー入力を求めないようにします。 |
| --secret-env-vars=VAR ... | 出力で値がマスクされる環境変数。 複数の変数の場合は、引用符で囲まれたコンマ区切りのリストを使用します。 シークレットがログに公開されるのを防ぐために不可欠です。
GITHUB_TOKEN環境変数とCOPILOT_GITHUB_TOKEN環境変数の値は、既定で編集されます。 |
| --share=PATH | 非対話型の完了後にセッション トランスクリプトをマークダウン ファイルにエクスポートします (既定値は ./copilot-session-<ID>.md)。 エージェントの実行内容の監査またはアーカイブに役立ちます。 セッショントランスクリプトには機密情報が含まれている場合があることに注意してください。 |
| --share-gist | 完了後、セッション トランスクリプトをシークレット GitHub gist として発行します。 CI からの結果を共有する場合に便利です。 セッショントランスクリプトには機密情報が含まれている場合があることに注意してください。 |
`--allow-tool` オプションのツール
`--allow-tool` オプションを使用して、さまざまな種類のツールを指定できます。
| ツールの種類 | 制御する内容 |
|---|---|
| シェル | シェル コマンドの実行。 |
| 書き込み | ファイルの作成または変更。 |
| 読み取り | ファイルまたはディレクトリの読み取り。 |
| URL | URLからコンテンツを取得する。 |
| メモリ | エージェントの永続メモリに新しいファクトを格納する。 これは、既存のメモリの使用には影響しません。 「GitHub Copilotのエージェント記憶について」を参照してください。 |
| MCP-SERVER | 特定の MCP サーバーからのツールの呼び出し。 サーバーの構成済みの名前を識別子として使用します (例: github)。 「GitHub Copilot CLI 用の MCP サーバーを追加する」を参照してください。 |
ツール フィルター
`shell`、`write`、`url`、および MCP サーバー ツールの種類を使用すると、フィルターをかっこで囲んで指定して、許可する特定のツールを制御できます。
| ツールの種類 | 例 | 例の説明 |
|---|
**シェル** | `shell(git:*)` | すべての Git サブコマンド (`git push`、 `git status`など) を許可します。 |
| | shell(npm test) | 正確なコマンドの npm testを許可します。 |
|
書く | write(.github/copilot-instructions.md) | CLI でこの特定のパスへの書き込みを許可します。 |
| | write(README.md) | パスが /README.md で終わるすべてのファイルに CLI が書き込むよう許可します。 |
|
url | url(github.com) | CLI が github.com 上の HTTPS URL にアクセスできるようにします。 |
| | url(http://localhost:3000) | CLI が明示的なプロトコルとポートを使用してローカル開発サーバーにアクセスできるようにします。 |
| | url(https://*.github.com) | CLI が GitHub サブドメイン (たとえば、 api.github.com) にアクセスできるようにします。 |
| | url(https://docs.github.com/copilot/*) | このサイトの Copilot ドキュメントへのアクセスを許可します。 |
|
MCP-SERVER | github(create_issue) |
create_issue MCP サーバーからのgithub ツールのみを許可します。 |
メモ
ワイルドカードは、指定したツールのすべてのサブコマンドと一致する shell と、ホスト名の先頭にある url が任意のサブドメインと一致する場合、またはパスの末尾でパス サフィックスと一致する場合にのみサポートされます (前の表を参照)。
環境変数
環境変数を使用して、プログラムで実行する場合の CLI の動作のさまざまな側面を構成できます。 これは、CI/CD ワークフローや、コマンド ラインで特定のオプションを直接指定したくない場合に、その他の自動化された環境で構成を設定する場合に特に便利です。
| Variable | 説明 |
|---|---|
COPILOT_ALLOW_ALL | 完全なアクセス許可を true に設定する |
COPILOT_MODEL | モデルを設定する (たとえば、 gpt-5.2、 claude-sonnet-4.5) |
COPILOT_HOME | CLI 構成ファイルのディレクトリを設定します (既定では~/.copilot ) |
COPILOT_GITHUB_TOKEN | 認証トークン (優先順位が最も高い) |
GH_TOKEN | 認証トークン (2 番目の優先順位) |
GITHUB_TOKEN | 認証トークン (3 番目の優先順位) |
Copilot CLI の環境変数の詳細については、ターミナルでコマンド copilot help environment を使用します。
モデルの選択
非対話型モードで Copilot CLI にプロンプトを送信すると、CLI が応答の生成に使用するモデルが応答出力に表示されます ( -sまたは --silentオプションが使用されていない場合)。
`--model` オプションを使用して、CLI で使用する AI モデルを指定できます。 これにより、プロンプトに最適なモデルを選択し、速度、コスト、機能などの要因のバランスを取ることができます。
たとえば、コードの説明や概要の生成などの簡単なタスクでは、Claude Haiku モデルなどの高速で低コストのモデルを選択できます。
copilot -p "What does this project do?" -s --model claude-haiku-4.5
copilot -p "What does this project do?" -s --model claude-haiku-4.5
コードのデバッグやリファクタリングなど、より詳細な推論を必要とするより複雑なタスクの場合は、GPT Codex モデルなどのより強力なモデルを選択できます。
copilot -p "Fix the race condition in the worker pool" \ --model gpt-5.3-codex \ --allow-tool='write, shell'
copilot -p "Fix the race condition in the worker pool" \
--model gpt-5.3-codex \
--allow-tool='write, shell'
メモ
ターミナルに「--model」と入力すると、copilot help オプションの説明で使用可能なすべてのモデルのモデル文字列を確認できます。
または、 COPILOT_MODEL 環境変数を設定して、シェル セッションの期間中にモデルを指定することもできます。
シェル セッション間でモデルの選択を保持するには、CLI 構成ファイルで model キーを設定します。 このファイルは~/.copilot/config.jsonにあります ($COPILOT_HOME/.copilot/config.json環境変数を設定している場合はCOPILOT_HOME)。 一部のモデルでは、推論作業レベルを設定することもできます。これにより、モデルが応答するまでの思考に費やす時間を制御できます。
{
"model": "gpt-5.3-codex",
"reasoning_effort": "low"
}
{
"model": "gpt-5.3-codex",
"reasoning_effort": "low"
}
ヒント
構成ファイルでモデルを永続的に設定する最も簡単な方法は、対話型セッションで /model スラッシュ コマンドを使用することです。 このコマンドで行った選択は、構成ファイルに書き込まれます。
モデルの優先順位
特定のプロンプトに使用するモデルを決定する場合、CLI はモデル仕様を次の優先順位 (最高から最下位) でチェックします。
- カスタム エージェントが使用される場所: カスタム エージェント定義で指定されたモデル (存在する場合)。
-
`--model` コマンド ライン オプション。 -
`COPILOT_MODEL` 環境変数。 - 構成ファイル内の
modelキー (~/.copilot/config.jsonまたは$COPILOT_HOME/.copilot/config.json)。 - CLI の既定のモデル。
カスタム エージェントの使用
`--agent` オプションを使用して、特殊なエージェントに作業を委任できます。 詳細については、「[AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli)」を参照してください。
この例では、 code-review エージェントが使用されます。 これには、この名前でカスタム エージェントが作成されている必要があります。
copilot -p "Review the latest commit" \
--allow-tool='shell' \
--agent code-review
詳細については、次を参照してください。
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference)