mitchellh/vouchPublic

A community trust management system based on explicit vouches to participate.

AI summary: A minimal, generic community trust management system based on explicit vouches.

Stars
5.1K
+3 today
Forks
92
Watchers
14
Open issues
14
Open PRs
2
Contributors
~11
Commits
191
Branches
11

NushellMITCreated Feb 5, 2026Last push 1mo agoLatest release v1.5.0+2 stars this week+37 this month

Quick answers

What is vouch?
A minimal, generic community trust management system based on explicit vouches.
What does vouch do?
Vouch provides a robust, minimal system for managing community trust by requiring explicit vouches for contributors to participate in open-source projects. It maintains trust data in a single, minimal flat file that can be trivially parsed by standard POSIX tools without external databases. While generic enough to be used on any code forge, it includes powerful out-of-the-box GitHub integration via GitHub Actions and a dedicated CLI. The system helps projects naturally filter out low-quality or AI-generated contributions by ensuring new participants are vetted by existing trusted members before their PRs or issues are accepted.
Who is vouch for?
Open source maintainers, community managers, and project administrators looking for a robust, simple way to manage trust and filter contributions in large repositories. It is especially useful for high-visibility projects overwhelmed by low-quality submissions.
How do I get started with vouch?
Integrate the provided GitHub Actions into your repository to enforce vouching checks.
How popular is vouch on GitHub?
mitchellh/vouch has 5,117 stars and 92 forks on GitHub, and gained 2 stars in the last 7 days.
What license does vouch use?
mitchellh/vouch is released under the MIT license.

Star history

since Jul 29, 2026
02K4KJul 2026Aug 2026Sep 2026Oct 2026
5.1K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 4 commits2026-02-05: 3 commits2026-02-06: 7 commits2026-02-07: 51 commits2026-02-08: 36 commits2026-02-09: 2 commits2026-02-10: 10 commits2026-02-11: 1 commit2026-02-12: 1 commit2026-02-13: 4 commits2026-02-14: 1 commit2026-02-15: 15 commits2026-02-16: 5 commits2026-02-17: 0 commits2026-02-18: 1 commit2026-02-19: 5 commits2026-02-20: 0 commits2026-02-21: 1 commit2026-02-22: 1 commit2026-02-23: 0 commits2026-02-24: 1 commit2026-02-25: 2 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 1 commit2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 1 commit2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 1 commit2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 1 commit2026-04-25: 1 commit2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 1 commit2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 1 commit2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
158 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What vouch does

Vouch provides a robust, minimal system for managing community trust by requiring explicit vouches for contributors to participate in open-source projects. It maintains trust data in a single, minimal flat file that can be trivially parsed by standard POSIX tools without external databases. While generic enough to be used on any code forge, it includes powerful out-of-the-box GitHub integration via GitHub Actions and a dedicated CLI. The system helps projects naturally filter out low-quality or AI-generated contributions by ensuring new participants are vetted by existing trusted members before their PRs or issues are accepted.

Open source maintainers, community managers, and project administrators looking for a robust, simple way to manage trust and filter contributions in large repositories. It is especially useful for high-visibility projects overwhelmed by low-quality submissions.

  • Explicit Trust Modeling: Requires new contributors to be explicitly vouched for by trusted members before allowing interaction with configured project components.
  • Flat File Storage: Maintains the vouch list in a minimal, human-readable format that requires no external database or complex parsing logic.
  • GitHub Native Integration: Provides immediate utility for GitHub projects through a suite of included Actions and a comprehensive Nushell CLI tool.
  • Explicit Denouncement: Allows maintainers to officially denounce specific individuals, blocking them from interacting with the project entirely.
  • Toolchain Agnostic Parsing: Ensures the trust list can be parsed and manipulated by any standard POSIX tool or programming language script.

Where teams use it

High-Traffic Open Source Moderation

Stemming the tide of low-effort or AI-generated pull requests by requiring a baseline of community trust first.

