{"repo":"ninedter/llm-usage-tracker","free":true,"listed":false,"github":"https://github.com/ninedter/llm-usage-tracker","clone":"git clone https://github.com/ninedter/llm-usage-tracker.git","description":"macOS desktop + always-on Docker app that monitors Claude and OpenAI/Codex subscription quotas and tracks every Claude Code & Codex agent session in real time — tool calls, touched files, token usage, and analytics. Local-first: SQLite, SSE streaming, encrypted credentials, no telemetry.","language":"TypeScript","stars":19,"topics":["ai-agents","analytics","anthropic","claude","claude-code","codex","developer-tools","docker","electron","llm"],"license":null,"category":"ai-agents","readme_excerpt":"LLM Usage Tracker A macOS desktop + always-on Docker application that monitors your AI subscription quotas (Claude, OpenAI/Codex) and tracks every Claude Code and Codex agent session in real time — which tools they call, which files they touch, what it all costs, and how you work across the week. --- Table of Contents - What it does - The four pages - Architecture - Quick start - Claude Code hook setup - Claude token usage (transcripts) - OpenAI / Codex tracking - API reference - Data management & retention - Performance - Troubleshooting - Project structure - Development --- What it does Quota monitoring. Reads your real subscription usage straight from the providers: Claude's 5-hour and 7-day windows (with per-model breakdown, e.g. a scoped Fable/Opus limit) via your claude.ai session or Claude Code's OAuth token, and ChatGPT/Codex rate-limit windows via your Codex CLI login. No API keys are spent to do this — it reads the same usage endpoints the official apps use. Agent activity tracking. A tiny hook script forwards every Claude Code lifecycle event (all 7 hook types) to the tracker, and a built-in watcher tails Codex CLI rollout logs. Every session, agent, subagent, tool call, and touched file lands in a local SQLite database and streams live into the UI over SSE. Token accounting for both providers. Hook events don't carry token counts, so a second watcher derives Claude's per-model usage (input/output/cache read/cache write) from the transcripts Claude Code writes unde","default_branch":null,"files":null,"tree":[],"storefront":"/r/ninedter","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ninedter/llm-usage-tracker/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}