無人でClaude Codeを動かしていたら、ある日だけ突然ログイン切れで止まった。こういう事故は、処理そのものより後から気づくのが困ります。
Claude Code v2.1.318で、保存済みのclaude.aiログインがいつまで有効なのかを確認しやすくなりました。claude auth statusとclaude -pのJSON結果に、有効期限が出ます。
まず有効期限を表示してみましょう
では、ログイン状態を確認してみましょう。
claude auth status
v2.1.318では、保存済みログインの終了日時がloginExpiresAtとして表示されます。JSON形式で確認する場合は、claude -pの結果にもcredential_expires_atが含まれます。
表示される日時を見て、まだ使えるかだけを確認してください。細かい値の形式は環境や出力形式で変わる可能性があるため、文字列を固定位置で切り出す処理はおすすめしません(ここは今後変わるのかな)。
期限切れになってから慌てない
これまでの無人処理では、実行が失敗してからログインを疑うことがありました。スケジュールタスクや長い収集処理では、失敗の原因がネットワークなのか、権限なのか、ログインなのかを切り分けるだけでも時間がかかります。
v2.1.318では、保存済みログインの終了が近づくと、claude -pのテキスト出力に期限が近いことを知らせる警告も出ます。期限の10日前から警告する仕様です。
私なら、無人実行の最初にこの確認を入れます。処理を始めてから止まるのではなく、最初に「今日はログインがいつまで持つか」を見ておくわけです。
スクリプトでは警告を消さない
claude -pの出力を別の処理へ渡している場合、stderrの警告を捨てないように注意してください。成功した本文だけを取り出したい気持ちはわかりますが、期限の警告まで捨てると、今回の変更の意味がなくなります。
claude -p "短い確認を実行" 2>claude-warning.log
実行後にclaude-warning.logを確認し、期限の警告があれば次回の無人実行を待たずに再ログインの判断をします。再ログインの方法は利用している認証方式に合わせてください。
無人処理の失敗理由を一つ減らせます
ログイン有効期限の表示は、派手な新機能ではありません。ですが、無人処理ではこういう小さな観測点が効きます。
「処理が落ちた。たぶんログイン切れだろう」と推測するのではなく、開始前の有効期限と実行時の警告を見て判断できます。これ、意外と使えます。
v2.1.318の変更点は、公式リリースノートで確認できます。まずは手元のclaude auth statusを実行して、期限が表示されるか見てみてください。

コメント