「Node.js version 18 or higher」エラーの意味と、まず確認すべき一点
このエラーは、メッセージが示すとおり Claude Code の起動に使われる Node.js(サーバーサイドで JavaScript を動かす実行環境)のバージョンに関するものです。バージョンが18未満、あるいは Node.js そのものが見つからないケースが典型です。プロジェクトの中身や Claude のアカウント種別、Claude Code のバージョンよりも先に、まず起動環境の Node を確認するのが近道です。
確認することは一つ。ターミナルで node -v を実行してください。18未満なら Node を更新すれば直ります。すでに v18 以上と出るのにエラーが消えないなら、シェルと Claude Code が見ている Node が食い違う「検出失敗」なので、最後のセクションへ進んでください。
エラーを解決する手順 — コストの低い順に
最も手軽なのは Node 本体の更新です。LTS(長期サポート版)を入れ、ターミナルを開き直してから node -v を再確認します。18以上になっていれば、たいていはこれで終わりです。
それでも消えないなら、次の二つを疑います。
nvm・Volta などバージョン管理ツールを使っている場合の落とし穴
nvm(Node のバージョンを切り替えるツール)や Volta を使っていると、シェルで見える Node と Claude Code が実際に起動する Node がずれることがあります。特に注意したいのが GUI からの起動です。エディタの統合ターミナルのように、シェルの初期化ファイル(.bashrc や .zshrc)を読み込まずに立ち上がった環境では nvm が有効化されず、システムに残った古い Node、あるいは Node なしの状態で動いてしまいます。VS Code で Claude Code を使っているなら、まず OS のシェルから直接 claude を起動し、症状が消えるかどうかで切り分けてください。
npm 版からネイティブインストールへ切り替えて Node 由来の問題を避ける
npm install -g で入れた npm 版は、Node のパッケージ管理ツールである npm 経由でインストールします。公式ドキュメントはネイティブインストールを推奨としており、追加依存として挙げているのは ripgrep のみで Node.js の記載はありません。Node 由来の問題を避けたい場合は、このネイティブインストールへの切り替えが選択肢になります。macOS・Linux・WSL なら次の一行です。
curl -fsSL https://claude.ai/install.sh | bash
ネイティブ版はバックグラウンドで自動更新されるので、更新忘れの心配もありません。切り替え前に npm 版をアンインストールしておくと、PATH の取り違えを防げます。

node -v が18以上なのにエラーが消えないとき — 検出失敗という既知パターン
シェルでは18以上なのにエラーが出続けるのは、バージョンではなく検出の問題です。「正しいランタイムなのに Node バージョン検出が失敗する」症状は GitHub でも報告があり(#8439)、エディタ更新をきっかけに再発したケースも挙がっています(#26883)。
切り分けは、まず Claude Code 自体を最新へ更新すること。次に which claude と which node で実体のパスを確認し、想定外の Node を掴んでいないか見ます。仕上げに claude doctor を実行すればインストール状態が診断され、問題なければ 2.1.211(Claude Code)のようにバージョンが表示されます。ここまでで異常が見つからず、それでも再発するなら、深追いせず上記の GitHub issue で最新状況を追うのが早道です。