Automated Access Control

Integrating trust checks into CI/CD pipelines to automatically close issues or PRs from unvouched users.

Community Self-Governance

Empowering existing trusted members to vouch for newcomers, decentralizing the moderation burden in large projects.

Experimental Trust Management

Implementing novel trust and verify contribution models in cutting-edge projects like Ghostty.

Getting started: Integrate the provided GitHub Actions into your repository to enforce vouching checks.

README

main branch

Vouch

A community trust management system.

FAQ · Cookbook · Contributing


People must be vouched for before interacting with certain parts of a project (the exact parts are configurable to the project to enforce). People can also be explicitly denounced to block them from interacting with the project.

The implementation is generic and can be used by any project on any code forge, but we provide GitHub integration out of the box via GitHub actions and the CLI.

The vouch list is maintained in a single flat file using a minimal format that can be trivially parsed using standard POSIX tools and any programming language without external libraries.

This project is based on the already successful system in use by the Pi project. I took what they already do and extracted it into a more generalizable system with some other changes.

Warning

This is an experimental system in use by Ghostty. We'll continue to improve the system based on experience and feedback.

Why?

Open source has always worked on a system of trust and verify.

Historically, the effort required to understand a codebase, implement a change, and submit that change for review was high enough that it naturally filtered out many low quality contributions from unqualified people. For over 20 years of my life, this was enough for my projects as well as enough for most others.

Unfortunately, the landscape has changed particularly with the advent of AI tools that allow people to trivially create plausible-looking but extremely low-quality contributions with little to no true understanding. Contributors can no longer be trusted based on the minimal barrier to entry to simply submit a change.

But, open source still works on trust! And every project has a definite group of trusted individuals (maintainers) and a larger group of probably trusted individuals (active members of the community in any form). So, let's move to an explicit trust model where trusted individuals can vouch for others, and those vouched individuals can then contribute.

Who is Vouched?

Who and how someone is vouched or denounced is left entirely up to the project integrating the system. Additionally, what consequences a vouched or denounced person has is also fully up to the project. Implement a policy that works for your project and community.

Usage

GitHub

Integrating vouch into a GitHub project is easy with the provided GitHub Actions. By choosing which actions to use, you can fully control how users are vouched and what they can or can't do.

For an example, look at this repository! It fully integrates vouch.

Below is a list of the actions and a brief description of their function. See the linked README in the action directory for full usage details.

Action Trigger Description
check-issue issues Check if an issue author is vouched on open or reopen. Bots and collaborators with write access are automatically allowed. Optionally auto-close and lock issues from unvouched or denounced users.
check-pr pull_request_target Check if a PR author is vouched on open or reopen. Bots and collaborators with write access are automatically allowed. Optionally auto-close PRs from unvouched or denounced users.
check-user Any Check if a GitHub user is vouched. Outputs the user's status and fails the step by default if the user is not vouched. Set allow-fail to only report via output.
manage-by-discussion discussion_comment Let collaborators vouch, denounce, or unvouch users via discussion comments. Updates the vouched file and commits the change.
manage-by-issue issue_comment Let collaborators vouch or denounce users via issue comments. Updates the vouched file and commits the change.
sync-codeowners Any Sync CODEOWNERS owners into the vouch list by vouching missing users.
setup-vouch Any Install the vouch CLI on PATH. Nushell is installed automatically if not already available.

CLI

The CLI is implemented as a Nushell module and only requires Nushell to run. There are no other external dependencies.

Integrated Help

This is Nushell, so you can get help on any command:

use vouch *
help add
help check
help denounce
help gh-check-issue
help gh-check-pr
help gh-manage-by-issue
Local Commands

Check a user's vouch status:

vouch check <username>

Exit codes: 0 = vouched, 1 = denounced, 2 = unknown.

Add a user to the vouched list:

# Preview new file contents (default)
vouch add someuser

