{"id":49033314,"url":"https://github.com/githajae/llimit","last_synced_at":"2026-04-23T14:00:47.205Z","repository":{"id":352362140,"uuid":"1212983796","full_name":"githajae/LLimit","owner":"githajae","description":"Native macOS menu-bar app that shows Claude Code and Codex usage windows at a glance, across multiple accounts.","archived":false,"fork":false,"pushed_at":"2026-04-19T14:44:24.000Z","size":1500,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T12:02:40.407Z","etag":null,"topics":["anthropic","claude","claude-code","codex","developer-tools","macos","menubar","openai","swiftui","usage-tracker"],"latest_commit_sha":null,"homepage":"https://llimit.vercel.app/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/githajae.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-16T23:43:08.000Z","updated_at":"2026-04-21T07:53:09.000Z","dependencies_parsed_at":"2026-04-20T11:00:34.723Z","dependency_job_id":null,"html_url":"https://github.com/githajae/LLimit","commit_stats":null,"previous_names":["rntlqvnf/llimit"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/githajae/LLimit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githajae%2FLLimit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githajae%2FLLimit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githajae%2FLLimit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githajae%2FLLimit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/githajae","download_url":"https://codeload.github.com/githajae/LLimit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/githajae%2FLLimit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32137365,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T08:34:57.708Z","status":"ssl_error","status_checked_at":"2026-04-22T08:34:55.583Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","claude","claude-code","codex","developer-tools","macos","menubar","openai","swiftui","usage-tracker"],"created_at":"2026-04-19T10:01:29.782Z","updated_at":"2026-04-22T13:01:04.320Z","avatar_url":"https://github.com/githajae.png","language":"Swift","readme":"# LLimit\n\nA native macOS menu-bar app that shows **how much of your Claude Code and\nCodex usage windows you've burned through** — at a glance, across multiple\naccounts, without leaving the keyboard.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Resources/screenshot.png\" alt=\"LLimit usage popover\" width=\"480\"\u003e\n\u003c/p\u003e\n\n---\n\n## Install\n\n### One-line install (recommended)\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/githajae/LLimit/main/install.sh | bash\n```\n\nDownloads the latest release, installs to `/Applications/LLimit.app`,\nstrips the macOS quarantine flag (so Gatekeeper doesn't block first launch),\nand opens the app. Apple Silicon only for now.\n\n### Manual install\n\n1. Grab the latest `LLimit-\u003cversion\u003e.zip` from the\n   [Releases page](https://github.com/githajae/LLimit/releases).\n2. Unzip and drag `LLimit.app` into `/Applications`.\n3. The build is ad-hoc signed (no $99 Apple Developer account), so the first\n   double-click will be blocked by Gatekeeper. Pick one:\n   - **Right-click → Open → Open** in the dialog (older macOS).\n   - **System Settings → Privacy \u0026 Security** → scroll to the LLimit\n     message → **Open Anyway** (macOS 15+).\n   - Terminal: `xattr -dr com.apple.quarantine /Applications/LLimit.app`\n\n### Build from source\n\nRequires macOS 14+ and Xcode 15 / Swift 5.9.\n\n```sh\ngit clone https://github.com/githajae/LLimit.git\ncd LLimit\nScripts/package_app.sh                  # → build/release/LLimit.app\nopen build/release/LLimit.app\n```\n\nFor a versioned, zipped artifact:\n\n```sh\nScripts/package_app.sh 0.2.0 zip        # → build/release/LLimit-0.2.0.zip\n```\n\n---\n\n## Features\n\n- **Live menu-bar icon** — two stacked progress bars (5-hour / weekly) plus an\n  optional headline percent. Color escalates orange ≥70%, red ≥90%.\n- **Multiple accounts at once** — list view up to 3 accounts, automatic\n  2-column grid above that. Supports any mix of Claude and Codex configs.\n- **Real plan-relative percentages**\n  - Claude: calls `https://api.anthropic.com/api/oauth/usage` with your\n    existing OAuth token (`5h`, `7d`, `7d opus`, `7d sonnet`).\n  - Codex: parses `~/.codex/sessions/**/*.jsonl` `token_count` events for the\n    primary (5h) and secondary (weekly) rate-limit blocks.\n- **Identity at a glance** — surfaces email + plan tier (`max plan`,\n  `plus plan`, …) under each account name.\n- **Threshold notifications** — configurable warn-at percentage; one\n  notification per window per reset cycle.\n- **Launch at login** — toggle in General settings (uses\n  `SMAppService.mainApp`).\n- **Per-account login flow**\n  - **Claude**: replicates the `claude login` PKCE OAuth flow ourselves —\n    opens your real browser to Anthropic's sign-in page, catches the\n    callback at `localhost:54545`, and saves each bearer to its own JSON\n    snapshot. Bypasses the Claude CLI's single-global-keychain limitation\n    so multiple accounts coexist.\n  - **Codex**: launches `codex login` in-process, captures the device-code\n    URL, and snapshots the resulting `auth.json` into the per-account\n    `CODEX_HOME` so two Codex configs don't share state.\n\n---\n\n## How it reads usage\n\n| Provider | Source                                                                  |\n| -------- | ----------------------------------------------------------------------- |\n| Claude   | `GET https://api.anthropic.com/api/oauth/usage` with the OAuth token    |\n| Codex    | `~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl` (`token_count` events)   |\n| Auth     | Per-account JSON at `~/Library/Application Support/LLimit/credentials/\u003cuuid\u003e.json` (Claude) and `\u003cCODEX_HOME\u003e/auth.json` (Codex) |\n\nLLimit never sends data anywhere except to the same Anthropic OAuth\nendpoint the Claude CLI itself uses.\n\n---\n\n## Releasing (maintainers)\n\n```sh\nScripts/release.sh 0.2.0 \"What's new in this release\"\n```\n\nThe script verifies a clean tree, builds a universal `.app`, ad-hoc signs it,\nzips it, tags `v0.2.0`, pushes the tag, and uploads the zip via `gh release\ncreate`. No notarization yet — users get a Gatekeeper warning on first launch.\n\n---\n\n## License\n\nMIT — see [`LICENSE`](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithajae%2Fllimit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgithajae%2Fllimit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithajae%2Fllimit/lists"}