{"id":21591853,"url":"https://github.com/shenxianpeng/gitstats","last_synced_at":"2026-07-01T23:01:42.501Z","repository":{"id":90183235,"uuid":"228573740","full_name":"shenxianpeng/gitstats","owner":"shenxianpeng","description":"📊 Visualize Your Git Repositories","archived":false,"fork":false,"pushed_at":"2026-07-01T07:11:38.000Z","size":43510,"stargazers_count":85,"open_issues_count":6,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-01T09:12:01.252Z","etag":null,"topics":["code-metrics","developer-tools","devops","engineering-metrics","git","git-analytics","gitstats","html-report","repository-analytics","statistics"],"latest_commit_sha":null,"homepage":"https://gitstats.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"hoxu/gitstats","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shenxianpeng.png","metadata":{"files":{"readme":"README.rst","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":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"shenxianpeng"}},"created_at":"2019-12-17T08:52:46.000Z","updated_at":"2026-07-01T07:11:23.000Z","dependencies_parsed_at":"2025-01-27T21:30:47.473Z","dependency_job_id":"fdd537af-b0d4-4ae9-b92b-5813eae40bbc","html_url":"https://github.com/shenxianpeng/gitstats","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/shenxianpeng/gitstats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shenxianpeng","download_url":"https://codeload.github.com/shenxianpeng/gitstats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35025983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["code-metrics","developer-tools","devops","engineering-metrics","git","git-analytics","gitstats","html-report","repository-analytics","statistics"],"created_at":"2024-11-24T16:34:04.626Z","updated_at":"2026-07-01T23:01:42.480Z","avatar_url":"https://github.com/shenxianpeng.png","language":"Python","funding_links":["https://github.com/sponsors/shenxianpeng"],"categories":[],"sub_categories":[],"readme":".. start-of-about\n\n.. figure:: https://raw.githubusercontent.com/shenxianpeng/gitstats/main/docs/source/logo.png\n   :alt: Project Logo\n   :align: center\n   :width: 200px\n\n.. |pypi-version| image:: https://img.shields.io/pypi/v/gitstats?color=blue\n   :target: https://pypi.org/project/gitstats/\n   :alt: PyPI - Version\n\n.. |python-versions| image:: https://img.shields.io/pypi/pyversions/gitstats\n   :alt: PyPI - Python Version\n\n.. |python-download| image:: https://static.pepy.tech/badge/gitstats/week\n   :target: https://pepy.tech/projects/gitstats\n   :alt: PyPI Downloads\n\n.. |test-badge| image:: https://github.com/shenxianpeng/gitstats/actions/workflows/test.yml/badge.svg\n   :target: https://github.com/shenxianpeng/gitstats/actions/workflows/test.yml\n   :alt: Test\n\n.. |sonarcloud| image:: https://sonarcloud.io/api/project_badges/measure?project=shenxianpeng_gitstats\u0026metric=alert_status\n   :target: https://sonarcloud.io/summary/new_code?id=shenxianpeng_gitstats\n   :alt: Quality Gate Status\n\n.. |docs-badge| image:: https://readthedocs.org/projects/gitstats/badge/?version=latest\n   :target: https://gitstats.readthedocs.io/\n   :alt: Documentation\n\n.. |contributors| image:: https://img.shields.io/github/contributors/shenxianpeng/gitstats\n   :target: https://github.com/shenxianpeng/gitstats/graphs/contributors\n   :alt: GitHub contributors\n\n|pypi-version| |python-versions| |python-download| |test-badge| |docs-badge| |contributors|\n\n``$ gitstats``\n===============\n\n📊 Generate insightful visual reports from Git.\n\n📘 Documentation: `gitstats.readthedocs.io \u003chttps://gitstats.readthedocs.io/\u003e`_\n\nExample\n-------\n\n``gitstats . report`` generates this `gitstats report \u003chttps://shenxianpeng.github.io/gitstats/index.html\u003e`_.\n\n.. image:: https://raw.githubusercontent.com/shenxianpeng/gitstats/main/docs/source/demo.gif\n   :alt: gitstats terminal demo\n   :align: center\n\n\n\nInstallation\n------------\n\n.. code-block:: bash\n\n   pip install gitstats\n\nOr, using `uv \u003chttps://docs.astral.sh/uv/\u003e`_ (recommended):\n\n.. code-block:: bash\n\n   uv pip install gitstats      # install into current environment\n   uvx gitstats . report        # run instantly, no install required\n\n\ngitstats is compatible with Python 3.10 and newer.\n\n\nUsage\n-----\n\n.. code-block:: bash\n\n   gitstats \u003cgitpath\u003e \u003coutputpath\u003e\n\nUse ``--verbose`` to show debug-level command logs, or ``--quiet`` to show only warnings and errors:\n\n.. code-block:: bash\n\n   gitstats --verbose . report\n   gitstats --quiet . report\n\n\nRun ``gitstats --help`` for more options, or check the `documentation \u003chttps://gitstats.readthedocs.io/en/latest/getting-started.html\u003e`_.\n\nWhat's New in v2.0.0\n--------------------\n\nv2.0.0 is a major release focused on modernizing the report UI and removing the Gnuplot dependency.\n\n**Terminal-inspired UI redesign**\n   The entire report interface has been redesigned with a terminal / OpenCode-inspired aesthetic:\n   zero border-radius (sharp, angular corners), monospace fonts in headings and navigation,\n   border-heavy layout, and a GitHub-style green heatmap. Both light and dark modes are supported\n   with a one-click toggle — no flash of unstyled content when switching pages.\n\n**Chart.js replaces Gnuplot**\n   All charts are now rendered interactively in the browser using `Chart.js \u003chttps://www.chartjs.org/\u003e`_.\n   Gnuplot is no longer required. Reports are fully self-contained HTML files.\n\nFeatures\n--------\n\nHere is a list of some features of ``gitstats``:\n\n* **General**: total files, lines, commits, authors, age.\n* **Activity**: commits by hour of day, day of week, hour of week, month of year, year and month, and year.\n* **Authors**: list of authors (name, commits (%), first commit date, last commit date, age), author of month, author of year.\n* **Files**: file count by date, extensions.\n* **Lines**: line of code by date.\n* **Tags**: tags by date and author.\n* **Customizable**: config values through ``gitstats.conf``.\n* **Cross-platform**: works on Linux, Windows, and macOS.\n\nAI-Powered Features 🤖\n-----------------------\n\nGitStats supports AI-powered insights to enhance your repository analysis with natural language summaries and actionable recommendations.\n\n**Quick Start:**\n\n.. code-block:: bash\n\n   # Install with AI support\n   pip install gitstats[ai]\n\n   # Enable AI with OpenAI\n   export OPENAI_API_KEY=your-api-key\n   gitstats --ai --ai-provider openai \u003cgitpath\u003e \u003coutputpath\u003e\n\nFor detailed setup instructions, configuration options, and examples, see the `AI Integration Documentation \u003chttps://gitstats.readthedocs.io/en/stable/ai-integration.html\u003e`_.\n\n.. end-of-about\n\nContributing\n------------\n\nAs an open source project, gitstats welcomes contributions of all forms.\n\n----\n\nThe gitstats project was originally created by `Heikki Hokkainen \u003chttps://github.com/hoxu\u003e`_ and is currently maintained by `Xianpeng Shen \u003chttps://github.com/shenxianpeng\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshenxianpeng%2Fgitstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshenxianpeng%2Fgitstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshenxianpeng%2Fgitstats/lists"}