GitHub Copilot CLI のエラー

error: Invalid command format.

結論

プロンプトを引用符で囲んでいないため、後ろの語が別の引数として扱われた状態。

確認した版 GitHub Copilot CLI v1.0.80
確認日 2026年8月22日
最終更新 2026年8月22日
根拠 実機で確認

エラー文字列

GitHub Copilot CLI
error: Invalid command format.

⚠️ 標準エラーに出て、終了コードは 1 です。

error: Invalid command format.

It looks like your prompt was not quoted, so the extra words were treated as separate arguments.
Wrap the prompt in quotes, for example: copilot -p "your prompt here"

Try 'copilot --help' for more information.

何が起きているか

プロンプトを引用符で囲んでいません。 シェルが空白で語を分けるため、2語目以降が「別の引数」として渡されています。

copilot -p hello world

Copilot CLI から見ると、こう渡っています。

位置 受け取ったもの
-p の値 hello
余った引数 world

-p は値を1つしか取りません。 残りは行き場が無いので、書式の誤りとして扱われます。

🔴 短いプロンプトだと成功してしまう

⚠️ 1語だけなら通ります。 そのため「昨日は動いたのに」となりがちです。

書き方 結果
copilot -p hello 🔴 通る(たまたま1語だから)
copilot -p hello world このエラー
copilot -p "hello world" ⭐ 正しい

通ったほうが例外だと考えてください。

もうひとつの形

サブコマンドのつもりで、存在しない語を並べたときは別の案内が出ます。

error: Invalid command format.

Did you mean: copilot -i "config set no-such-key 1"?

For non-interactive mode, use the -p or --prompt option.

⚠️ これは「その語をプロンプトとして解釈しますか」という提案です。 サブコマンド名が間違っている可能性のほうが高いので、まず copilot --help で正しい名前を確認してください。

直し方

1. プロンプト全体を引用符で囲む

copilot -p "テストを実行して失敗を直して"
copilot -p "テストを実行して失敗を直して"

2. プロンプトに引用符が含まれる場合

macOS / Linux — 中に " があるならシングルクォートで囲みます。

copilot -p 'エラー "not found" の原因を調べて'

⚠️ シングルクォートの中では変数が展開されません。 変数を使うなら、その部分だけダブルクォートに切り替えます。

copilot -p "ファイル $FILE を確認して"

Windows(PowerShell) — 中の " はバッククォートで打ち消します。

copilot -p "エラー `"not found`" の原因を調べて"

3. 長いプロンプトは変数に入れる

引用符の入れ子で混乱するときは、先に組み立てます。

PROMPT='この関数のテストを書いて。境界値も含めること。'
copilot -p "$PROMPT"
$prompt = 'この関数のテストを書いて。境界値も含めること。'
copilot -p $prompt

4. 改行を含めたい場合

macOS / Linux

copilot -p "$(printf '次を直して:\n- テストの失敗\n- 型エラー')"

⚠️ echo -e は環境によって挙動が変わります。 printf を使ってください。

5. スクリプトや CI で使う場合

シェルによる分割は、変数を引用符で囲み忘れたときにも起きます。

copilot -p "$PROMPT"

🔴 copilot -p $PROMPT と書くと、$PROMPT の中身が空白で分割されます。 手で打ったときは通っても、値が長くなった途端に落ちます。

再発防止

  • -p の後ろは必ず引用符で囲む。 1語のときも囲んでおけば、あとで語を足しても壊れません
  • スクリプトでは変数も "$VAR" と囲む
  • 引用符が入れ子になるなら、先に変数へ入れてから渡す

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する