{"id":34546399,"url":"https://github.com/dytsou/github-readme-stats","last_synced_at":"2026-04-18T17:06:24.927Z","repository":{"id":327619327,"uuid":"1110023093","full_name":"dytsou/github-readme-stats","owner":"dytsou","description":"Dynamically generated stats for github readmes with Cloudflare worker","archived":false,"fork":false,"pushed_at":"2026-01-10T07:49:44.000Z","size":7127,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T01:54:18.690Z","etag":null,"topics":["cloudflare-workers","github-readme-stats","profile","readme","readme-profile-badge"],"latest_commit_sha":null,"homepage":"http://dy.tsou.me/github-readme-stats/","language":"JavaScript","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/dytsou.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","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":"2025-12-04T15:54:19.000Z","updated_at":"2026-01-10T07:49:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dytsou/github-readme-stats","commit_stats":null,"previous_names":["dytsou/github-readme-stats"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/dytsou/github-readme-stats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dytsou%2Fgithub-readme-stats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dytsou%2Fgithub-readme-stats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dytsou%2Fgithub-readme-stats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dytsou%2Fgithub-readme-stats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dytsou","download_url":"https://codeload.github.com/dytsou/github-readme-stats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dytsou%2Fgithub-readme-stats/sbom","scorecard":{"id":1240741,"data":{"date":"2025-12-17T07:09:36Z","repo":{"name":"github.com/dytsou/github-readme-stats","commit":"f7e9acb2d88229400b3a8168cfcc291da9197732"},"scorecard":{"version":"v5.3.0","commit":"c22063e786c11f9dd714d777a687ff7c4599b600"},"score":6.2,"checks":[{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dependency-update-tool"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/2 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"project was created within the last 90 days. Please review its contents carefully","details":["Warn: Repository was created within the last 90 days."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:24","Info: jobLevel 'checks' permission set to 'read': .github/workflows/codeql-analysis.yml:25","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:26","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/generate-theme-doc.yml:20","Info: jobLevel 'contents' permission set to 'read': .github/workflows/prs-cache-clean.yml:16","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/prs-cache-clean.yml:15","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/publish.yml:22","Warn: jobLevel 'packages' permission set to 'write': .github/workflows/publish.yml:23","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/update-langs.yml:25","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:14","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:13","Info: topLevel 'contents' permission set to 'read': .github/workflows/deploy-api-docs.yml:4","Info: topLevel permissions set to 'read-all': .github/workflows/e2e-test.yml:13","Info: topLevel 'repository-projects' permission set to 'read': .github/workflows/empty-issues-closer.yml:19","Info: topLevel 'statuses' permission set to 'read': .github/workflows/empty-issues-closer.yml:21","Info: topLevel 'actions' permission set to 'read': .github/workflows/empty-issues-closer.yml:10","Info: topLevel 'checks' permission set to 'read': .github/workflows/empty-issues-closer.yml:11","Info: topLevel 'pages' permission set to 'read': .github/workflows/empty-issues-closer.yml:17","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/empty-issues-closer.yml:18","Info: topLevel 'security-events' permission set to 'read': .github/workflows/empty-issues-closer.yml:20","Info: topLevel 'contents' permission set to 'read': .github/workflows/empty-issues-closer.yml:12","Info: topLevel 'deployments' permission set to 'read': .github/workflows/empty-issues-closer.yml:13","Info: topLevel 'discussions' permission set to 'read': .github/workflows/empty-issues-closer.yml:15","Info: topLevel 'packages' permission set to 'read': .github/workflows/empty-issues-closer.yml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/generate-theme-doc.yml:12","Info: topLevel 'checks' permission set to 'read': .github/workflows/label-pr.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/label-pr.yml:9","Info: topLevel 'deployments' permission set to 'read': .github/workflows/label-pr.yml:10","Info: topLevel 'issues' permission set to 'read': .github/workflows/label-pr.yml:11","Info: topLevel 'packages' permission set to 'read': .github/workflows/label-pr.yml:13","Info: topLevel 'security-events' permission set to 'read': .github/workflows/label-pr.yml:17","Info: topLevel 'actions' permission set to 'read': .github/workflows/label-pr.yml:7","Info: topLevel 'discussions' permission set to 'read': .github/workflows/label-pr.yml:12","Info: topLevel 'pages' permission set to 'read': .github/workflows/label-pr.yml:14","Info: topLevel 'repository-projects' permission set to 'read': .github/workflows/label-pr.yml:16","Info: topLevel 'statuses' permission set to 'read': .github/workflows/label-pr.yml:18","Info: topLevel permissions set to 'read-all': .github/workflows/ossf-analysis.yml:12","Info: topLevel 'packages' permission set to 'read': .github/workflows/preview-theme.yml:20","Info: topLevel 'pages' permission set to 'read': .github/workflows/preview-theme.yml:21","Info: topLevel 'actions' permission set to 'read': .github/workflows/preview-theme.yml:14","Info: topLevel 'checks' permission set to 'read': .github/workflows/preview-theme.yml:15","Info: topLevel 'issues' permission set to 'read': .github/workflows/preview-theme.yml:18","Info: topLevel 'repository-projects' permission set to 'read': .github/workflows/preview-theme.yml:23","Info: topLevel 'security-events' permission set to 'read': .github/workflows/preview-theme.yml:24","Info: topLevel 'statuses' permission set to 'read': .github/workflows/preview-theme.yml:25","Info: topLevel 'contents' permission set to 'read': .github/workflows/preview-theme.yml:16","Info: topLevel 'deployments' permission set to 'read': .github/workflows/preview-theme.yml:17","Info: topLevel 'discussions' permission set to 'read': .github/workflows/preview-theme.yml:19","Info: topLevel 'contents' permission set to 'read': .github/workflows/prs-cache-clean.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/publish.yml:16","Info: topLevel 'repository-projects' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:28","Info: topLevel 'security-events' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:29","Info: topLevel 'contents' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:21","Info: topLevel 'issues' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:23","Info: topLevel 'discussions' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:24","Info: topLevel 'packages' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:25","Info: topLevel 'statuses' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:30","Info: topLevel 'actions' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:19","Info: topLevel 'checks' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:20","Info: topLevel 'deployments' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:22","Info: topLevel 'pages' permission set to 'read': .github/workflows/stale-theme-pr-closer.yml:26","Info: topLevel permissions set to 'read-all': .github/workflows/test.yml:12","Info: topLevel 'actions' permission set to 'read': .github/workflows/theme-prs-closer.yml:7","Info: topLevel 'checks' permission set to 'read': .github/workflows/theme-prs-closer.yml:8","Info: topLevel 'issues' permission set to 'read': .github/workflows/theme-prs-closer.yml:11","Info: topLevel 'packages' permission set to 'read': .github/workflows/theme-prs-closer.yml:13","Info: topLevel 'statuses' permission set to 'read': .github/workflows/theme-prs-closer.yml:18","Info: topLevel 'contents' permission set to 'read': .github/workflows/theme-prs-closer.yml:9","Info: topLevel 'deployments' permission set to 'read': .github/workflows/theme-prs-closer.yml:10","Info: topLevel 'discussions' permission set to 'read': .github/workflows/theme-prs-closer.yml:12","Info: topLevel 'pages' permission set to 'read': .github/workflows/theme-prs-closer.yml:14","Info: topLevel 'repository-projects' permission set to 'read': .github/workflows/theme-prs-closer.yml:16","Info: topLevel 'security-events' permission set to 'read': .github/workflows/theme-prs-closer.yml:17","Info: topLevel 'checks' permission set to 'read': .github/workflows/top-issues-dashboard.yml:18","Info: topLevel 'contents' permission set to 'read': .github/workflows/top-issues-dashboard.yml:19","Info: topLevel 'packages' permission set to 'read': .github/workflows/top-issues-dashboard.yml:23","Info: topLevel 'security-events' permission set to 'read': .github/workflows/top-issues-dashboard.yml:27","Info: topLevel 'statuses' permission set to 'read': .github/workflows/top-issues-dashboard.yml:28","Info: topLevel 'actions' permission set to 'read': .github/workflows/top-issues-dashboard.yml:17","Info: topLevel 'deployments' permission set to 'read': .github/workflows/top-issues-dashboard.yml:20","Info: topLevel 'discussions' permission set to 'read': .github/workflows/top-issues-dashboard.yml:22","Info: topLevel 'pages' permission set to 'read': .github/workflows/top-issues-dashboard.yml:24","Info: topLevel 'repository-projects' permission set to 'read': .github/workflows/top-issues-dashboard.yml:26","Info: topLevel 'contents' permission set to 'read': .github/workflows/update-langs.yml:16"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy-api-docs.yml:212: update your workflow using https://app.stepsecurity.io/secureworkflow/dytsou/github-readme-stats/deploy-api-docs.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/deploy-api-docs.yml:48","Info:  27 out of  27 GitHub-owned GitHubAction dependencies pinned","Info:  30 out of  31 third-party GitHubAction dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#signed-releases"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (28) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#security-policy"}},{"name":"CI-Tests","score":10,"reason":"11 out of 11 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#ci-tests"}},{"name":"Contributors","score":10,"reason":"project has 17 contributing companies or organizations","details":["Info: found contributions from: GDSC-CV, MCHackathon2025, NYCU-SDC, OpenGenus, bageasy, codetechcc, deerfield academy, kore-ji, livepeer, loggin-js, national yang ming chiao tung university, overvis, project-info, razorpay, reviewdog, sabaidea, transcodeninja"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#contributors"}}]},"last_synced_at":"2025-12-25T18:58:09.696Z","repository_id":327619327,"created_at":"2025-12-25T18:58:09.696Z","updated_at":"2025-12-25T18:58:09.696Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"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":["cloudflare-workers","github-readme-stats","profile","readme","readme-profile-badge"],"created_at":"2025-12-24T07:06:21.248Z","updated_at":"2026-01-16T10:45:32.516Z","avatar_url":"https://github.com/dytsou.png","language":"JavaScript","readme":"# GitHub Readme Stats\n\nDynamically generated GitHub stats cards for your README.\n\n\u003cdiv\u003e\n  \u003ch1\u003eGitHub Readme Stats\u003c/h1\u003e\n  \u003cp\u003eGet dynamically generated GitHub stats on your READMEs!\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTable of contents\u003c/summary\u003e\n\n- [Quick Start](#quick-start)\n- [GitHub Stats Card](#github-stats-card)\n- [Top Languages Card](#top-languages-card)\n- [Repository Card](#repository-card)\n- [Gist Card](#gist-card)\n- [WakaTime Card](#wakatime-card)\n- [Deployment](#deployment)\n- [Configuration](#configuration)\n- [Support](#support)\n\n\u003c/details\u003e\n\n## Quick Start\n\nAdd this to your README (replace `YOUR_USERNAME` with your GitHub username):\n\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME)\n```\n\n\u003e **Note:** Replace `YOUR-INSTANCE.WORKERS.DEV` with your deployed Cloudflare Workers instance URL and `YOUR_USERNAME` with your GitHub username.\n\n---\n\n## Important Notes\n\n\u003e [!IMPORTANT]\n\u003e The GitHub API allows 5k requests per hour per account. Public instances may hit rate limits. We use caching to prevent this. For better control, [deploy your own instance](#deployment).\n\n\u003e [!WARNING]\n\u003e By default, cards only show statistics from public repositories. To include private repository statistics, deploy your own instance with a GitHub Personal Access Token.\n\n---\n\n## GitHub Stats Card\n\nDisplay your GitHub statistics including stars, commits, pull requests, and more.\n\n### Basic Usage\n\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME)\n```\n\n### Common Options\n\n| Parameter | Description | Example |\n|-----------|-------------|---------|\n| `username` | GitHub username (required) | `NAME` |\n| `theme` | Theme name | `dark`, `radical`, `merko`, etc. |\n| `hide` | Hide specific stats | `stars,commits,prs` |\n| `show` | Show additional stats | `reviews,discussions_started` |\n| `show_icons` | Display icons | `true` |\n| `hide_border` | Hide card border | `true` |\n| `bg_color` | Background color (hex) | `1a1b27` |\n| `title_color` | Title color (hex) | `fff` |\n| `text_color` | Text color (hex) | `9f9f9f` |\n| `border_color` | Border color (hex) | `e4e2e2` |\n| `locale` | Language | `en`, `es`, `fr`, etc. |\n| `cache_seconds` | Cache duration (21600-86400) | `21600` |\n\n### Stats Card Specific Options\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `hide_title` | Hide card title | `false` |\n| `hide_rank` | Hide rank badge | `false` |\n| `rank_icon` | Rank icon style | `default`, `github`, `percentile` |\n| `card_width` | Card width in pixels | `500` |\n| `include_all_commits` | Count all commits (not just current year) | `false` |\n| `commits_year` | Filter commits by year | Current year |\n| `exclude_repo` | Exclude repositories | Comma-separated list |\n| `custom_title` | Custom card title | `\u003cusername\u003e GitHub Stats` |\n| `number_format` | Number format | `short` (e.g., `6.6k`) or `long` (e.g., `6626`) |\n\n### Examples\n\n**Hide specific stats:**\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026hide=contribs,prs)\n```\n\n**Show icons:**\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026show_icons=true)\n```\n\n**Use a theme:**\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026theme=radical)\n```\n\n**Custom colors:**\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026bg_color=151515\u0026title_color=fff\u0026text_color=9f9f9f)\n```\n\n### Available Themes\n\nPopular themes include: `dark`, `radical`, `merko`, `gruvbox`, `tokyonight`, `onedark`, `cobalt`, `synthwave`, `highcontrast`, `dracula`, `transparent`, and more.\n\nSee [all available themes](themes/README.md) for the complete list.\n\n### Responsive Themes\n\nUse GitHub's theme context tags for automatic dark/light mode:\n\n```markdown\n[![GitHub Stats Dark](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026theme=dark#gh-dark-mode-only)](https://github.com/YOUR_USERNAME)\n[![GitHub Stats Light](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026theme=default#gh-light-mode-only)](https://github.com/YOUR_USERNAME)\n```\n\n---\n\n## Top Languages Card\n\nDisplay your most frequently used programming languages.\n\n### Basic Usage\n\n```markdown\n![Top Languages](https://YOUR-INSTANCE.WORKERS.DEV/api/top-langs?username=YOUR_USERNAME)\n```\n\n### Options\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `layout` | Layout style | `normal`, `compact`, `donut`, `donut-vertical`, `pie` |\n| `langs_count` | Number of languages to show (1-20) | `5` |\n| `hide` | Hide specific languages | Comma-separated list |\n| `exclude_repo` | Exclude repositories | Comma-separated list |\n| `size_weight` | Weight for byte count in ranking | `1` |\n| `count_weight` | Weight for repo count in ranking | `0` |\n| `stats_format` | Display format | `percentages` or `bytes` |\n| `hide_progress` | Hide progress bars | `false` |\n\n### Examples\n\n**Compact layout:**\n```markdown\n![Top Languages](https://YOUR-INSTANCE.WORKERS.DEV/api/top-langs?username=YOUR_USERNAME\u0026layout=compact)\n```\n\n**Donut chart:**\n```markdown\n![Top Languages](https://YOUR-INSTANCE.WORKERS.DEV/api/top-langs?username=YOUR_USERNAME\u0026layout=donut)\n```\n\n**Show more languages:**\n```markdown\n![Top Languages](https://YOUR-INSTANCE.WORKERS.DEV/api/top-langs?username=YOUR_USERNAME\u0026langs_count=8)\n```\n\n**Hide specific languages:**\n```markdown\n![Top Languages](https://YOUR-INSTANCE.WORKERS.DEV/api/top-langs?username=YOUR_USERNAME\u0026hide=javascript,html)\n```\n\n### Language Ranking Algorithm\n\nLanguages are ranked using:\n```\nranking_index = (byte_count ^ size_weight) * (repo_count ^ count_weight)\n```\n\n- Default (`size_weight=1, count_weight=0`): Orders by byte count\n- Recommended (`size_weight=0.5, count_weight=0.5`): Uses both byte and repo count\n- Repo-based (`size_weight=0, count_weight=1`): Orders by repo count\n\n---\n\n## Repository Card\n\nPin additional repositories beyond GitHub's 6-repo limit.\n\n### Basic Usage\n\n```markdown\n![Repository Card](https://YOUR-INSTANCE.WORKERS.DEV/api/pin?username=YOUR_USERNAME\u0026repo=REPO_NAME)\n```\n\n### Options\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `show_owner` | Show repository owner | `false` |\n| `description_lines_count` | Number of description lines (1-3) | Auto |\n\n### Example\n\n```markdown\n![Repository Card](https://YOUR-INSTANCE.WORKERS.DEV/api/pin?username=YOUR_USERNAME\u0026repo=github-readme-stats\u0026show_owner=true)\n```\n\n---\n\n## Gist Card\n\nDisplay GitHub Gists in your README.\n\n### Basic Usage\n\n```markdown\n![Gist Card](https://YOUR-INSTANCE.WORKERS.DEV/api/gist?id=GIST_ID)\n```\n\n### Options\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `show_owner` | Show gist owner | `false` |\n\n### Example\n\n```markdown\n![Gist Card](https://YOUR-INSTANCE.WORKERS.DEV/api/gist?id=bbfce31e0217a3689c8d961a356cb10d\u0026show_owner=true)\n```\n\n---\n\n## WakaTime Card\n\nDisplay your WakaTime coding statistics.\n\n\u003e [!WARNING]\n\u003e Your WakaTime profile must be public. Enable both \"Display code time publicly\" and \"Display languages, editors, os, categories publicly\" in your WakaTime settings.\n\n### Basic Usage\n\n```markdown\n![WakaTime Stats](https://YOUR-INSTANCE.WORKERS.DEV/api/wakatime?username=YOUR_WAKATIME_USERNAME)\n```\n\n### Options\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `layout` | Layout style | `default`, `compact` |\n| `langs_count` | Limit number of languages | All languages |\n| `hide_progress` | Hide progress bars | `false` |\n| `display_format` | Display format | `time` or `percent` |\n| `api_domain` | Custom API domain | `wakatime.com` |\n\n### Example\n\n```markdown\n![WakaTime Stats](https://YOUR-INSTANCE.WORKERS.DEV/api/wakatime?username=YOUR_USERNAME\u0026layout=compact)\n```\n\n---\n\n## Deployment\n\n### Prerequisites\n\n1. **GitHub Personal Access Token (PAT)**\n   - Go to [GitHub Settings \u003e Developer Settings \u003e Personal Access Tokens](https://github.com/settings/tokens)\n   - Create a new token (classic) with `repo` and `read:user` scopes\n   - Copy the token\n\n### Deploy to Cloudflare Workers\n\n1. **Fork this repository**\n\n2. **Install dependencies:**\n   ```bash\n   pnpm install\n   ```\n   \n   \u003e **Note:** This project uses [pnpm](https://pnpm.io/) as the package manager. If you don't have pnpm installed, you can install it with `npm install -g pnpm`.\n\n3. **Configure `wrangler.toml`:**\n   ```toml\n   name = \"github-readme-stats\"\n   main = \"src/worker.ts\"\n   compatibility_date = \"2025-12-04\"\n   compatibility_flags = [\"nodejs_compat\"]\n\n   [observability]\n   enabled = true\n   head_sampling_rate = 1\n\n   [observability.logs]\n   enabled = true\n   head_sampling_rate = 1\n   persist = true\n   invocation_logs = true\n\n   [observability.traces]\n   enabled = true\n   persist = true\n   head_sampling_rate = 1\n\n   [vars]\n   PAT_1 = \"your_pat_token_here\"\n   ```\n\n   \u003e [!WARNING]\n   \u003e For production, use Cloudflare secrets instead of `[vars]`:\n   \u003e ```bash\n   \u003e wrangler secret put PAT_1\n   \u003e ```\n\n4. **Deploy:**\n\n   **Option A: Manual deployment**\n   ```bash\n   npx wrangler deploy\n   ```\n\n   **Option B: GitHub Actions (Recommended)**\n   \n   Set up the following secrets in your GitHub repository:\n   - `CLOUDFLARE_API_TOKEN`: Your Cloudflare API token (create at [Cloudflare Dashboard \u003e My Profile \u003e API Tokens](https://dash.cloudflare.com/profile/api-tokens))\n   - `CLOUDFLARE_ACCOUNT_ID`: Your Cloudflare Account ID (found in the right sidebar of your Cloudflare dashboard)\n   - `PAT_1`: Your GitHub Personal Access Token (optional, if not set in `wrangler.toml`)\n   \n   The workflow will automatically deploy on every push to `main`/`master` branch, or you can trigger it manually from the Actions tab.\n\n5. **Your instance will be available at:**\n   ```\n   https://your-worker-name.your-subdomain.workers.dev\n   ```\n\n6. **Update your README URLs** to use your new domain!\n\n### Environment Variables\n\nConfigure your instance using these environment variables:\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `PAT_1`, `PAT_2`, etc. | GitHub Personal Access Tokens | `ghp_...` |\n| `CACHE_SECONDS` | Cache duration in seconds (0 to disable) | `21600` |\n| `WHITELIST` | Comma-separated allowed usernames | `user1,user2` |\n| `GIST_WHITELIST` | Comma-separated allowed Gist IDs | `id1,id2` |\n| `EXCLUDE_REPO` | Comma-separated repositories to exclude | `repo1,repo2` |\n| `FETCH_MULTI_PAGE_STARS` | Fetch all starred repos | `true` or `false` |\n\n\u003e [!WARNING]\n\u003e Redeploy your instance after changing environment variables for changes to take effect.\n\n### Keep Your Fork Updated\n\nUse GitHub's [Sync Fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) feature or the [pull](https://github.com/wei/pull) package to keep your fork up to date.\n\n---\n\n## Configuration\n\n### Available Locales\n\nThe cards support multiple languages. Set the `locale` parameter to use:\n\n`ar`, `az`, `bn`, `bg`, `my`, `ca`, `cn`, `zh-tw`, `cs`, `nl`, `en`, `fil`, `fi`, `fr`, `de`, `el`, `he`, `hi`, `hu`, `id`, `it`, `ja`, `kr`, `ml`, `np`, `no`, `fa`, `pl`, `pt-br`, `pt-pt`, `ro`, `ru`, `sa`, `sr`, `sr-latn`, `sk`, `es`, `sw`, `se`, `ta`, `th`, `tr`, `uk-ua`, `ur`, `uz`, `vi`\n\nExample:\n```markdown\n![GitHub Stats](https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\u0026locale=es)\n```\n\n### Caching\n\nDefault cache durations:\n- Stats card: 24 hours\n- Top languages card: 144 hours (6 days)\n- Repository card: 240 hours (10 days)\n- Gist card: 48 hours (2 days)\n- WakaTime card: 24 hours\n\nOverride with `cache_seconds` parameter (min: 21600, max: 86400) or set `CACHE_SECONDS` environment variable.\n\n### Aligning Cards Side by Side\n\nUse HTML with `align` attribute:\n\n```html\n\u003ca href=\"https://github.com/YOUR_USERNAME\"\u003e\n  \u003cimg height=200 align=\"center\" src=\"https://YOUR-INSTANCE.WORKERS.DEV/api?username=YOUR_USERNAME\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/YOUR_USERNAME\"\u003e\n  \u003cimg height=200 align=\"center\" src=\"https://YOUR-INSTANCE.WORKERS.DEV/api/top-langs?username=YOUR_USERNAME\u0026layout=compact\" /\u003e\n\u003c/a\u003e\n```\n\n---\n\n## API Documentation\n\nFor comprehensive API documentation including all endpoints, parameters, response formats, error handling, and examples, see [API.md](API.md) or [API Documentation](https://dytsou.github.io/github-readme-stats/).\n\n**OpenAPI Specification:** The API is also available as an OpenAPI 3.1.0 specification in [openapi.yaml](openapi.yaml). You can use this with tools like:\n- [Swagger UI](https://swagger.io/tools/swagger-ui/) for interactive API exploration\n- [Postman](https://www.postman.com/) for API testing\n- Code generators for client SDKs\n- API documentation generators\n\n---\n\n## Support\n\nContributions are welcome! If you find this project useful:\n\n- ⭐ Star the repository\n- 🐛 Report bugs\n- 💡 Suggest features\n- 📖 Improve documentation\n\nMade with ❤️ and JavaScript.\n\n[![Powered by Cloudflare Workers](https://img.shields.io/badge/Powered%20by-Cloudflare%20Workers-F38020?logo=cloudflare\u0026logoColor=white)](https://workers.cloudflare.com/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdytsou%2Fgithub-readme-stats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdytsou%2Fgithub-readme-stats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdytsou%2Fgithub-readme-stats/lists"}