トークンのローテーション(ベータ)

Claude Code をたくさん使うと、1 週間分の枠を 1 日で使い切ってしまうことがあります。契約を複数持っていれば、 ふつうは /login で手で切り替えます。トークンのローテーションは、それを自動でやります。新しいセッションは いちばん余裕のある契約で始まり、上限が近づいたセッションは同じ会話のまま別の契約へ移ります。

  1. 「複数の契約(accounts)」との違い
  2. 設定のしかた
  3. /login しているアカウントを入れるか
  4. 契約の選び方
  5. 枠が少なくなったとき
  6. 画面で見えるもの
  7. 契約が替わるタイミング
  8. ローテーションするセル
  9. 動いているかの確かめ方

「複数の契約(accounts)」との違い

複数の契約は、契約ごとに設定ディレクトリを分けるので、ある契約で始めた会話はその契約のままです。 トークンのローテーションは、ディレクトリを 1 つ(~/.claude)のままにして、認証だけを替えます。 なので、どの会話もどの契約で続けられます。/login で切り替えるのと同じことを、自動でやります。

設定のしかた

  1. 契約ごとにトークンを作る。 自分のターミナルで claude setup-token を実行し、ブラウザでその契約にログインします。 sk-ant-oat01- で始まる長いトークンが表示されます。
  2. トークンを macOS のキーチェーンにしまう。 契約ごとに 1 項目です。

    security add-generic-password -a mulmoterminal -s mulmoterminal-token-personal -w
    

    -w のあとに何も書かないと入力を求められるので、トークンがシェルの履歴に残りません。トークンをチャットや config.json に貼らないでください。Mac 以外では、トークンだけを書いたファイルを chmod 600 にして、下の "file" で指定します。他の人が読めるファイルは読み込みません。

  3. ~/.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 は自分用の目印です。どの契約かが分かるように、その契約の横に表示されます。

  4. 設定画面の「設定ファイルを読み直す」を押す(再起動は要りません)。
  5. 新しいセルを開くか、セルを閉じてその会話を開き直す。このときに契約が選ばれます。

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 の利用規約に照らして問題ないかは、ご自身で確認してください。


This site uses Just the Docs, a documentation theme for Jekyll.