- Claude Codeはサブスクリプション認証のトークンを使って動作しますが、
claude -pから呼び出すとトークンが古くなることがあります。 - その場合、対話モードで起動するとトークンが自動的にリフレッシュされます。
- すぐ終了させるには
echo "/exit" | claudeと入力します。 - 移植性を重視するなら
printf "/exit\n" | claudeの方が安全です。
echo "/exit" | claudeCode language: PHP (php)
1. Claude Codeのアクセストークン
Claude Codeでは、サブスクリプションの認証を使って利用できます。
このトークンは、~/.claude/.credentials.json の .claudeAiOauth.accessTokenに保存されています。
ただし、claude -pから呼び出していると、このトークンが古くなって使えないことがよくあります。
そこで、Claude Codeの対話モードで呼び出すことが必要になります。
このときには、とくにブラウザでの認証などはなく、起動するとそのままトークンがリフレッシュされます。
Claude Code を CLIで起動してすぐ終了させるには、標準入力で /exit を渡します。

echo "/exit" | claudeCode language: PHP (php)
/exit は Claude Code の 内部コマンド(slash command)で、対話セッションを終了するためのものです。
これで起動したclaude は、/exit コマンドを受け取り、すぐ終了します。
もし Claude Code の初期化だけ行って終了したい用途(シェルスクリプト等)であれば、次の方法もよく使われます。
printf "/exit\n" | claudeCode language: JavaScript (javascript)
echo の挙動はシェルやオプションによって微妙に異なる場合があるため、シェルスクリプトで移植性を重視するなら printf の方が安全だからです。
たとえば echo -e の解釈はbashとshで違います。