Claude Code CLIをMax Planでcron定期実行する

公開日:
目次

Claude Code CLIを定期実行したいけど、API従量課金ではなくMax Plan(定額制)で動かしたい。設定でハマったので備忘録です。

問題

Claude Code CLIを実行すると「Credit balance is too low」エラーが出ました。

claude -p "hello" --dangerously-skip-permissions
Credit balance is too low

Max Planに加入しているのに、API課金として扱われています。

原因

環境変数 ANTHROPIC_API_KEY が設定されていると、CLIはAPIキーを優先して使います。

echo $ANTHROPIC_API_KEY

APIキーが表示されれば、それが原因です。

解決方法

実行時に ANTHROPIC_API_KEY="" を付けて、APIキーを無効化します。

ANTHROPIC_API_KEY="" claude -p "hello" --dangerously-skip-permissions

これでMax Planの認証(OAuth)が使われます。

cronでの定期実行

毎時0分に実行する例です。

crontab -e

以下を追加します。

0 * * * * cd /path/to/repo && ANTHROPIC_API_KEY="" /path/to/claude -p "hello" --dangerously-skip-permissions

/path/to/repo は対象リポジトリのパス、/path/to/claudewhich claude で確認してください。

nodeが見つからないエラー

cronを実行すると以下のエラーが出ることがあります。

env: node: No such file or directory

cronは独自の最小限の環境で動くため、通常のシェルで設定されているPATHが使えません。

crontabの先頭にPATHを追加してください。

crontab -e

一番上に以下を追加します。

PATH=/path/to/node/bin:/usr/bin:/bin

/path/to/node/binwhich node で確認したパスのディレクトリ部分です。

認証状態の確認

Max Planで認証されているかは、認証ファイルで確認できます。

cat ~/.claude/.credentials.json | head -1

subscriptionType: "max" があればMax Planで認証済みです。

留意点

--dangerously-skip-permissions は全ての操作を許可するオプションです。信頼できるプロンプトでのみ使用してください。

また、Max Planにも使用量の上限があります。頻繁すぎる実行は制限に引っかかる可能性があるので、1時間に1回程度が安全です。