WakaTime measures tracked coding time. GitHub measures current repository language bytes, not personally authored lines.
Language breakdown Waiting for data
Related languages are summed first. Nine groups are selected by alternating GitHub and WakaTime ranks, starting with GitHub, then ordered by GitHub code bytes by default. Others includes every remaining group and unclassified time. Byte and time totals are fully represented, with separate denominators. Repo counts use the headline inventory, deduplicate within each group and may overlap across groups. Raw values remain in the source JSON. A dash means unavailable data.
| Language | Repos | Code bytes | Code share | Time | Time share |
|---|
GitHub activity Waiting for data
Waiting for GitHub activity source.
Personal contributions include organizations and external repositories. Private repository names are never shown.
A dash means unavailable, not zero. GitHub activity periods are independent of the WakaTime range.
Personal activity
| Metric | Count | Period |
|---|
Contribution calendar by year
| Year | Contributions |
|---|
How these counts are defined
These counts describe different actions and periods; they are not added together. GitHub search, contribution eligibility, token permissions, and organization access can limit coverage. Language bytes describe current repository content, including other authors.
AI usage Waiting for sources
Codex, OpenRouter and Anthropic API keep their own reporting periods. Tokens and requests are different units; provider totals are never added together. A dash means unavailable, not zero.
| Service | Metric | Value | Period |
|---|
Add to your GitHub README Copy and paste
Replace this after deployment. Localhost images cannot load on GitHub.
Connect your sources Node or Cloudflare Workers
GitHub
Your profile, aggregate activity and repository language bytes. A server-side token enables the private data your account can access.
Credentials and repository scope ↗WakaTime
Coding time by language. Public statistics need no token; unpublished ranges need read-stats OAuth access. All time is the default.
Public and private statistics ↗Codex
Lifetime account totals, peak usage, longest task and streaks. Read through your local Codex login, or sync aggregates to your Worker.
Enable Codex usage ↗OpenRouter
Tokens, requests, averages and streaks across up to 367 completed UTC days. Requires a Management key, rather than a regular inference key.
Enable OpenRouter analytics ↗Anthropic API
Organization API token usage, including input, output and prompt caching. Requires an Admin key; Claude Pro/Max subscription usage is not included.
Enable Anthropic API usage ↗Configure credentials on your server. The generated Markdown contains only the public card URL. Full deployment guide ↗
GitHub measures activity and repository code. WakaTime measures coding time. Codex, OpenRouter and Anthropic API report their own AI usage. Periods and totals stay separate.
Each source keeps its last successful snapshot. If an API is down, saved numbers remain visible with their own timestamp and a stale label.
A single SVG works as a GitHub image. Native details sections reveal language and activity cards. The interactive controls live at /build; the homepage serves the image directly.