トークンのローテーション(ベータ)
Claude Code をたくさん使うと、1 週間分の枠を 1 日で使い切ってしまうことがあります。契約を複数持っていれば、 ふつうは /login で手で切り替えます。トークンのローテーションは、それを自動でやります。新しいセッションは いちばん余裕のある契約で始まり、上限が近づいたセッションは同じ会話のまま別の契約へ移ります。
- 「複数の契約(accounts)」との違い
- 設定のしかた
/loginしているアカウントを入れるか- 契約の選び方
- 枠が少なくなったとき
- 画面で見えるもの
- 契約が替わるタイミング
- ローテーションするセル
- 動いているかの確かめ方
「複数の契約(accounts)」との違い
複数の契約は、契約ごとに設定ディレクトリを分けるので、ある契約で始めた会話はその契約のままです。 トークンのローテーションは、ディレクトリを 1 つ(~/.claude)のままにして、認証だけを替えます。 なので、どの会話もどの契約で続けられます。/login で切り替えるのと同じことを、自動でやります。
設定のしかた
- 契約ごとにトークンを作る。 自分のターミナルで
claude setup-tokenを実行し、ブラウザでその契約にログインします。sk-ant-oat01-で始まる長いトークンが表示されます。 -
トークンを macOS のキーチェーンにしまう。 契約ごとに 1 項目です。
security add-generic-password -a mulmoterminal -s mulmoterminal-token-personal -w-wのあとに何も書かないと入力を求められるので、トークンがシェルの履歴に残りません。トークンをチャットやconfig.jsonに貼らないでください。Mac 以外では、トークンだけを書いたファイルをchmod 600にして、下の"file"で指定します。他の人が読めるファイルは読み込みません。 -
~/.mulmoterminal/config.jsonにtokenRotationを足す。"tokenRotation": { "enabled": true, "includeDefaultLogin": false, "tokens": [ { "id": "personal", "label": "Personal", "email": "me@example.com", "keychain": "mulmoterminal-token-personal" }, { "id": "work", "label": "Work", "email": "me@work.example", "keychain": "mulmoterminal-token-work" } ] }emailは自分用の目印です。どの契約かが分かるように、その契約の横に表示されます。 - 設定画面の「設定ファイルを読み直す」を押す(再起動は要りません)。
- 新しいセルを開くか、セルを閉じてその会話を開き直す。このときに契約が選ばれます。
mulmoterminal-model skill に「契約を回して」と頼めば、ここまで案内します。
/login しているアカウントを入れるか
includeDefaultLogin: true にすると、/login でログインしているアカウントも候補の 1 つになります。 全部の契約をトークンとして登録したら false にしてください。 /login のアカウントは必ずそのどれかなので、 同じ枠を 2 回数えることになります。しかも、どれと重なるかは /login し直すたびに変わります。
契約の選び方
7 日枠の 「残り」を「リセットまでの時間」で割った値 が大きいものから選びます。リセット間近で余っている枠は リセットで消えてしまうので先に使い、1 週間丸ごと残っている契約は後回しにします。こうすると、1 週間を通して どの契約の枠もなるべく平らに減っていきます。
5 時間枠が 90% 以上、または 7 日枠が 98% 以上の契約は選びません。
枠が少なくなったとき
- 98% になったら: 5 時間枠か 7 日枠が 98% 以上の契約でセッションがターンを終えると、その場で別の契約へ移ります。 ターンの切れ目で移るので、作業が途中で切れることはありません。
- それでも上限に当たったら(使用量の値は数分遅れることがあります): Claude Code が上限を知らせてきた時点で、すぐ移ります。
どちらの場合も、セルは自動でつなぎ直して同じ会話を再開し、何が起きたかを 1 行で表示します。
[mulmoterminal] Personal (me@example.com) is close to its usage limit — continuing this conversation on Work.
上限で止まった質問は 送り直しません。もう一度送ってください。他の契約もすべて使い切っているときは移らず、 Claude Code の上限メッセージのまま残ります。
画面で見えるもの
- セルの見出し に、そのセルが動いている契約の名前が、複数の契約と同じ印で出ます。
- ツールバーの使用量 に、契約ごとの表示が並びます。マウスを載せると名前とメールアドレスが出ます。 枠を使い切った契約は、「応答がない」ではなく「上限に達している」と表示されます。
- 「その他の機能」→「トークンの使用量」 に、契約ごとの 5 時間枠と週の枠の残りと、それぞれのリセットまでの時間が一覧で出ます。 トークンのローテーションを設定しているときだけメニューに出ます。
契約が替わるタイミング
契約が選ばれるのは、セッションの プロセスが起動するとき です。新しいセル、閉じた会話の開き直し、再起動ボタン、 上限による移動がそれにあたります。ブラウザの再読み込みや接続が切れての再接続は、動いているプロセスにつなぎ直すだけなので、 契約は変わりません。
ローテーションするセル
ふつうの Claude のセルだけです。プロバイダ、カスタムエージェント、複数の契約(accounts)のセルは、 どの契約で動くかがもう決まっているので、ローテーションしません。
動いているかの確かめ方
- ローテーションしているセルで
/statusを見ると、Auth token: CLAUDE_CODE_OAUTH_TOKENと出ます。 - Claude Code 自身が表示するアカウント(
/statusなど)は、/loginのアカウントのままのことがあります。これは Claude Code が自分の設定から読んだだけの表示で、使用量はセルの見出しに出ている契約から引かれます。 - 読めないトークンは飛ばされ、サーバーのログに項目名だけが出ます(トークンの値は出ません)。
複数の契約を回して使うことが Anthropic の利用規約に照らして問題ないかは、ご自身で確認してください。