Agentero
Connect your own Agent, keep research context in a local Vault. Seamlessly migrate from Zotero, read, understand, link, and reuse your research context.
AI translation
Duolingo-style tracker for Claude Code & Codex rate limits — get pinged the moment a 5-hour window resets, and turn maxing out every window into streaks, XP and leagues.
ProductivityJavaScript · CSSGitHub @bizenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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 に設定する