尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗https://ratelimit.world — Claude Code と Codex の 5時間枠を、リセットの瞬間から使い切るためのウェブサービス。
A Duolingo-style tracker for AI coding rate limits: it pings your phone the moment a 5-hour window resets, and turns maxing out every window into streaks, XP, leagues and daily quests.
Cloudflare Workers + D1 (SQLite) · Web Push (RFC 8291 / VAPID を WebCrypto で実装) · GitHub OAuth · シェアカードは SVG を resvg-wasm で PNG に · 依存なしの Node.js CLI (Claude Code の hooks と Codex の notify から呼ばれる) · フレームワークなしの HTML/CSS/JS
5時間枠は「リセット後に最初に使った時刻」から数え直されます。3:00 にリセットされても 3:30 に再開すれば、次のリセットは 8:30 になる。この出遅れは1日のあいだ積み重なっていきます。ratelimit.world はリセットの瞬間にスマホへ通知し、使い切った回数をストリーク(Duolingo 方式)で記録します。
~/.claude.json の oauthAccount.organizationType / organizationRateLimitTier と、Codex のログの rate_limits.plan_type から読む。両方使う人は両方のリーグに、そのツールの枠だけで出る。quotaLimits.rateLimitType: seven_day*)や Codex(10080分枠)の週間リミットを使い切ると 🏆 +1000 XP と「週間制覇」。リセットまでの日は5時間枠を使えないので、ストリークを自動で守る(フリーズは使わない)。/welcome): コマンドを貼る → 連携した瞬間に過去60日の記録(使い切った枠・平均の出遅れ・取りこぼした時間)を見せる → 「ふだんの1日」を目安に目標を自分で選ぶ → 通知を ON。日本語と英語に対応。文言はすべて worker/src/i18n.js にあり、ページ下部の切り替え(cookie)→ ユーザーに保存した言語 → ブラウザの言語設定の順で決まる。スマホ通知は保存した言語で送る。CLI は RATELIMIT_WORLD_LANG → サイトで選んだ言語 → LANG / OS の設定で決まる。
[PC] Claude Code / Codex
│ hooks (UserPromptSubmit / Stop / StopFailure=rate_limit)と Codex の notify
▼
cli/ratelimit-world.mjs ── ローカルログから「到達・リセット・再開の時刻」だけを送る
│
▼
[Cloudflare Worker + D1] worker/
├ 記録・ストリーク・フリーズ・XP・リーグ
├ 毎分の Cron: リセット通知 / 10分出遅れ通知 / ピンチ通知
└ Web Push (VAPID) → スマホ (PWA)
| ディレクトリ | 中身 |
|---|---|
cli/ | 依存なしの Node CLI。setup / sync / status / scan / uninstall |
worker/src/logic.js | 集計(0時区切り・ストリーク・フリーズ・出遅れ・XP)と通知の文面 |
worker/src/webpush.js | WebCrypto だけで書いた Web Push(RFC 8291 / 8292) |
worker/src/index.js | API・GitHub ログイン・CLI のデバイスログイン・Cron |
worker/src/pages.js | サーバーで組み立てる HTML(LP・ダッシュボード・設定・プロフィール・シェアカード) |
worker/public/ | CSS・クライアント JS・Service Worker・manifest・アイコン |
~/.claude/projects/**/*.jsonl:error: "rate_limit" の合成メッセージ。新しい版の quotaLimits.resetsAt(rateLimitType: "five_hour")を優先し、なければ本文の resets 5:20pm (Australia/Melbourne) を読む。週次リミットは数えない。~/.codex/sessions/**/*.jsonl:token_count の rate_limits.primary(window_minutes: 300)。used_percent >= 100 を到達として数える。使用率(%)は表示しない(使っていないときは古い数字になるため)。task_started(Codex)。cd worker
npm install
npm run db:local # D1 (ローカル) にテーブルを作る
{ echo DEV_LOGIN=1; npm run -s vapid; } > .dev.vars
npm run dev # http://localhost:8787 (GitHub なしで /login から名前だけでログイン)
npm test # 集計ロジックと Web Push の暗号化のテスト
CLI をローカルのサーバーにつなぐ: node cli/ratelimit-world.mjs setup --server http://localhost:8787
(実行すると ~/.claude/settings.json と ~/.codex/config.toml に hooks / notify を登録します。元のファイルは *.ratelimit-world.bak に保存されます)
npx wrangler loginnpx wrangler d1 create ratelimit-world → 表示された database_id を wrangler.toml に書くnpm run db:remotehttps://ratelimit.worldhttps://ratelimit.world/auth/github/callbacknpm run -s vapid # 出力された 2つの値を使う
npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET
npx wrangler secret put VAPID_PUBLIC_KEY
npx wrangler secret put VAPID_PRIVATE_KEY
npm run deployratelimit.world を Cloudflare に追加し、Worker の Custom Domain に設定する