awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Git Pre-Commit Hook Managers

Ranking updated Jun 30, 2026

For a git hooks manager for running checks before commits, the first results are j178/prek (Prek is a fast, Rust-based Git hook manager that supports TOML/YAML configuration, a built-in hook repository, and parallel execution, directly matching the need for a self-contained tool to manage and run custom pre-commit checks as Git hooks), lint-staged/lint-staged (Lint-staged is a pre-commit hook runner that executes linters and formatters exclusively on staged files using a configuration file, fitting the need for custom check management, though it lacks a pre-defined hooks repository and is narrower than a full hooks framework) and pre-commit/pre-commit (pre-commit is the definitive framework for managing Git hooks with a configuration file, support for many languages and linters, automatic installer, a large repository of shared hooks, and incremental runs on staged files — exactly the tool this search is after). evilmartians/lefthook and typicode/husky round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Automated tools for managing and executing custom scripts to validate code before committing to Git.

Git Pre-Commit Hook Managers

Find the best repos with AI.We'll search the best matching repositories with AI.
  • j178/prekj178 avatar

    j178/prek

    6,297View on GitHub↗

    Prek is a Git hook manager written in Rust that runs configured hooks as a single binary without requiring Python or other external runtimes. It executes hooks faster than standard tools through parallel processing and bundled Rust implementations, and includes a built-in hook repository that enables fully offline operation without network access or environment setup. The tool supports both TOML and YAML configuration formats with identical semantics, and can run hooks from existing pre-commit configuration files without modification. Prek distinguishes itself through workspace-aware monorepo

    Prek is a fast, Rust-based Git hook manager that supports TOML/YAML configuration, a built-in hook repository, and parallel execution, directly matching the need for a self-contained tool to manage and run custom pre-commit checks as Git hooks.

    RustGit Hook ConfigurationsGit Hook ManagersPre-commit Hooks
    View on GitHub↗6,297
  • lint-staged/lint-stagedlint-staged avatar

    lint-staged/lint-staged

    14,460View on GitHub↗

    Lint-staged is a command-line utility designed to automate code quality checks and formatting tasks within a Git repository. It functions as a pre-commit hook runner that executes defined operations exclusively on files currently staged for commit, ensuring that only code meeting project standards is permanently saved. The tool distinguishes itself by providing granular control over the development workflow through file filtering and task orchestration. It uses glob-pattern matching to isolate specific file types and executes sequences of shell commands in a strict order. To maintain reposito

    Lint-staged is a pre-commit hook runner that executes linters and formatters exclusively on staged files using a configuration file, fitting the need for custom check management, though it lacks a pre-defined hooks repository and is narrower than a full hooks framework.

    JavaScriptGit Hook ManagersPre-commit Hooks
    View on GitHub↗14,460
  • pre-commit/pre-commitpre-commit avatar

    pre-commit/pre-commit

    15,057View on GitHub↗

    Pre-commit is a framework for managing and executing automated tasks during the version control commit process. It functions as a configuration-driven utility that enforces project standards by running linters, formatters, and security scanners on staged files before they are committed to a repository. The system uses a centralized manifest to orchestrate these tasks, ensuring consistent developer tooling across teams. It distinguishes itself by provisioning isolated environments for each tool, which prevents dependency conflicts and ensures that all required versions are present. The framewo

    pre-commit is the definitive framework for managing Git hooks with a configuration file, support for many languages and linters, automatic installer, a large repository of shared hooks, and incremental runs on staged files — exactly the tool this search is after.

    PythonGit Hook Managers
    View on GitHub↗15,057
  • evilmartians/lefthookevilmartians avatar

    evilmartians/lefthook

    7,598View on GitHub↗

    Lefthook is a Git hook manager and workflow automation tool designed to execute user-defined scripts during version control events. It automates the execution of linters, tests, and formatters to validate changes and maintain code quality before commits or pushes. The project distinguishes itself through a parallel execution model that runs multiple shell commands concurrently to reduce latency. It supports complex configuration management, including the ability to merge global, remote, and local settings and synchronize configurations from external repositories to standardize development env

    Lefthook is a dedicated Git hook manager that runs linters, tests, and formatters as pre-commit checks with parallel execution and flexible configuration, which directly matches the need for a tool to manage custom pre-commit hooks.

    GoGit Hook ManagersPre-commit Hooks
    View on GitHub↗7,598
  • typicode/huskytypicode avatar

    typicode/husky

    35,156View on GitHub↗

    Husky is a Git hook manager that automates the installation and execution of version control lifecycle events within a project repository. It functions by redirecting standard version control event triggers to a centralized configuration directory, allowing teams to standardize development workflows and enforce code quality without requiring manual setup on every machine. The tool enables custom workflow automation by triggering shell scripts during operations such as committing or pushing code. It distinguishes itself by integrating directly into package manager lifecycles, ensuring that aut

    Husky is a Git hooks manager that lets you define and run custom shell scripts during commits and other Git lifecycle events, making it a direct fit for managing pre-commit checks—though its lack of built-in multi-language linter support and a pre-defined hooks repository means you'd need to bring your own tools.

    JavaScriptGit Hook Initialization ToolsGit Hook Managers
    View on GitHub↗35,156
  • arkweid/lefthookArkweid avatar

    Arkweid/lefthook

    8,434View on GitHub↗

    Lefthook is a Git hook manager and workflow automator that uses a configuration-driven approach to manage scripts triggered by version control events. It functions as a parallel task runner, executing multiple scripts simultaneously to reduce the time required for pre-commit or pre-push checks. The project provides a containerized hook runner to ensure consistent dependencies and toolsets across different developer machines. It also supports monorepo orchestration by executing scripts within specific subdirectories and managing complex project structures. The system includes capabilities for

    Lefthook is a Git hook manager with configuration-file-driven setup and parallel task execution, making it a genuine pre-commit hook framework for your repository, though it does not include a pre-defined hooks registry.

    GoGit Hook Managers
    View on GitHub↗8,434
  • sds/overcommitsds avatar

    sds/overcommit

    4,008View on GitHub↗

    Overcommit is a Git hook manager and pre-commit validation framework designed to automate the execution of scripts and checks during various Git events. It serves as a workflow automation tool that ensures code quality and project standards are met before changes are committed or pushed to a remote repository. The system distinguishes itself through a comprehensive YAML-based configuration that allows for detailed hook behavior control, including file execution filtering, conditional skipping, and the management of hook dependencies. It provides specialized roles such as a commit message vali

    Overcommit is a dedicated Git hook manager that supports configuration files, automatic hook installation, and a set of built-in hooks, making it a solid choice for managing custom pre-commit checks, though it is most full-featured in a Ruby context.

    RubyGit Hook ConfigurationsMulti-Language LintersGit Hook Managers
    View on GitHub↗4,008
  • toplenboren/simple-git-hookstoplenboren avatar

    toplenboren/simple-git-hooks

    1,669View on GitHub↗

    Simple-git-hooks is a utility for managing version control hooks through project configuration files. It automates the installation and execution of custom tasks, ensuring that specific commands run consistently across local development environments whenever version control operations occur. The tool functions by injecting managed scripts into the repository directory structure, replacing existing hooks to maintain uniform development standards. It supports environment-specific configurations, allowing developers to define custom initialization scripts to ensure necessary binaries and system

    simple-git-hooks is a lightweight Git hooks manager that fits your need for automating pre-commit checks, but its focus on small projects means it may lack built-in multi-language linter support or a large library of pre-defined hooks.

    JavaScriptGit Hook Managers
    View on GitHub↗1,669
  • brainmaestro/composer-git-hooksBrainMaestro avatar

    BrainMaestro/composer-git-hooks

    1,086View on GitHub↗

    This project is a dependency manager plugin that automates the management and synchronization of version control hooks. By integrating directly into project dependency configuration files, it ensures that automated tasks and validation rules are consistently applied across local development environments. The tool distinguishes itself by enabling configuration-driven task orchestration, where version control triggers are mapped to custom command sequences. It supports global configuration inheritance, allowing developers to enforce uniform workflows and validation standards across multiple rep

    This is a Composer plugin that manages Git hooks within PHP projects, fitting the core category of a Git hooks manager, but it is limited to the PHP/Composer ecosystem and does not offer multi-language linter support or a pre-defined hooks repository.

    PHPGit Hook ConfigurationsGit Hook Managers
    View on GitHub↗1,086
  • super-linter/super-lintersuper-linter avatar

    super-linter/super-linter

    10,492View on GitHub↗

    Combination of multiple linters to run as a GitHub Action or standalone

    Super-linter runs multiple linters either as a GitHub Action or standalone, but it is not a Git hooks manager — it does not handle hook installation, pre-commit configuration files, or hook lifecycle management itself.

    ShellMulti-Language Linter SuitesMulti-Language Linters
    View on GitHub↗10,492
  • antfu/eslint-configantfu avatar

    antfu/eslint-config

    6,210View on GitHub↗

    Anthony's ESLint config preset

    This is a shareable ESLint configuration preset, not a framework for managing and running pre-commit hooks; it can be used within a hook-based workflow but does not handle hook configuration, installation, or multi-language task orchestration.

    JavaScriptPre-commit HooksPre-Commit Quality Hooks
    View on GitHub↗6,210
  • dorny/paths-filterdorny avatar

    dorny/paths-filter

    2,950View on GitHub↗

    paths-filter is a GitHub Actions path filter and git change detector designed to trigger conditional workflow steps by identifying modified files. It serves as a path-based change metadata generator that determines if specific files or directories have changed to drive automation logic in CI pipelines. The tool identifies modified files between commits or branches using configurable inclusion and exclusion filters. It exports boolean flags, modified filename lists, and file counts to allow downstream automation steps to execute only when specific criteria are met. The project provides capabi

    This GitHub Action detects file changes to conditionally trigger CI steps, but it does not install local Git hooks or manage custom pre-commit checks (linting, testing) as you're looking for — it's a workflow-conditional utility, not a hook framework.

    TypeScriptChanged File Identification
    View on GitHub↗2,950
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
j178/prek6.3KRustmitFeb 19, 2026
lint-staged/lint-staged14.5KJavaScriptmitFeb 7, 2026
pre-commit/pre-commit
15.1K
Python
mit
Dec 22, 2025
evilmartians/lefthook7.6KGomitFeb 16, 2026
typicode/husky35.2KJavaScriptMITMar 19, 2026
arkweid/lefthook8.4KGoMITJun 24, 2026
sds/overcommit4KRubyMITJun 10, 2026
toplenboren/simple-git-hooks1.7KJavaScriptMITMay 27, 2026
brainmaestro/composer-git-hooks1.1KPHPMITJun 22, 2024
super-linter/super-linter10.5KShellMITJun 23, 2026

Related searches

  • a terminal UI for staging and committing with git
  • a conventional commit helper and changelog generator
  • a project for learning Git by reimplementing it
  • a tool for automated code linting and formatting
  • a tool for managing dotfiles and bootstrapping
  • a pluggable linter for catching bugs in JavaScript
  • a tool for cleaning large files out of git history
  • Git and version control tooling