こんにちは、CLI ヘルプを片っ端から開いて遊ぶアーキテクトのやまぱん!です 😅
補足コメントや質問、いいね、拡散、ぜひお願いします 🥺!
間違っていたら 優しく 教えてください!
本記事は個人の見解で、所属組織を代表するものではありません。検証はすべて自分の手元の Windows 11 + PowerShell 7+ で実機実行しています。
TL;DR
-
GitHub Copilot CLI v1.0.66-1 時点の
copilot --helpとcopilot help <topic>をぜんぶ引いて、起動フラグ・slash command・config・環境変数を 1 ページに集約しました -
--allow-allと--yoloは 完全に同義(中身は--allow-all-tools --allow-all-paths --allow-all-urls) - 非対話運用は
-p+--output-format json+--silent、再開系は--continue/--resume/--session-idを使い分ける - 設定
companyAnnouncements/statusLine/theme/tabsあたりはターミナル体験を盛れる隠し玉でおすすめです 〜! - BYOK は
COPILOT_PROVIDER_*、可観測性はOTEL_*、GHEC データレジデンシーはCOPILOT_GH_HOSTで全部設定できます
0. 検証環境とこの記事の立ち位置
私はふだん GitHub Copilot CLI を Windows 11 のターミナル上で使っているのですが、バージョンが上がるたびに「あれ、このフラグもう変わったっけ?」「slash command 増えてる?」となります。
公式 Docs は大枠を押さえるには十分なのですが、起動フラグ・slash command・config キー・環境変数の網羅一覧 は Docs だけだと拾い切れません。なので毎回 copilot help <topic> を自分で引きにいくのですが、せっかくなら 特定バージョンの状態 を 1 ページにまとめておきたい。
ということで、この記事は私が手元で動かしている v1.0.66-1 のローカル一次情報 を、後から自分でも引きやすい順番で並べた チートシート寄りの記事 です。
| 検証項目 | 値 |
|---|---|
| Copilot CLI バージョン | 1.0.66-1 |
| シェル | PowerShell 7+ |
| OS | Windows 11 |
| 取得方法 |
copilot --help / copilot help <topic> をすべてファイルに保存して目視確認 |
関連で書いた既存記事はこちら ↓
1. まず使い分けたい 3 つのモード
--mode / --autopilot / --plan
v1.0.66 では起動モードが 3 つあります。
-
--mode interactive(デフォルト): いつもの対話モード。ツール使用・パス書き込み・URL アクセスは個別承認。 -
--mode plan/--plan: 計画モード。ツール実行はせず、提案だけ返してくる。Shift+Tab で対話中にも切り替えできます。 -
--mode autopilot/--autopilot: 自走モード。失敗してもリカバリしながら続行する設定。--max-autopilot-continuesで上限を絞れます。
私は最初に --plan で やりたいことを宣言 → 内容を Copilot に整理してもらってから --autopilot に切り替える流れが多いですよ〜!
--allow-all と --yolo の関係
これ地味に混乱するんですが、実機 help を読むと 完全に同じ意味 でした。
--allow-all (alias: --yolo)
= --allow-all-tools --allow-all-paths --allow-all-urls
つまり「ツールも書き込み先もアクセス URL も全部許可」のお祭りモードです。自分の sandbox / 検証 VM 以外では使わないようにしましょう(自戒)。
ちなみに環境変数 COPILOT_ALLOW_ALL=true で固定化もできます。
🦆 ところで --allow-all と --autopilot って同じじゃないの?
別物です! ここ私もよく混同するので表で整理しておきます。実機 help (v1.0.66-1) でもこう書かれています。
--allow-all / --yolo
|
--autopilot |
|
|---|---|---|
| 対象軸 | permission(何を許可するか) | mode(どう動くか) |
| help.txt の説明 | Enable all permissions (equivalent to --allow-all-tools --allow-all-paths --allow-all-urls) |
Start in autopilot mode |
| やること | 確認プロンプトを全部スキップ(ツール実行・パス書き込み・URL アクセス) | エージェントが 途中で止まらず継続実行(既定で最大 5 連続、--max-autopilot-continues で変更可) |
| 関連 |
--allow-all-tools / --allow-all-paths / --allow-all-urls
|
--mode autopilot の alias、--plan の対極 |
| env | COPILOT_ALLOW_ALL |
(単独 env なし) |
つまり、
-
--allow-all/--yolo= 「いちいち聞くな」スイッチ(権限) -
--autopilot= 「止まらず最後まで走れ」スイッチ(モード)
なので、組み合わせ次第で挙動がだいぶ変わります。
| 組み合わせ | 動き |
|---|---|
interactive(既定) |
1 ターンずつ承認、ツール実行も都度確認(最も安全) |
interactive + --allow-all
|
1 ターンずつ進むが、ツール・パス・URL は無確認 |
--autopilot のみ |
自走するが、危ない操作は 都度確認で止まる(autopilot でも permission は別) |
--autopilot + --allow-all
|
完全自走。連続継続 × 全許可 = いわゆるフルオート |
--plan |
ツール実行しない計画モード。--allow-all を付けても基本意味なし |
私は --autopilot 単体 → 危ない操作だけ目視で承認 が無難ですが、ぶっちゃけ気に入っているのは最後の --autopilot + --yolo の組み合わせです 〜!
「席を立ってる間に勝手にゴールまで持っていってくれる」体験は中毒性高くておすすめですよ〜!
ただし、本気で sandbox / 使い捨て VM / 戻せる git ブランチ などの 壊れていい場所 でだけ使ってください。rm -rf を躊躇なく走らせるポテンシャルがあるので、本番リポでやると本当に事故ります(自戒)。
2. セッション再開 3 兄弟: --continue / --resume / --session-id
ここ覚えると毎日のセッションがラクになります。
| 用途 | フラグ |
|---|---|
| 直前 のセッションを継続する | copilot --continue |
| 過去セッションを 選んで 再開(対話式 picker) |
copilot -r または copilot --resume
|
| 過去セッションの ID 指定 で再開 |
copilot --resume=<id> or --session-id=<uuid>
|
| 新規セッションに 任意名 を付ける | copilot --name="my feature" |
-p 非対話実行と組み合わせると、
copilot -p "yesterday の続きから main.js のテストを書いて" --continue --output-format json --silent
みたいに「続きから処理して JSON だけ返す」シェル script に組めます。
3. 非対話運用: -p / --output-format json / --silent
スクリプトに組み込むときの定番セット。
copilot `
-p "Fix the bug in main.js" `
--allow-all-tools `
--output-format json `
--silent
-
-p, --prompt: 1 ターンだけ実行して終了 -
-i, --interactive <prompt>: プロンプトを 初期入力に流し込んで 対話継続 -
--output-format text|json: JSON にすると 構造化済み出力 が取れる -
--silent/-s: バナー・進捗を抑制
既存記事「Copilot CLI で web_search を別の Copilot CLI に投げる」では、この
-p+--silentのパターンを Web 検索 fallback として使っています。
4. 権限とアクセス制御 (--allow-tool / --deny-tool / --allow-url)
v1.0.66 の permissions は 4 つのパターン文字列 で表現します。
shell(command:*?) シェルコマンド系
write ファイル書き込み
<mcp-server>(tool?) MCP サーバとそのツール
url(domain-or-url?) 外部 URL アクセス
実用例(公式 examples より):
# git は全部 OK だけど push だけ拒否
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
# 書き込みだけ許可
copilot --allow-tool='write'
# MyMCP サーバは使うが、ヤバい tool だけ拒否
copilot --deny-tool='MyMCP(denied_tool)' --allow-tool='MyMCP'
# URL は github.com だけ許可
copilot --allow-url=github.com
copilot --deny-url=https://malicious-site.com
Deny が Allow に勝つ
Deny rules take precedence over allow rules.
--allow-all-tools を渡しても、--deny-tool='shell(git push)' を併用すれば push だけは止められます。これ大事です。
パス系
| フラグ | 意味 |
|---|---|
--add-dir <path> |
書き込み許可 dir を 追加(複数指定可) |
--allow-all-paths |
全パス書き込み許可 |
--disallow-temp-dir |
既定で許可されている temp dir も塞ぐ |
/cwd /add-dir /list-dirs は対話中の slash command でも操作できます。
5. モデル選択: --model と --effort、--context
v1.0.66 で help から拾えた 利用可能モデル はこれだけありました。
| ベンダー | モデル |
|---|---|
| Anthropic Claude |
claude-sonnet-4.6 / claude-sonnet-4.5 / claude-haiku-4.5 / claude-fable-5 / claude-opus-4.8 / claude-opus-4.7 / claude-opus-4.6 / claude-opus-4.6-fast / claude-opus-4.5
|
| OpenAI GPT |
gpt-5.5 / gpt-5.4 / gpt-5.3-codex / gpt-5.4-mini / gpt-5-mini
|
| Google Gemini |
gemini-3.1-pro-preview / gemini-3.5-flash
|
切り替え方:
copilot --model gpt-5.4
copilot --model claude-opus-4.7 --effort high
copilot --context long_context # tiered pricing 対応モデル向け
-
--effort:none/low/medium/high/xhigh/max -
--context:defaultまたはlong_context - 対話中は
/modelでいつでも切替
サブエージェントごとに別モデルを当てたいときは config の subagents.agents.<agent-name> に model / effortLevel / contextTier を設定できます。/subagents で対話式に編集する方がラクです。
6. 共有とリモート: --share / --share-gist / --remote / --connect
地味に便利な共有系。help から読み取れる挙動を厳密に書き分けると以下のとおりです。
| フラグ | 用途 |
|---|---|
--share[=path] |
非対話モードで実行完了後 にセッションを Markdown 化して保存(既定: ./copilot-session-<id>.md) |
--share-gist |
非対話完了後 に secret GitHub gist へ push |
--remote |
現在のセッションを GitHub web / mobile からリモート制御可能 にする |
--remote-export |
セッションを web / mobile へ read-only でエクスポート(リモート制御は不可) |
--connect[=sessionId] |
別マシン等で動いている リモートセッションへ直接 connect |
--acp |
Agent Client Protocol サーバとして起動 |
レビュー依頼を投げるときに --share-gist で URL を渡せるのは結構いいですよ〜!
7. MCP 周りのフラグ
MCP サーバの ON/OFF も起動時に細かく制御できます。
# GitHub MCP の全 tool を有効化
copilot --enable-all-github-mcp-tools
# 個別 toolset / tool を追加
copilot --add-github-mcp-toolset=issues
copilot --add-github-mcp-tool=create_pull_request
# 既定で入る MCP サーバ(現在 github-mcp-server)を無効化
copilot --disable-builtin-mcps
# 特定 MCP サーバだけ無効化
copilot --disable-mcp-server=playwright
# 追加 MCP 設定を inline JSON または @<file> で渡す
copilot --additional-mcp-config=@.copilot/mcp-extra.json
--available-tools / --excluded-tools で、その実行で 使う tool を限定 することもできます。Skill / Agent のスコーピングと組み合わせると、暴走防止になります。
8. Slash command 早見表 (v1.0.66)
対話中に /help で全件出ますが、ざっくりカテゴリ分けするとこんな感じです。
| カテゴリ | 主な slash command |
|---|---|
| Agent Env |
/init /agent /skills /mcp /plugin
|
| Agents / Subagents |
/model /delegate /fleet /autopilot /tasks
|
| Code |
/ide /diff /pr /review /security-review /lsp /terminal-setup
|
| Permissions |
/allow-all /add-dir /list-dirs /cwd /reset-allowed-tools
|
| Session |
/resume /rename /context /usage /session /compact /share /remote /copy /rewind
|
| Help |
/help /changelog /feedback /diagnose /theme /statusline /footer /update /version /experimental /memory /clear /instructions /streamer-mode /app
|
| Other |
/ask /budget /chronicle /env /exit /keep-alive /login /logout /new /plan /research /restart /search /settings /sidekicks /subagents /undo /user /voice
|
私のお気に入りは /rewind(直前の編集を巻き戻し)、/compact(履歴圧縮)、/chronicle(過去セッションの横断検索)あたりですよ〜!
/streamer-mode も help 上は見えますが、v1.0.66 の help-config.txt に「staff-only の /streamer-mode command でトグルする」と明記されているため、一般ユーザーは現状使えません。今後のロールアウトに期待したいところです。
9. 🎮 PickUp /コマンド編 8 選
対話セッション中に打つ /... から、私が「使うとセッションの色が変わる」と思っているものを 8 つ。
1️⃣ /rewind — 「さっきのターンなし」ボタン
直前のターンを ファイル変更ごと巻き戻し ます。Copilot が織り始めた複雑なパッチを git checkout しなくても 1 コマンドで戻せるので、探索中の安心感が全然違います。
2️⃣ /compact [focus] — コンテキストの計画的ダイエット
会話履歴を要点だけ残して圧縮します。focus を付けると 「この視点だけ残して」 と指定できるのが便利。
/compact API 設計の決定事項と未解決課題だけ残して
長期セッションでコンテキスト使用量が重くなってきたら走らせると生き返ります。
3️⃣ /chronicle — 過去セッションの横断検索
「あのときどうやって見つけたんだっけ」を 過去セッションを開かずに 検索できます。個人的には Copilot CLI を使う上で 一番オフィスワーク原型っぽい 機能だと思っています。
4️⃣ /research — GitHub + Web の Deep Research
GitHub 検索と Web ソースを使った調査モード。「このライブラリ、今よく使われている代替は?」「このエラー、他にも踏んだ人いる?」を投げると、裏で勝手に重複検索 → 集約して返してくれます。
5️⃣ /budget set max-credits <n> — 走らせすぎ防止(永続化)
/budget set max-credits 10 # 1 response あたりの AI Credit 上限
/budget set max-iterations 3 # 1 response あたりの反復上限
/budget show # 現在の設定確認
/budget unset max-credits # 解除
responseBudget は 1 response 単位 で効くので、夜中に autopilot を回す日の保険として入れておくと安心ですよ〜!起動時だけ上書きしたい場合は CLI オプション編の --max-credits を参照。
6️⃣ /diff + /review + /security-review — コードレビュー 3 点セット
git の変更を AI レビューに回す 3 段構え。
| コマンド | 役割 |
|---|---|
/diff |
現在 dir の変更を見る(git diff の Copilot 版) |
/review |
変更内容を コードレビュー agent に解析させる |
/security-review |
staged / unstaged の変更を セキュリティ観点 で解析 |
PR を投げる前のセルフレビュー / 投げた後の追いレビューで重宝します。
7️⃣ /delegate — セッションごと GitHub に投げて PR 自動作成
/delegate
現在のセッションを GitHub の Copilot cloud agent に送って PR まで作ってもらう ヤツ。手元で考え切れない / 寝てる間に進めたい時に。
8️⃣ /context + /usage — 残量と使用量の可視化
| コマンド | 役割 |
|---|---|
/context |
コンテキストウィンドウのトークン使用量を可視化 |
/usage |
セッションの使用量と統計 |
/compact を打つタイミングを判断する材料にどうぞ。
10. ⚙️ PickUp CLI オプション編 8 選
copilot を叩くときの --xxx から、私が普段「これ知ってる人と知らない人で生産性違いそう」と思うものを 8 つ。
1️⃣ --autopilot + --yolo — 完全自走(推し)
copilot --autopilot --yolo -p "main.js のテストを書いて push まで"
1 章で書いたとおり、「席を立っても勝手にゴールしてくる」 体験は中毒性高めです 〜!sandbox / 使い捨て VM / 戻せる git ブランチ限定で。
2️⃣ --effort xhigh × --context long_context — 思考量ブースト
「ちゃんと考えて欲しい」ケースのセット。
copilot --effort xhigh --context long_context --model claude-opus-4.7
設計レビュー、トラブルシュート、大きなリファクタ計画など、1 ターンでしっかり口を開いて欲しい時 によく使います。逆に軽い説明や余計な推論がいらないタスクには --effort low でコストを搾っても OK。
3️⃣ --share-gist — レビュー依頼の最適解
copilot -p "このコードをレビューして" --allow-all-tools --share-gist
非対話で走らせたセッションを secret gist に push して URL だけ返してくれます。Slack / Teams に投げればレビュアーはコピペなしで読めるので、共有履歴を負担にしたくないときに便利です。
4️⃣ --max-credits + --max-iterations — 走らせすぎ防止(起動時上書き)
copilot --max-credits 10 --max-iterations 3 --autopilot -p "..."
/budget set max-credits の 起動時版。永続化したくない一時的なジョブで使います。/budget とセットで覚えるとリソース管理がラク。
5️⃣ --allow-tool 'shell(git:*)' --deny-tool 'shell(git push)' — 細粒度許可・拒否
copilot --allow-tool 'shell(git:*)' --deny-tool 'shell(git push)' --autopilot
「git は全部 OK、ただし push だけは止めて」のような deny が allow に勝つ ルールが書けます。autopilot で危ない操作を遮るときに便利。
6️⃣ --add-dir 複数指定 — cwd 外も書込み許可
copilot --add-dir ~/workspace --add-dir /tmp/staging --autopilot
既定では「cwd + temp」しか書き込めないので、cwd の外 のフォルダもいじってほしいときはこれ。--allow-all-paths まで開放しなくていいので安全策として優秀。
7️⃣ --continue / --resume / --session-id — 再開 3 兄弟(再掲)
copilot --continue # 直前セッション継続
copilot -r # picker で選択
copilot --session-id=<uuid> # ID 指定
2 章 で詳しく書いていますが、起動時オプションとしてもよく使う ので PickUp に再登場。
8️⃣ -p + --output-format json + --silent — スクリプト埋め込みの定番
copilot -p "Fix the bug in main.js" --allow-all-tools --output-format json --silent
CI や PowerShell スクリプトに組み込むときの黄金パターン。バナー・進捗を抑制 + 構造化 JSON 出力で、後続スクリプトでパースできます。
11. キーボードショートカット(覚えてると速い)
実機で確認できた、覚えておくと得なやつ:
- Shift+Tab: モード切替(interactive ↔ plan)
- Ctrl+Q: 次の入力を キューに積む(応答中でも次の指示を予約)
-
Ctrl+X → B: 編集中のテキストを 外部エディタ (
$EDITOR/$VISUAL/COPILOT_EDITOR) で開く
12. ターミナル体験を盛る config 設定
ここが意外と知られていない楽しい部分です。copilot help config から特に「気分が上がるやつ」だけ抜粋します。
companyAnnouncements: 起動バナーに自分メッセージ
{
"companyAnnouncements": [
"今日もテスト書こうな",
"git push 前に diff を見ろ",
"Copilot は道具、判断は自分"
]
}
起動するたびに ランダム 1 件 がバナーに出ます。チーム共有 config に書いておくと布教にも使えます。
banner / showTipsOnStartup: 起動演出のオンオフ
{
"banner": "always",
"showTipsOnStartup": false
}
-
banner: 起動時のアニメーションバナーの頻度。once(既定) /always/never -
showTipsOnStartup: 起動時のランダム Tip を出すか(既定true)
毎回バナー見たい派は "banner": "always"、配信や録画でうるさい派は "banner": "never" + "showTipsOnStartup": false でスッキリします 〜!
📺 起動演出・UI 装飾 早見表
「バナー周り何があるんだっけ?」用にまとめました。すべて v1.0.66 の copilot help config 実機から拾った既定値と選択肢です。
| 設定キー | 役割 | 既定値 | 選択肢・形式 |
|---|---|---|---|
banner |
起動時のアニメーションバナーの頻度 | "once" |
once / always / never
|
showTipsOnStartup |
起動時のランダム Tip 表示 | true |
true / false
|
companyAnnouncements |
起動バナーに乗せる自作メッセージ | [] |
文字列配列(ランダムで 1 件表示) |
theme |
カラーテーマ | "github" |
github / default / dim / high-contrast / colorblind
|
statusLine |
入力欄下のカスタム表示 | 未設定 | { type:"command", command, padding } |
tabs |
上部タブバー (Session/Agents/Issues/PR/Gists) の並び・非表示 | 既定順 |
{ enabled, sort:[...], hide:[...] }(copilot は hide 不可) |
renderMarkdown |
ターミナル内 Markdown レンダリング | true |
true / false
|
scrollbar |
スクロールバー表示(false で本文を全幅に) |
true |
true / false
|
terminalProgress |
作業中の進捗を OSC 9;4 で送出(ターミナルのプログレスバー) | true |
true / false
|
updateTerminalTitle |
現在のタスクをターミナルタブ名に反映 | true |
true / false
|
notifications |
完了 / 要応答で OS トースト | false |
true / false
|
beep |
要応答時にビープ | false |
true / false
|
beepOnSchedule |
/every /after の予約実行完了でビープ |
true |
true / false
|
theme は /settings theme <value> で変えられます(/theme は deprecated、colorMode は legacy alias)。
statusLine: 入力欄の下にカスタム表示
{
"statusLine": {
"type": "command",
"command": "pwsh -NoProfile -File ~/.copilot/status.ps1",
"padding": 2
}
}
セッションの状態が JSON で stdin に流れてくるので、好きな形式で表示できます。Git ブランチや AI Credit 残量を出すとカッコいいです。
theme と tabs
-
theme:github/default/dim/high-contrast/colorblind -
tabs: 上部のタブバー(Session / Agents / Issues / Pull requests / Gists)をsort/hideで並べ替えできる(copilotタブだけは hide 不可)
keepAlive: スリープ抑止
長時間 autopilot を回す時は keepAlive: "busy" がおすすめ。働いてるときだけ sleep を止めてくれます。
notifications と beep
-
notifications: OS のトースト通知 -
beep: 確認待ちでビープ -
beepOnSchedule:/every/afterの予約実行完了でビープ
裏で長いタスクを回しているときに役立ちます。
Windows ユーザー向け: powershellFlags
CLI が PowerShell を呼ぶときのフラグを上書きできます。既定は ["-NoProfile", "-NoLogo"] ですが、
{
"powershellFlags": ["-NoProfile", "-NoLogo", "-ExecutionPolicy", "Bypass"]
}
のように Bypass を入れておくと、社内環境で実行ポリシーに引っかかりにくくなります。-Command / -File / -NoExit / -EncodedCommand などは ランタイムを壊す ので入れないでね、と公式に書いてあります(守りましょう)。
🚂 番外編:copilot 起動時にずんだもんに発車合図させる
config じゃないんですが、copilot help config を読んでて「beep はあっても起動時に音を鳴らす設定は無いんだな」と気付きました。じゃあ wrapper でやってしまえ、ということで PowerShell の function で copilot を hook して、本物の CLI を呼ぶ前に ずんだもんに発車合図させる ようにしました 🥒🚂
実機で動かしたデモがこちらです(音あり、約 5 秒)。
🎥 デモ動画: Copilot CLI 起動時にずんだもんが発車合図する様子(mp4 / 音あり・約 5 秒)
Qiita では
<video>タグが描画されないため、上のリンクから別タブで再生してください(GitHub アカウントでのログインが必要な場合があります)。
Voice: VOICEVOX:ずんだもん(クレジット表記)
しくみ(全体像)
1. ずんだもんで .wav を作る
VOICEVOX をインストールして起動すると、ローカルに http://127.0.0.1:50021 で REST API が立ち上がります。あとは audio_query → synthesis の 2 ステップで .wav が降ってきます。
$text = "コパイロット、ハッシャーーっ!"
$speaker = 3 # ずんだもん(ノーマル)
$enc = [uri]::EscapeDataString($text)
$q = Invoke-RestMethod -Method Post `
-Uri "http://127.0.0.1:50021/audio_query?speaker=$speaker&text=$enc"
$q.speedScale = 1.1
$tmp = [System.IO.Path]::GetTempFileName()
$q | ConvertTo-Json -Depth 12 | Set-Content -Path $tmp -Encoding utf8
Invoke-WebRequest -Method Post `
-Uri "http://127.0.0.1:50021/synthesis?speaker=$speaker" `
-ContentType 'application/json' `
-InFile $tmp `
-OutFile "$env:USERPROFILE\.config\copilot-wrapper\copilot-zunda.wav" `
-UseBasicParsing
Remove-Item $tmp -Force
2. PowerShell profile に wrapper を追加
$PROFILE に追記します。ポイントは 2 つ。
- 音再生は
Start-ThreadJobで fire-and-forget(メインのcopilot起動を遅延させない) - プレイヤーは WPF の
System.Windows.Media.MediaPlayerを使う
補足: 以下は公開用に一般化したコードです。音ファイルのパス (
$env:USERPROFILE\.config\copilot-wrapper\copilot-zunda.wav) や environment 変数名 (COPILOT_NOSOUND) はお好みに調整して使ってください。
$global:CopilotZundaWav = "$env:USERPROFILE\.config\copilot-wrapper\copilot-zunda.wav"
$global:CopilotRealPath = (Get-Command copilot -CommandType Application -ErrorAction SilentlyContinue |
Where-Object { $_.Source -ne $MyInvocation.MyCommand.Path } |
Select-Object -First 1 -ExpandProperty Source)
function copilot {
if (-not $env:COPILOT_NOSOUND -and $global:CopilotZundaWav -and (Test-Path $global:CopilotZundaWav)) {
$block = {
param($wav)
Add-Type -AssemblyName PresentationCore
$mp = New-Object System.Windows.Media.MediaPlayer
$mp.Open([Uri]::new($wav))
$deadline = (Get-Date).AddSeconds(2)
while (-not $mp.NaturalDuration.HasTimeSpan -and (Get-Date) -lt $deadline) {
Start-Sleep -Milliseconds 30
}
$mp.Play()
$dur = if ($mp.NaturalDuration.HasTimeSpan) {
$mp.NaturalDuration.TimeSpan.TotalMilliseconds + 200
} else { 3000 }
Start-Sleep -Milliseconds ([int]$dur)
$mp.Stop(); $mp.Close()
}
try {
if (Get-Command Start-ThreadJob -ErrorAction SilentlyContinue) {
Start-ThreadJob -ScriptBlock $block -ArgumentList $global:CopilotZundaWav -StreamingHost $null | Out-Null
} else {
Start-Job -ScriptBlock $block -ArgumentList $global:CopilotZundaWav | Out-Null
}
} catch { }
}
if ($global:CopilotRealPath -and (Test-Path $global:CopilotRealPath)) {
& $global:CopilotRealPath @args
} else {
Write-Error 'copilot CLI not found in PATH'
}
}
3. 黙らせたいとき・外したいとき
- 一時的に音を止める:
$env:COPILOT_NOSOUND = '1' - 永続的に外す:
$PROFILEの wrapper ブロックをまるごと削除
⚠️ ハマったところメモ
私が実際にハマったポイントです(同じ環境の人の役に立てば)。
-
System.Media.SoundPlayerが無音で即終了 する環境がある(HDMI Audio が既定出力など)。PlaySync()が再生時間より遥かに早く帰ってきたら疑う。WPF のMediaPlayerに切り替えると鳴った。 -
Start-Jobは spawn に 5〜8 秒かかる。Start-ThreadJobだと 0.3〜1 秒程度。copilot単体の体感速度が全然違うので、PowerShell 7 なら ThreadJob 推奨。 - VOICEVOX の利用規約により、生成音声を使ったコンテンツには「VOICEVOX:ずんだもん」のクレジット表記 が必要です。動画でもブログでも、出すときは入れましょう。
13. 環境変数早見表
公式 copilot help environment から、よく触るやつだけ抜粋。
認証・ホスト
| 変数 | 意味 |
|---|---|
COPILOT_GITHUB_TOKEN / GH_TOKEN / GITHUB_TOKEN
|
認証トークン(この順で優先) |
GH_HOST / COPILOT_GH_HOST
|
GHEC データレジデンシー対応ホスト |
COPILOT_HOME |
設定 / ログの置き場所(既定: $HOME/.copilot) |
挙動制御
| 変数 | 意味 |
|---|---|
COPILOT_ALLOW_ALL |
--yolo 相当を強制 ON |
COPILOT_AUTO_UPDATE |
自動更新 ON/OFF(CI 環境では既定 OFF) |
COPILOT_CUSTOM_INSTRUCTIONS_DIRS |
カンマ区切りで instructions dir を追加 |
COPILOT_MODEL |
使うモデルを env で固定 |
COPILOT_EDITOR / VISUAL / EDITOR
|
Ctrl+X→B で開くエディタ |
NO_COLOR |
カラー出力を切る |
PLAIN_DIFF |
diff を装飾なしで出す |
プロキシ
| 変数 | 意味 |
|---|---|
HTTP_PROXY / HTTPS_PROXY / NO_PROXY
|
大文字小文字どちらでも OK |
COPILOT_PROXY_KERBEROS_SPN |
Kerberos / Negotiate 認証の SPN |
ripgrep / 検索ツール
| 変数 | 意味 |
|---|---|
USE_BUILTIN_RIPGREP |
内蔵 ripgrep を強制使用 |
USE_TGREP / USE_TGREP_WARM_START
|
tgrep 系の有効化 |
🧪 番外編:私の実機 env 設定(参考)
私が普段使っている Windows 11 + PowerShell 7 環境の User scope 環境変数はこんな感じです。記事を書きながら整理する過程で固めました。
[Environment]::SetEnvironmentVariable('COPILOT_ALLOW_ALL', 'true', 'User')
[Environment]::SetEnvironmentVariable('COPILOT_AUTO_UPDATE', 'true', 'User')
[Environment]::SetEnvironmentVariable('USE_BUILTIN_RIPGREP', 'false', 'User')
[Environment]::SetEnvironmentVariable('USE_TGREP', 'true', 'User')
[Environment]::SetEnvironmentVariable('USE_TGREP_WARM_START', 'true', 'User')
| 変数 | 値 | 私のスタンス |
|---|---|---|
COPILOT_ALLOW_ALL |
true |
sandbox 用の検証 PC なので常時 --yolo 相当。本番作業 PC では 絶対に入れない。たまに $env:COPILOT_ALLOW_ALL=$null で一時的に外す |
COPILOT_AUTO_UPDATE |
true |
毎回手動 copilot update するのを忘れがちなので自動更新 ON |
USE_BUILTIN_RIPGREP |
false |
winget で入れている ripgrep 15.x を使いたいので false |
USE_TGREP |
true |
高速検索 tgrep を有効化 |
USE_TGREP_WARM_START |
true |
tgrep の起動を温かく(速く)する |
戻したくなったら:
foreach ($k in 'COPILOT_ALLOW_ALL','COPILOT_AUTO_UPDATE','USE_BUILTIN_RIPGREP','USE_TGREP','USE_TGREP_WARM_START') {
[Environment]::SetEnvironmentVariable($k, $null, 'User')
}
環境変数以外では、$PROFILE に 12 章番外編の wrapper を入れているのと、~/.copilot/config.json の trustedFolders / sessionSync が CLI 側で自動管理されているくらい。手動でいじる主な設定箇所はやはり「env + profile + 起動フラグ」の 3 つに集約されます。
14. BYOK で別プロバイダーをぶら下げる: COPILOT_PROVIDER_*
copilot help providers で読める Bring Your Own Key 用の変数群です。OpenAI 互換・Azure OpenAI・Anthropic に接続できます。
| 変数 | 意味 |
|---|---|
COPILOT_PROVIDER_BASE_URL |
プロバイダー API の base URL |
COPILOT_PROVIDER_TYPE |
openai / azure / anthropic
|
COPILOT_PROVIDER_API_KEY / COPILOT_PROVIDER_BEARER_TOKEN
|
認証 |
COPILOT_PROVIDER_WIRE_API |
completions / responses
|
COPILOT_PROVIDER_TRANSPORT |
http / websockets
|
COPILOT_PROVIDER_AZURE_API_VERSION |
Azure OpenAI の API バージョン |
COPILOT_PROVIDER_MODEL_ID / COPILOT_PROVIDER_WIRE_MODEL
|
モデル ID 指定 |
COPILOT_PROVIDER_MAX_PROMPT_TOKENS / COPILOT_PROVIDER_MAX_OUTPUT_TOKENS
|
トークン上限 |
COPILOT_OFFLINE |
オフラインモード を有効化(GitHub 認証 / telemetry / web tools / GitHub MCP / auto-update を全て停止。ローカル model provider 設定が必須) |
Azure OpenAI を当てたときの Prompt Cache 検証などは、別記事で整理予定です。
15. OpenTelemetry で可観測性: OTEL_*
copilot help monitoring で全部出ます。
補足:
COPILOT_OTEL_ENABLEDを明示的に設定しなくても、OTEL_EXPORTER_OTLP_ENDPOINTまたはCOPILOT_OTEL_FILE_EXPORTER_PATHのどちらかが設定されていれば OTel エクスポーターは自動的に有効化されます(help-monitoring.txt に記載あり)。
| 変数 | 意味 |
|---|---|
COPILOT_OTEL_ENABLED |
OTel エクスポーター ON/OFF |
OTEL_EXPORTER_OTLP_ENDPOINT |
OTLP 送信先 |
COPILOT_OTEL_EXPORTER_TYPE |
otlp-http / file
|
OTEL_EXPORTER_OTLP_PROTOCOL |
http/json / http/protobuf
|
COPILOT_OTEL_FILE_EXPORTER_PATH |
file エクスポーターのパス |
OTEL_SERVICE_NAME |
OTel 標準のサービス名 |
COPILOT_OTEL_SOURCE_NAME |
Copilot CLI 側のソース名(OTel service.name とは別系統) |
OTEL_RESOURCE_ATTRIBUTES |
リソース属性 |
OTEL_EXPORTER_OTLP_HEADERS |
追加ヘッダ |
OTEL_EXPORTER_OTLP_CERTIFICATE (+ TRACES/METRICS) |
TLS 証明書 |
OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE / ..._CLIENT_KEY
|
mTLS |
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT |
プロンプト / レスポンス本文 を span に含めるか(既定 off 推奨。機密が span に乗るリスク) |
OTEL_LOG_LEVEL |
OTel 自体のログレベル |
社内可観測性基盤に流して、誰がどのモデルでどれだけ使ったかを集計できます。
16. 自分用チートシート: 起動フラグ全部入り早見表
私が個人的に「これだけは見れば思い出せる」一覧。
モード: --mode interactive|plan|autopilot / --plan / --autopilot
権限フル開放: --allow-all / --yolo
ツール許可/拒否: --allow-tool '<pattern>' / --deny-tool '<pattern>'
URL 許可/拒否: --allow-url <url|domain> / --deny-url <...>
パス追加: --add-dir <dir> --allow-all-paths --disallow-temp-dir
モデル: --model <name> --effort none|low|medium|high|xhigh|max
コンテキスト: --context default|long_context
セッション再開: --continue / -r --resume[=id] / --session-id <uuid> / --name "<x>"
非対話: -p <prompt> / -i <prompt> / --output-format text|json / -s --silent
共有: --share[=path] / --share-gist / --remote / --remote-export
リモート合流: --connect[=sessionId] / --acp
添付: --attachment <path> (非対話のみ)
ツール限定: --available-tools '<...>' / --excluded-tools '<...>'
MCP: --enable-all-github-mcp-tools / --add-github-mcp-toolset=<n>
--add-github-mcp-tool=<n>
--disable-builtin-mcps / --disable-mcp-server=<n>
--additional-mcp-config=@<file>
Agent/Plugin: --agent <name> / --plugin-dir <dir> / -n --name <name>
予算/ループ: --max-credits <n> / --max-iterations <n> / --max-autopilot-continues <n>
メモリ/推論: --enable-memory / --enable-reasoning-summaries
抑止系: --no-ask-user / --no-custom-instructions / --no-color / --plain-diff
秘密/シェル: --secret-env-vars '<...>' / --bash-env on|off
端末: --screen-reader / --mouse on|off
ログ: --log-dir <dir> / --log-level <level> / --stream on|off
実験: --experimental / --extension-sdk-path <dir>
作業 dir: -C <dir> (起動前に cd)
トップレベルのサブコマンドも添えておきます。
copilot completion <shell> # シェル補完(bash / zsh / fish のみ。PowerShell は非対応)
copilot help [topic] # billing / budget / commands / config /
# environment / logging / monitoring /
# permissions / providers
copilot init # 設定の対話セットアップ
copilot login # 認証
copilot mcp ... # MCP の登録 / 管理
copilot plugin ... # plugin の管理
copilot skill ... # skill の管理
copilot update [channel] # 手動アップデート
copilot version # バージョン
v1.0.66 時点では copilot completion powershell は通りません(実機で error: command-argument value 'powershell' is invalid for argument 'shell'. Allowed choices are bash, zsh, fish. と返ってきます)。PowerShell ユーザーが補完を欲しい場合は、copilot help を別名 alias にする等の代替で凌ぐのがおすすめです。
17. まとめ
- v1.0.66-1 の
copilot --helpとcopilot help <topic>を そのまま一次情報 として残しました。同じ手順で> file.txtに保存しておくと、後で grep で「あのフラグ何だっけ?」を秒で解決できておすすめです 〜! - 公式 Docs に載りきらない
companyAnnouncements/statusLine/tabs/keepAliveあたりは 触ると一気にターミナルが自分仕様 になって楽しいです - BYOK (
COPILOT_PROVIDER_*) と OTel (OTEL_*) を押さえておくと、組織導入の検証時に「ここまで設定可能 ですよ」と即答できるので便利です
重要: 本記事のコマンドや設定キーはすべて v1.0.66-1 時点の実機 help を元にしています。Copilot CLI は週単位で機能追加されているので、新しいバージョンが出たら 必ずご自身の環境で
copilot help <topic>を引き直してください。
参考
自分の手元で同じものを揃える
特定バージョンで自分用チートシートを残したい人向けにワンライナーを置いておきます。
# 出力先を作って一次情報をぜんぶ保存(PowerShell 7+)
$dst = ".\copilot-cli-help"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
copilot --version *> "$dst\version.txt"
copilot --help *> "$dst\help.txt"
foreach ($t in 'billing','budget','commands','config','environment','logging','monitoring','permissions','providers') {
copilot help $t *> "$dst\help-$t.txt"
}
関連で書いた既存記事:




