GrokCLIを入れたのに、最初の実行で「APIキーが見つからない」「認証できない」「モデル名が違う」と止まると、何を直せばいいのか一気に不安になります。多くの場合、原因は難しい不具合ではなく、環境変数をどこに、どの名前で、いつ反映させるかのズレです。正しい順番で確認すれば、今日のうちにターミナルからGrokを呼び出せる状態まで持っていけます。
- GrokCLIで最初に確認するべき環境変数は、使っている実装が求めるAPIキー名です。
- 設定は一時設定ではなく、シェル設定ファイルへ保存してからターミナルを読み直すと安定します。
- 動かない時は、インストール、変数名、反映、キーの有効性、モデル名の順で確認すると迷いません。
まず理解したい環境変数の役割

AIのイメージ
環境変数は、ターミナルやコマンドに渡す「見えない設定メモ」のようなものです。GrokCLIは、実行時にこの設定メモを読みに行き、APIキー、接続先、使うモデルを判断します。画面に毎回APIキーを入力しないのは便利ですが、そのぶん設定場所を間違えると、CLIからは何も見えていない状態になります。
APIキーはパスワードと同じ扱いにする
APIキーは、GrokのAPIを使うための鍵です。チャット用のログイン情報とは別物として扱います。コードの中に直接書いたり、公開リポジトリへ混ぜたりすると、第三者に使われる危険があります。設定する時は、ソースコードではなくターミナルの環境変数に入れるのが基本です。
変数名は実装ごとに違うことがある
GrokCLIと呼ばれるものには複数の実装があります。ある実装ではGROK_API_KEYを読み、別の実装ではXAI_API_KEYを読む場合があります。ここを勘違いすると、正しいキーを入れていても「未設定」と判定されます。まず使っているCLIがどの変数名を読むかを確認し、その名前に合わせて設定します。
最短で動かす基本手順
最初は永続設定まで一気に作るより、現在のターミナルだけで試すと失敗箇所を切り分けやすくなります。動作確認が通ったら、次にシェル設定ファイルへ保存します。
- ターミナルで
grok --helpを実行し、GrokCLIのコマンド自体が見つかるか確認します。
- 使っているCLIが求めるAPIキー名を確認し、
GROK_API_KEYまたは
XAI_API_KEYのどちらを使うか決めます。
- 現在のターミナルだけで試す場合は、macOSやLinuxなら
export GROK_API_KEY="取得したAPIキー"を実行します。
- WindowsPowerShellなら
$env:GROK_API_KEY="取得したAPIキー"を実行します。
-
echo $GROK_API_KEYまたは
echo $env:GROK_API_KEYで値が表示されるか確認します。
-
grokを実行し、入力待ちや応答が出るか確認します。
- 動作したら、同じ設定をシェル設定ファイルへ保存し、新しいターミナルでも使える状態にします。
macOSやLinuxで永続化する方法
zshを使っているなら
~/.zshrc
、bashを使っているなら
~/.bashrc
に設定を書きます。どちらか分からない時は、ターミナルで
echo $SHELL
を実行すると、末尾にzshやbashが表示されます。
echo 'export GROK_API_KEY="取得したAPIキー"' >> ~/.zshrc
source ~/.zshrc
bashの場合は、保存先を
~/.bashrc
に変えます。反映後に
echo $GROK_API_KEY
を実行し、APIキーらしき文字列が出れば読み込みは成功です。画面共有中や配信中は、この確認コマンドを実行しないでください。
WindowsPowerShellで永続化する方法
PowerShellでは、現在の画面だけに入れる方法と、ユーザー環境変数として保存する方法があります。毎回使うなら、ユーザー環境変数に保存します。
::SetEnvironmentVariable("GROK_API_KEY","取得したAPIキー","User")
実行後は、PowerShellを一度閉じて開き直します。開き直さないと、古い環境のままで「設定したのに見えない」状態になります。新しいPowerShellで
$env:GROK_API_KEY
を実行し、値が出るか確認します。
どの環境変数を設定すればいいか
初心者が混乱しやすいのは、APIキー以外にも設定できる項目がある点です。最初から全部を触る必要はありません。まずAPIキーだけを通し、必要になったらモデル名や接続先を追加します。
| 環境変数 | 使う場面 |
|---|---|
| GROK_API_KEY | GrokCLIがGROK_API_KEYを読む実装で、xAIのAPIキーを渡す時に使います。 |
| XAI_API_KEY | xAI向けツールや一部のCLIがXAI_API_KEYを読む場合に使います。 |
| GROK_BASE_URL | 標準以外のAPI接続先を指定する時に使います。初心者は通常触らなくて大丈夫です。 |
| GROK_MODEL | 使うモデルを固定したい時に使います。モデル名エラーが出る場合は一度未設定に戻すと切り分けできます。 |
最初はAPIキーだけで十分
初回設定でよくある失敗は、モデル名や接続先まで同時に変えてしまい、どこが原因か分からなくなることです。まずAPIキーだけ設定します。それで動いたら、次にモデル名を指定します。この順番なら、エラーが出た時に「APIキーは通っているがモデル指定が怪しい」と判断できます。
GROK_API_KEYとXAI_API_KEYで迷った時
迷った時は、CLIのヘルプや設定説明で求められている名前に合わせます。それでも分からない場合は、両方に同じ値を入れて動作確認しても構いません。ただし、運用を始める前に使われていない方は削除しておくと、あとで設定を見直す時に混乱しません。
エラー別の直し方
GrokCLIの設定エラーは、表示される文言だけを見ると難しく見えます。けれど、ほとんどは「コマンドがない」「環境変数が見えない」「APIキーが違う」「モデル指定が合わない」のどれかです。
commandnotfoundと出る場合
これは環境変数の問題ではなく、GrokCLI自体が見つかっていない状態です。インストールが終わっていない、またはインストール先にPATHが通っていません。まず
npm list -g --depth=0
や
bun pm ls -g
で入っているか確認します。入っているのに見つからない場合は、グローバルインストール先がPATHに含まれているかを確認します。
APIキーが未設定と出る場合
現在のターミナルから変数が見えていません。macOSやLinuxなら
echo $GROK_API_KEY
、PowerShellなら
$env:GROK_API_KEY
を実行します。何も出なければ、CLI以前に環境変数が反映されていません。設定ファイルへ書いただけで
source
していない、またはターミナルを開き直していない可能性があります。
認証エラーが出る場合
環境変数は見えていますが、APIキーの中身が正しくない可能性があります。コピー時に前後へ空白が入った、引用符までコピーした、古いキーを使っている、別サービス用のキーを入れた、というミスがよくあります。新しいキーを作り直し、古いキーは無効化してから差し替えると安全です。
モデル名のエラーが出る場合
GROK_MODEL
を設定している場合は、一度その設定を外して実行します。モデル名は変わることがあるため、古い名前を固定していると急に動かなくなることがあります。まずCLIの標準モデルで動かし、必要な時だけモデル名を指定します。
安全に運用するための実務ルール
動くようになった後のほうが、実は大事です。APIキーは一度設定すると存在を忘れがちですが、漏えいすると利用料や不正利用の問題につながります。特に開発用フォルダで作業する人は、ファイルにキーを書かない習慣を最初から作ると安心です。
.envを使う時の注意点
プロジェクトごとに
.env
を使う場合は、必ず
.gitignore
に入れます。画面上で
git status
を見た時に
.env
が追加対象に出ていたら、そのままコミットしてはいけません。代わりに
.env.example
を作り、値を空にした見本だけを共有します。
共有パソコンでは永続設定を避ける
会社の共有端末や一時的な検証環境では、シェル設定ファイルへ保存せず、そのターミナルだけの一時設定にします。作業が終わったらターミナルを閉じれば、そのセッションの設定は消えます。長く使う自分の端末だけ、永続設定にします。
うまく動いてもキーを画面に出しすぎない
確認のために
echo
でキーを表示するのは便利ですが、スクリーンショット、録画、画面共有では危険です。設定確認は、値そのものを見るより、GrokCLIを実行して応答が返るかで判断するほうが安全です。
GrokCLIの環境変数設定に関する疑問解決
GrokCLIの設定で一番つまずきやすいのは、「どこまでがGrokの問題で、どこからが自分のターミナル設定の問題か」が見えにくいことです。判断を急がず、今見えている画面の結果だけで切り分けると、原因に近づけます。
一時設定と永続設定はどちらがいい?
初回は一時設定が向いています。現在のターミナルだけに設定して、すぐ動作確認できるからです。動いた後で永続設定にすれば、設定ファイルの書き間違いとAPIキーの間違いを分けて考えられます。最初から永続設定だけで進めると、反映されていないのか、値が間違っているのか分かりにくくなります。
複数のGrokCLIを入れても大丈夫?
おすすめはしません。同じ
grok
というコマンド名を使う実装が複数あると、どれが実行されているか分かりにくくなります。
which grok
や
command -v grok
で実行ファイルの場所を確認し、使わないものは削除してから進めると安定します。
ClaudeCodeや他のAIツールと併用できる?
併用できます。GrokCLIは最新の話題確認やX由来の反応確認に向き、ClaudeCodeはコード編集や手順整理に向きます。ただし、GrokCLIが未設定でも作業全体が止まらないように、スクリプトでは
command -v grok
で存在確認してから使う設計にすると安心です。見つからなければGrok部分だけスキップし、他の処理を続ける形にします。
初心者が最初につまずく落とし穴

