OSS · Chrome拡張 · Node.js
claude-shift
1台のマシンに、複数のClaude Codeアカウント。
同じマシン上に複数のClaude Codeアカウントを持つための管理ツール。shift use は Claude Code が実際に読んでいる2ファイル、~/.claude/.credentials.json (token) と ~/.claude.json の oauthAccount (/status が表示している方) を両方同期して active を切り替えます。ローカルAPIサーバーが api.anthropic.com/api/oauth/usage を可変間隔でポーリングし、5時間枠と週次の使用率をSQLiteに時系列snapshot。Chrome拡張のpopupはアカウント一覧と横断SVG折れ線グラフを表示し、popupからactive切替まで実行できます。
CLIコマンド
1本のshellスクリプトが Node ヘルパを呼び出す構成。すべて単独で動き、server と popup はオプションです。
| コマンド | 内容 |
|---|---|
shift list | 登録済み全アカウントとactiveを一覧表示。 |
shift use <name> | activeを切替。refresh済みtokenをsync backし、~/.claude.jsonのoauthAccountも更新。 |
shift usage | 全アカウントの5時間枠と週次の使用率+リセット時刻を表示。 |
shift seed <name> | 最小の課金requestで5時間ウィンドウを今から起動。長時間セッションの直前に新枠を仕込む用途に。 |
shift add <name> | 現在の credentials.json を <name> として登録。重複tokenは警告 (-fで強行)。 |
shift rm <name> | 登録削除。active削除は -f 必要。 |
shift server | ローカルAPIサーバー(127.0.0.1:19867)を起動。usageを可変間隔でポーリング+SQLite保存。 |
Chrome拡張のpopup
popupは127.0.0.1:19867のローカルサーバーと会話します。サーバーはusage APIを可変間隔でポーリングし、SQLiteに時系列snapshot。カードごとに5時間枠と週次のバーを描き、分析モーダルは6h / 24h / 7d の横断SVG折れ線グラフを表示します。active カードは「使用中」バッジ、それ以外は「切替」ボタンで、押すと裏で shift use と同じパイプラインが走ります。
インストール
リポジトリをcloneして、アカウントを1つずつ登録します。各アカウントはClaude Code内の /login 直後にキャプチャします。
# 1. Clone and install
git clone https://github.com/kenimo49/claude-shift
cd claude-shift
npm install
chmod +x shift.sh
# 2. Register accounts, one at a time
# Inside Claude Code, run /login for the account you want to register.
# Immediately after, register it:
./shift.sh add my-account-a
# Repeat /login + add for every account you want to manage.
# 3. Start the usage server (optional, needed for popup)
./shift.sh server --interval 5
# 4. Load the Chrome extension
# chrome://extensions → Developer mode → Load unpacked → extension/ 知っておくと良い4点
いずれも実際の事故を経て把握した挙動です。次に触る人は素通りできるように残しておきます。
-
アカウント表示は ~/.claude.json 側にある
~/.claude/.credentials.json だけ差し替えると、/status は前のアカウントを表示し続けますが、リクエスト認証は新tokenで通っています。無音のズレで気付きにくい。shift use は新tokenで api.anthropic.com/api/oauth/profile を叩いて profile を取得し、両ファイルを一貫させます。
-
refresh 済みtokenは上書き前にsync backする
ディスク上のtoken fileはClaude Codeのセッション中にrefreshされます。sync backせずに別アカウントで上書きすると、そのrefreshが捨てられて再ログインが要る事があります。shift use は、上書き前に現在のcredentialsを元アカウントのslotへ書き戻します。
-
5時間ウィンドウは「初回使用起点」であって時計基準ではない
Max/Team 2アカウントで10:00と15:00に開始すれば、独立した5時間枠が2本連なります。shift seed は最小の課金リクエストを1発だけ打って、任意のタイミングでウィンドウを起動できます。長時間セッションの直前に「新しい枠」を仕込む用途に。
-
popupのポーリング間隔は可変で永続化される
サーバーは起動時の --interval N (分) と popup からの POST /config を受け付けます。値は ~/.claude-shift/config.json に書き出され、次のtickで反映されます。デフォルト10分、popupの歯車アイコンからサーバー再起動なしで変更可能です。
関連する開発ツール
- opencut-mcp OpenCut classic を任意の MCP クライアントから操作する MCP サーバー。Playwright がエディタセッションを保持し、12 個のツールでタイムライン・メディアアセット・エクスポートパイプラインを公開。OpenCut classic の fork 向け。
- mcp-scorecard MCPサーバー用のプリフライトチェックCLI。ツールを1つも呼ばずに消費される受動トークン量、ユースケースの絞り込み、セキュリティ、命名衝突の4層でスコアカードを返します。
- 404 Games 404ページに置けるcanvasミニゲーム10本。有名エラーページへのオマージュ集。Vanilla JS・依存ゼロ・テーマ追従。当サイトの404で稼働中。
- historymap YAMLを書くと企業サイト風のプロダクトヒストリー年表を生成。10種類のレイアウトをページ上で切り替え可能。静的・自己完結・iframe埋め込み対応。