# Write the file in-place
vouch add someuser --write

Denounce a user:

# Preview new file contents (default)
vouch denounce badactor

# With a reason
vouch denounce badactor --reason "Submitted AI slop"

# Write the file in-place
vouch denounce badactor --write
GitHub Integration

Requires the GITHUB_TOKEN environment variable. If not set and gh is available, the token from gh auth token is used.

Check if an issue author is vouched:

# Check issue author status (dry run)
vouch gh-check-issue 123 --repo owner/repo

# Auto-close unvouched issues (dry run)
vouch gh-check-issue 123 --repo owner/repo --auto-close

# Actually close unvouched issues
vouch gh-check-issue 123 --repo owner/repo --auto-close --dry-run=false

# Allow unvouched users, only block denounced
vouch gh-check-issue 123 --repo owner/repo --require-vouch=false --auto-close

Outputs status: skipped (bot/collaborator), vouched, allowed, or closed.

Check if a PR author is vouched:

# Check PR author status (dry run)
vouch gh-check-pr 123 --repo owner/repo

# Auto-close unvouched PRs (dry run)
vouch gh-check-pr 123 --repo owner/repo --auto-close

# Actually close unvouched PRs
vouch gh-check-pr 123 --repo owner/repo --auto-close --dry-run=false

# Allow unvouched users, only block denounced
vouch gh-check-pr 123 --repo owner/repo --require-vouch=false --auto-close

Outputs status: skipped (bot/collaborator), vouched, allowed, or closed.

Manage contributor status via issue comments:

# Dry run (default)
vouch gh-manage-by-issue 123 456789 --repo owner/repo

# Actually perform the action
vouch gh-manage-by-issue 123 456789 --repo owner/repo --dry-run=false

Responds to comments from collaborators with sufficient role (admin, maintain, write, or triage by default):

  • vouch — vouches for the issue author
  • vouch @user — vouches for a specific user
  • vouch <reason> — vouches for the issue author with a reason
  • vouch @user <reason> — vouches for a specific user with a reason
  • denounce — denounces the issue author
  • denounce @user — denounces a specific user
  • denounce <reason> — denounces the issue author with a reason
  • denounce @user <reason> — denounces a specific user with a reason

Keywords are customizable via --vouch-keyword and --denounce-keyword. You can also allow specific managers listed in a separate VOUCHED file via --vouched-managers.

Outputs status: vouched, denounced, or unchanged.

Library

The module also exports a lib submodule for scripting:

use vouch/lib.nu *

let records = open VOUCHED.td
$records | check-user "mitchellh" --default-platform github  # "vouched", "denounced", or "unknown"
$records | add-user "newuser"                                # returns updated table
$records | denounce-user "badactor" "reason"                 # returns updated table
$records | remove-user "olduser"                             # returns updated table

Vouched File Format

The vouch list is stored in a .td file. See VOUCHED.example.td for an example. The file is looked up at VOUCHED.td or .github/VOUCHED.td by default.

# Comments start with #
username
platform:username
-platform:denounced-user
-platform:denounced-user reason for denouncement
  • One handle per line (without @), sorted alphabetically.
  • Optionally specify a platform prefix: platform:username (e.g., github:mitchellh).
  • Denounce a user by prefixing with -.
  • Optionally add details after a space following the handle.

The from td and to td commands are exported by the module, so Nushell's open command works natively with .td files to decode into structured tables and encode back to the file format with comments and whitespace preserved.

Note