AIのイメージ
落とし穴1APIキーを作ったのにターミナルで読まれていない
Grokの管理画面でAPIキー(サービスを使うための合鍵のような文字列)を作り、ターミナルに貼り付けたのに、実行すると「APIキーがありません」と出る。これは初心者がかなり高い確率で踏むところです。画面上では「キーを作った」ので終わった気になりますが、CLI(文字で操作する道具)から見ると、まだ何も渡されていない状態です。
原因は、APIキーを作る作業と、ターミナルへ渡す作業が別だからです。家の鍵を作っても、玄関まで持っていかなければドアは開きません。
一発で解決するには、まず今開いているターミナルだけで試します。macOSならターミナルを開き、次の形で入力します。取得したAPIキーの部分だけ、自分のキーに置き換えます。
- ターミナルを1つだけ開き、他のターミナルはいったん閉じます。
-
export GROK_API_KEY="取得したAPIキー"と入力してEnterを押します。
-
echo $GROK_API_KEYと入力して、長い文字列が表示されるか確認します。
- 長い文字列が出たら、同じターミナルで
grokを実行します。
- Grokの入力待ちや応答が出たら、そのターミナルでは設定成功です。
この場面で、
echo
をすると何も表示されないなら、CLIの問題ではなく、環境変数(ターミナルに渡す設定メモ)が入っていません。まずそこだけ直せば前に進めます。
落とし穴2設定したあとに新しいターミナルを開いて動かなくなる
さっきは動いたのに、翌日また
grok
を実行したら認証エラーになる。これもかなり多いです。昨日できたことが今日はできないので、自分が何か壊したように感じますが、実際は一時設定が消えただけです。
一時設定は、レストランの紙ナプキンにメモしたようなものです。その場では使えますが、店を出たら残りません。毎日使うなら、設定ファイル(毎回ターミナルが読むメモ帳)に書く必要があります。
macOSでzshを使っている場面では、次の順番で進めます。
echo $SHELL
を実行して、表示の最後が
zsh
ならこの方法で大丈夫です。
- ターミナルで
echo $SHELLを実行します。
- 表示の最後が
zshなら、
nano ~/.zshrcと入力してEnterを押します。
- 開いた画面の一番下に
export GROK_API_KEY="取得したAPIキー"を追加します。
-
controlキーを押しながら
Oを押し、Enterを押して保存します。
-
controlキーを押しながら
Xを押して編集画面を閉じます。
-
source ~/.zshrcを実行して、今のターミナルに反映します。
- ターミナルを閉じて開き直し、
echo $GROK_API_KEYで値が出ればOKです。
この場面で、ターミナルを開き直しても値が出るなら、毎回設定し直す必要はありません。1回の作業で済むようになります。
落とし穴3変数名を間違えて正しいキーが無視される
APIキーは合っている。ターミナルにも入れた。なのにGrokCLIが「キーがない」と言う。ここで初心者はかなり混乱します。実は、キーの中身ではなく、ラベル名が違うだけのことがあります。
環境変数は、ロッカー番号と中身の組み合わせです。中身が正しい鍵でも、GrokCLIが「GROK_API_KEYのロッカーを見に行く」のに、自分が「XAI_API_KEYのロッカー」に入れていたら見つかりません。
この場合は、今の設定を見える形で確認します。macOSやLinuxなら、次の2つを順番に実行します。
echo $GROK_API_KEY
echo $XAI_API_KEY
片方だけ表示されるなら、使っているCLIがどちらを読むかと合っているか確認します。急いで動かしたい場面では、一時的に両方へ同じAPIキーを入れます。
export GROK_API_KEY="取得したAPIキー"
export XAI_API_KEY="取得したAPIキー"
この場面で、両方を入れると動くなら、原因は変数名のズレです。あとで不要な方を消せばいいので、最初の確認では「どっちが正しいか」で30分悩むより、2分で切り分ける方が早いです。
「知っている」と「できる」の差を埋める実践ロードマップ
1日目自分のターミナル環境を確認する
所要時間は10分です。まず、GrokCLIを触る前に、自分のパソコンがどのシェル(ターミナルの話し方)を使っているか確認します。macOSならターミナルを開いて
echo $SHELL
と入力します。WindowsならPowerShellを開いて、画面上部にPowerShellと表示されているか確認します。
完了の判断基準は、macOSなら
zsh
または
bash
の文字が見えることです。WindowsならPowerShell画面でコマンドを入力できる状態になっていればOKです。この日にGrokを動かせなくても問題ありません。最初に自分の作業場所を把握するだけで、翌日以降の迷いがかなり減ります。
2日目GrokCLIの存在確認だけをする
所要時間は15分です。ターミナルで
grok --help
を実行します。もしヘルプのような説明が表示されれば、GrokCLI本体は見つかっています。もし
command not found
のような表示が出たら、環境変数ではなく、CLI本体のインストールかPATH(コマンドの置き場所を探す地図)が原因です。
完了の判断基準は、
grok --help
で何かしらGrokCLIの説明が表示されることです。この場面でエラーが出ても、APIキーをいじらないでください。まずCLI本体が見つかる状態を作るのが先です。
3日目APIキーを一時設定して1回だけ動かす
所要時間は20分です。GrokのAPIキーを用意し、今開いているターミナルだけに設定します。macOSなら
export GROK_API_KEY="取得したAPIキー"
、PowerShellなら
$env:GROK_API_KEY="取得したAPIキー"
です。
完了の判断基準は、同じターミナルで
grok
を実行し、入力待ちまたは応答が返ることです。この日は永続化までやらなくて大丈夫です。ぶっちゃけ、初心者はここで欲張ると混乱します。まず「この1回だけ動く」を作るのが最優先です。
4日目設定を永続化して開き直しても動く状態にする
所要時間は25分です。3日目に動いた環境変数を、設定ファイルへ保存します。macOSのzshなら
~/.zshrc
に書きます。Windowsならユーザー環境変数に保存します。
完了の判断基準は、ターミナルを完全に閉じてから開き直し、
echo $GROK_API_KEY
または
$env:GROK_API_KEY
で値が確認できることです。そのあと
grok
が動けば、毎回設定し直す段階を卒業です。
5日目わざと確認コマンドだけで切り分け練習をする
所要時間は15分です。実務では、動かない時に慌てない力が大事です。ターミナルで
grok --help
、
echo $GROK_API_KEY
、
grok
の3つだけを順番に実行します。
完了の判断基準は、3つの結果を自分の言葉で説明できることです。たとえば「ヘルプは出たのでCLIはある」「APIキーも表示されたので環境変数は見えている」「でも認証エラーならキーの中身が怪しい」と言えればOKです。この3段階だけで、初心者の迷子時間は半分以下になります。
6日目安全管理を1つだけ入れる
所要時間は10分です。プロジェクトフォルダで作業する人は、
.env
を使う前に
.gitignore
を確認します。もし
.env
を作るなら、
.gitignore
に
.env
と書きます。
完了の判断基準は、
git status
を実行した時に、APIキー入りのファイルが追加対象に出ていないことです。APIキーは財布の暗証番号に近いので、便利さより先に漏れない状態を作るのが安全です。
7日目自分用の確認メモを作る
所要時間は20分です。メモアプリやローカルのテキストファイルに、自分の環境で使う確認手順を書きます。書く内容は3つだけです。GrokCLIの確認コマンド、環境変数の確認コマンド、動作確認コマンドです。
完了の判断基準は、1週間後の自分が見ても、どの順番で確認すればいいかわかるメモになっていることです。たとえば「1、
grok --help
。2、
echo $GROK_API_KEY
。3、
grok
。」だけでも十分です。初心者ほど、未来の自分に向けたメモが効きます。
現実でよくある「あるある失敗」と専門家の対処法
失敗1APIキーをダブルクォーテーションごとコピーしてしまう
画面上でAPIキーをコピーしたつもりが、前後の
"
や余計な空白まで一緒に入ってしまう。ターミナルでは見た目が似ているので、初心者にはかなり気づきにくい失敗です。実行すると認証エラーになり、「キーは合っているはずなのに」と悩みます。
根本原因は、コピーした文字列の範囲を確認していないことです。APIキーは1文字でも余計なものが混ざると別物になります。
専門家なら、まず新しいターミナルで一時設定だけをやり直します。コピー後に貼り付ける時、前後に空白がないか目で確認します。そのうえで
echo $GROK_API_KEY
を実行し、表示された先頭と末尾に変な記号がないか見ます。怪しければ、APIキーを作り直して貼り直します。
予防策は、APIキーを保存する時に前後1文字を必ず確認することです。1回の確認にかかる時間は5秒ですが、これをしないと30分以上溶けることがあります。
失敗2ターミナルを複数開いて別の画面で確認してしまう
左のターミナルで
export
したのに、右のターミナルで
grok
を実行して「動かない」となるパターンです。初心者ほど、複数の画面を開いたまま作業して、どこに設定したかわからなくなります。
根本原因は、一時設定が「その画面だけ」に効くことを知らないことです。別のターミナルは別の部屋なので、隣の部屋に置いたメモは読めません。
専門家なら、いったん全部のターミナルを閉じます。新しく1つだけ開き、そこで
export
、
echo
、
grok
を連続で実行します。1つの画面で完結させることで、設定した場所と実行した場所のズレを消します。
予防策は、初回設定中はターミナルを1枚だけ使うことです。慣れるまでは、複数画面での並行作業はしない方が早いです。5分短縮するつもりが、逆に1時間迷う原因になります。
失敗3最初からモデル名や接続先まで全部いじる
APIキーの設定と同時に、モデル名、接続先、設定ファイル、別ツール連携まで触ってしまう。するとエラーが出た時に、どれが原因かわかりません。初心者が一番やりがちな「頑張りすぎて詰まる」パターンです。
根本原因は、設定項目を増やすほど失敗箇所も増えることを見落としている点です。料理でいえば、初めて作るレシピなのに、調味料を5種類アレンジして味見している状態です。
専門家なら、最初はAPIキーだけに絞ります。
GROK_MODEL
や接続先の指定は外し、CLIの標準設定で動かします。標準設定で応答が返ったあとに、1つずつ追加します。モデル名を入れた瞬間にエラーが出たなら、原因はモデル名だと判断できます。
予防策は、1回に変える設定は1つだけにすることです。APIキー、モデル名、接続先を同時に変えない。これだけでトラブル対応の難易度はかなり下がります。
ぶっちゃけこうした方がいい!
ぶっちゃけ、初心者が最短で結果を出したいなら、最初から完璧な設定を目指さなくていいです。まずは今開いているターミナルで1回だけGrokCLIを動かす。これだけに集中するのが一番コスパいいです。
環境変数の永続化、複数CLIの比較、モデル名の固定、プロジェクトごとの設定分け。こういう話は大事ですが、最初の30分で全部やろうとすると高確率で詰まります。最初のゴールは「きれいな構成」ではなく、「Grokが1回返事をすること」です。
おすすめの近道は、作業を3段階に分けることです。1段階目は、
grok --help
でCLIが見つかるか確認する。2段階目は、APIキーを一時設定して
echo
で見えるか確認する。3段階目は、
grok
を実行して応答を見る。この3つだけで十分です。
この場面で、GrokCLIが動いたら、そこで初めて永続化に進みます。逆に、動いていないのに
~/.zshrc
やPowerShellのユーザー環境変数をいじり始めると、原因が増えます。経験者ほど、最初はあえて雑に小さく試します。雑というのはいい加減という意味ではなく、失敗してもすぐ戻せる小ささで試すという意味です。
さらに本音を言うと、初日はGrokCLIを業務や本番作業に使わなくていいです。まず「こんにちは。3行で自己紹介して」と送って、返ってくるかだけ見れば十分です。API(アプリ同士をつなぐ窓口のようなもの)やモデルの細かい違いを理解するより、ターミナルから応答が返る体験を1回作る方が大事です。
その1回ができると、次の不安が具体的になります。「毎回設定するのが面倒だから永続化したい」「別のターミナルでも使いたい」「エラーが出た時に確認順を決めたい」と、悩みが行動に変わります。初心者に必要なのは、最初から全部を知ることではなく、次の1手が見える状態です。
だから、最初の目標はこれで十分です。ターミナルを1つ開く。APIキーを一時設定する。
echo
で見えるか確認する。
grok
で1回返事をもらう。ここまで15分でできれば大成功です。そのあとで永続化、安全管理、モデル指定へ進めば、かなり安定して使えるようになります。
よくある質問
APIキーはどこに保存するのが安全ですか?
個人端末で日常的に使うなら、シェル設定ファイルかOSのユーザー環境変数に保存します。プロジェクト内に置く必要がある場合は
.env
に入れ、必ず
.gitignore
で除外します。コード本体、README、公開用の設定例には実キーを書かないでください。
設定したのに新しいターミナルで消えます
一時設定だけを使っている可能性があります。macOSやLinuxなら
~/.zshrc
や
~/.bashrc
に書かれているか確認します。PowerShellならユーザー環境変数として保存した後、PowerShellを開き直します。開き直しても見えない場合は、設定した変数名とCLIが読む変数名が一致しているか確認します。
GROK_API_KEYとXAI_API_KEYは両方必要ですか?
通常は片方で十分です。使っているCLIが読む名前に合わせます。どうしても分からない時だけ一時的に両方へ同じ値を入れて確認し、動作した後で不要な方を削除します。設定が増えすぎると、あとでキーを更新する時に古い値が残りやすくなります。
APIキーを間違って公開してしまったら?
すぐに該当キーを無効化し、新しいキーを作ります。ファイルから消すだけでは不十分です。Gitに一度入った値は履歴に残るため、キー自体を使えない状態にする必要があります。その後、環境変数へ新しいキーを設定し直し、GrokCLIが動くか確認します。
まとめ
GrokCLIの環境変数設定は、難しい知識よりも順番が大切です。最初にCLIが入っているかを確認し、次にAPIキーの変数名を合わせ、現在のターミナルで一時設定してから動作確認します。動いたら永続設定に移し、モデル名や接続先は必要になってから追加します。
エラーが出た時も、いきなり全部を直そうとしないでください。コマンドが見つかるか、環境変数が見えるか、キーが有効か、モデル名が合っているか。この順番で画面の結果を確認すれば、初心者でも原因を切り分けられます。
今日やることはシンプルです。使っているGrokCLIが求めるAPIキー名を確認し、現在のターミナルに設定し、
grok
を実行する。応答が返ったら、同じ設定を永続化する。ここまでできれば、GrokCLIは「入れたけど動かない道具」ではなく、毎日の調査や開発で使える実用ツールになります。


コメント