What is .td? This stands for "Trustdown," a play on the word "Markdown." I intend to formalize a specification for trust lists (with no opinion on how they're created or used) so that software systems like this Vouch project and others can coordinate with each other. I'm not ready to publish a specification until vouch itself stabilizes usage more.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

10 total
  1. v1.5.0v1.5.0Jul 12, 2026

    ## What's New ### Improvements -**`action/check-issue`** has a new option `auto-lock` to automatically lock closed issues. ([#90](https://github.com/mitchellh/vouch/pull/90)) - **`gh-manage-by-discussion`** supports numerical IDs. ([#77](https://github.com/mitchellh/vouch/pull/77))

  2. v1.4.2v1.4.2Feb 24, 2026

    ## What's New ### Improvements - **`action/manage-by-discussion`** fixed a bug where discussion comment data could be read from the wrong variable. ([c6d80ea](https://github.com/mitchellh/vouch/commit/c6d80ead49839655b61b422700b7a3bc9d0804a9))

  3. v1.4.1v1.4.1Feb 24, 2026

    ## What's New ### Improvements - **`action/check-pr`** and **`action/check-issue`** now support a `template-file` input so unvouched auto-close responses can be customized using templates. ([#72](https://github.com/mitchellh/vouch/pull/72)) - **`action/manage-by-discussion`** now links to the exact triggering discussion comment URL in generated pull request bodies, rather than the top-level discussion URL. ([#73](https://github.com/mitchellh/vouch/pull/73))

  4. v1.4.0v1.4.0Feb 19, 2026

    ## What's New ### New Actions - **`action/sync-codeowners`** — New action that reads all members in a repository's CODEOWNERS file (expanding team owners to their members) and automatically vouches for them. ([#68](https://github.com/mitchellh/vouch/pull/68)) ### Improvements - **`action/manage-by-issue`** and **`action/manage-by-discussion`** now include the target username in pull request bodies when vouching or denouncing via PR workflow ([98dfb8f](https://github.com/mitchellh/vouch/commit/98dfb8ff)) - **GitHub API** retry logic now also retries on 401/403 (transient auth errors such as GitHub Actions token propagation races) and 429 (rate limiting), in addition to 5xx server errors ([#70](https://github.com/mitchellh/vouch/pull/70)) - **`action/manage-by-issue`** now closes rejected vouch issues as "not planned" instead of "completed" ([#69](https://github.com/mitchellh/vouch/pull/69))

  5. v1.3.1v1.3.1Feb 16, 2026

    ## What's New ### Bug Fixes - **GitHub API** requests now retry on transient server errors (5xx) with exponential backoff, retrying up to 5 times with delays of 1s, 2s, 4s, 8s, 16s (~30s total). This applies to both REST and GraphQL requests ([#65](https://github.com/mitchellh/vouch/pull/65))

Code frequency

additions and deletions
+4.6K-4.6KWeek of 2026-02-01: +4,601 linesWeek of 2026-02-01: -1,698 linesWeek of 2026-02-08: +1,961 linesWeek of 2026-02-08: -593 linesWeek of 2026-02-15: +1,176 linesWeek of 2026-02-15: -162 linesWeek of 2026-02-22: +55 linesWeek of 2026-02-22: -28 linesWeek of 2026-03-01: +0 linesWeek of 2026-03-01: -0 linesWeek of 2026-03-08: +14 linesWeek of 2026-03-08: -1 linesWeek of 2026-03-15: +0 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +2 linesWeek of 2026-03-22: -2 linesWeek of 2026-03-29: +0 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +0 linesWeek of 2026-04-05: -0 linesWeek of 2026-04-12: +4 linesWeek of 2026-04-12: -6 linesWeek of 2026-04-19: +48 linesWeek of 2026-04-19: -126 linesWeek of 2026-04-26: +0 linesWeek of 2026-04-26: -0 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +0 linesWeek of 2026-05-10: -0 linesWeek of 2026-05-17: +38 linesWeek of 2026-05-17: -12 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +7 linesWeek of 2026-06-21: -7 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +0 linesWeek of 2026-08-16: -0 linesWeek of 2026-08-23: +0 linesWeek of 2026-08-23: -0 linesWeek of 2026-08-30: +0 linesWeek of 2026-08-30: -0 linesWeek of 2026-09-06: +0 linesWeek of 2026-09-06: -0 linesWeek of 2026-09-13: +0 linesWeek of 2026-09-13: -0 linesWeek of 2026-09-20: +0 linesWeek of 2026-09-20: -0 linesFeb 1, 2026Sep 20, 2026
+7.9K lines added, -2.6K removed over the last year.

Commits per week

last 52 weeks
650Week of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 65 commitsWeek of 2026-02-08: 55 commitsWeek of 2026-02-15: 27 commitsWeek of 2026-02-22: 4 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 1 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 1 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 1 commitsWeek of 2026-04-19: 2 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 1 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 1 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 0 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 0 commitsSep 27, 2025Sep 20, 2026
158 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 4 commitsSun 4:00 — 2 commitsSun 5:00 — 2 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 12 commitsSun 14:00 — 8 commitsSun 15:00 — 5 commitsSun 16:00 — 5 commitsSun 17:00 — 1 commitsSun 18:00 — 0 commitsSun 19:00 — 3 commitsSun 20:00 — 5 commitsSun 21:00 — 5 commitsSun 22:00 — 2 commitsSun 23:00 — 0 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 1 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 1 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 1 commitsMon 15:00 — 0 commitsMon 16:00 — 0 commitsMon 17:00 — 0 commitsMon 18:00 — 0 commitsMon 19:00 — 0 commitsMon 20:00 — 2 commitsMon 21:00 — 1 commitsMon 22:00 — 1 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 1 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 2 commitsTue 10:00 — 0 commitsTue 11:00 — 0 commitsTue 12:00 — 1 commitsTue 13:00 — 2 commitsTue 14:00 — 4 commitsTue 15:00 — 1 commitsTue 16:00 — 0 commitsTue 17:00 — 0 commitsTue 18:00 — 0 commitsTue 19:00 — 0 commitsTue 20:00 — 0 commitsTue 21:00 — 0 commitsTue 22:00 — 2 commitsTue 23:00 — 0 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 0 commitsWed 11:00 — 2 commitsWed 12:00 — 0 commitsWed 13:00 — 1 commitsWed 14:00 — 4 commitsWed 15:00 — 1 commitsWed 16:00 — 0 commitsWed 17:00 — 0 commitsWed 18:00 — 0 commitsWed 19:00 — 0 commitsWed 20:00 — 0 commitsWed 21:00 — 0 commitsWed 22:00 — 0 commitsWed 23:00 — 0 commitsThu 0:00 — 0 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 0 commitsThu 10:00 — 1 commitsThu 11:00 — 0 commitsThu 12:00 — 3 commitsThu 13:00 — 4 commitsThu 14:00 — 0 commitsThu 15:00 — 0 commitsThu 16:00 — 0 commitsThu 17:00 — 0 commitsThu 18:00 — 0 commitsThu 19:00 — 0 commitsThu 20:00 — 0 commitsThu 21:00 — 1 commitsThu 22:00 — 0 commitsThu 23:00 — 0 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 1 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 3 commitsFri 9:00 — 4 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 0 commitsFri 13:00 — 0 commitsFri 14:00 — 1 commitsFri 15:00 — 2 commitsFri 16:00 — 2 commitsFri 17:00 — 0 commitsFri 18:00 — 0 commitsFri 19:00 — 0 commitsFri 20:00 — 0 commitsFri 21:00 — 0 commitsFri 22:00 — 0 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 5 commitsSat 14:00 — 13 commitsSat 15:00 — 14 commitsSat 16:00 — 5 commitsSat 17:00 — 1 commitsSat 18:00 — 0 commitsSat 19:00 — 8 commitsSat 20:00 — 5 commitsSat 21:00 — 2 commitsSat 22:00 — 1 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits129 (68%)
Community commits62 (32%)

191 commits in total over the last year.

DateListRankStars gained
Feb 9, 2026daily#6+254
Feb 8, 2026daily#3+484