PAGES
← all tools
◆ Secrets Detection & Management

gitleaks

v8.30.0 open-source

Gitleaks is a tool for detecting secrets like passwords, API keys, and tokens in git repos, files, and stdin.

Summary

Gitleaks is an open-source, free command-line tool that scans git repositories, directories, and stdin input for secrets like passwords, API keys, and tokens, using regex-based detection rules and entropy checks to flag things like AWS keys, Slack webhooks, or Sidekiq credentials down to the file, line, and commit that introduced them. It's built for developers and application security teams who want secret detection running in CI pipelines or as a pre-commit check, and it can pull configuration inline from an environment variable, which suits ephemeral CI runners. It sits in the secrets-detection category rather than broader static analysis. The project has run since 2018 with 246 contributors, but its README now states it is feature complete: the maintainer has stopped adding new capabilities and will ship security patches only, directing further development toward a successor project called Betterleaks.

Gitleaks is a tool for detecting secrets like passwords, API keys, and tokens in git repos, files, and stdin.

How gitleaks helps

Which secrets are sitting in my codebase right now, and exactly where?

scans the working directory, git history, or piped input against its regex and entropy rules and reports the matching secret, file, line, and commit for each hit

Did someone commit a credential that was later deleted but never rotated?

walks the full git history rather than just the current tree, so a key removed in a later commit still surfaces tied to the commit that introduced it

Is there a live credential buried inside a build artifact or release archive?

extracts zip and tar files up to a configured depth and scans their contents, reporting nested hits with the inner path spelled out so you can trace which archive-within-archive held it

Would an obfuscated or encoded secret slip past a plain text search of my repo?

recursively decodes hex, base64, and URL/percent-encoded content before matching, catching secrets that are wrapped a few layers deep

Which finding is the real leak versus just a look-alike username-and-password pattern in a config file?

applies proximity-aware composite rules that only fire when auxiliary conditions match within a set number of lines or columns, cutting down false positives from incidental matches

all 54 features, with the evidence for each →

Languages

Not documented

Features

54 capabilities · 4 backed by code, an API document or a real run

Built from gitleaks's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • gitleaks covers 1 of the 2 secrets and credential hygiene capabilities we track.

What gitleaks offers you

  • Command-line interface14
  • CI/CD pipeline integration5
  • User-defined detection rules3
  • CSV data export1
  • JSON data export1
All capabilities 54 capabilities
Secret detection in source files verified Scans files for hardcoded secrets such as API keys, access tokens, and PATs, reporting findings with file location and matched rule. 14 releases · 13 other sources · first seen Jul 2020

Shared capability: Secret scanning

release 14 total

  • Paths and fingerprints are now computed in a platform-agnostic way, making results consistent across Windows and Unix. v8.24.0 · Feb 2025 · source · release history
  • Replaces the standard library regex engine with go-re2, achieving 2–4× scanning speedup — unlocking practical use on large repos and CI pipelines where scan time was previously prohibitive. v8.22.0 · Dec 2024 · source · release history
  • Continues directory scans on permission errors instead of halting. v8.21.3 · Dec 2024 · source · release history
  • Adds GitLab routable token detection. v8.21.3 · Dec 2024 · source · release history
  • Adds curl header rule to catch secrets passed via HTTP headers. v8.21.2 · Oct 2024 · source · release history
  • Adds --max-decode-depth flag to enable automatic detection and decoding of Base64-encoded (standard and base64url) content during scans. v8.20.0 · Oct 2024 · source · release history

docs

  • Detects secrets like passwords, API keys, and tokens in git repositories, directories, files, and stdin using regex-based rules.

we ran it 10 total

  • The tool reported 5 findings across two files: a SendGrid API key and a Stripe access token in .env, and a GitHub PAT, an AWS secret access key, and a Slack bot token in config.py. Aug 2026 · the full run
  • The tool reported 5 findings across two files: two hits in .env (a SendGrid API key and a Stripe access token) and three in config.py (an AWS secret access key, a GitHub PAT, and a Slack bot token). Aug 2026 · the full run
  • The tool caught 1 of 7 planted secrets (the Stripe key), missed aws-access-key-id, postgres-url-password, and sendgrid-api-key as distinct planted findings, and produced 4 false positives — flagging… Aug 2026 · the full run
  • The tool reported 5 findings across two files: a Stripe access token and a SendGrid API key in .env, and a GitHub PAT, an AWS secret access key (matched as generic-api-key), and a Slack bot token… Aug 2026 · the full run
  • The tool reported 5 findings across two files (.env and config.py): a Stripe access token, a SendGrid API key (both matched as generic-api-key or stripe-access-token), a GitHub PAT, a Slack bot… Aug 2026 · the full run
  • The tool reported 5 findings across two files: a Stripe access token and a SendGrid API key in .env, and an AWS secret access key (matched as generic-api-key), a Slack bot token, and a GitHub PAT in… Aug 2026 · the full run

example

  • Scan a repo for secrets hidden inside Base64-encoded strings, allowing up to 3 levels of nested encoding. gitleaks detect --source . --max-decode-depth 3 v8.20.0 · Oct 2024 · source
  • Scan a directory (non-git) for secrets using the new dir subcommand. gitleaks dir --source /path/to/project --report-path gitleaks-report.json v8.19.0 · Sep 2024 · source
Custom detection rule sets shipped Allows defining custom detection rules combining regex, entropy ranges, and file type filters within the configuration file. 22 releases · first seen Apr 2019

Also counts toward: User-defined detection rules

release 22 total

  • Adds composite rules ([[rules.required]]) that let a primary rule report a finding only when one or more auxiliary rules also match, with optional withinLines and withinColumns proximity constraints. v8.28.0 · Jul 2025 · source · release history
  • Switches to standard Go regexp by default; go-re2 is now opt-in via a separate build tag. v8.24.2 · Mar 2025 · source · release history
  • go-re2 is no longer the default regexp engine; builds that relied on go-re2 behavior by default must now explicitly opt in. v8.24.2 · Mar 2025 · source · release history
  • Adds detection rules for new GitLab token formats. v8.21.2 · Oct 2024 · source · release history
  • Adds detection for Azure AD client secrets. v8.21.0 · Oct 2024 · source · release history
  • Changes rule loading behavior by appending ordered rules when extending configurations v8.18.3 · Jun 2024 · source · release history
SARIF report output shipped Emits scan results in SARIF format for integration with tools and pipelines that consume that standard. 17 releases · 3 other sources · first seen Aug 2020

Also counts toward: CI/CD pipeline integration, Command-line interface, JSON data export

release 17 total

  • Improves Sonar token detection regex to match tokens with prefixes. v8.29.0 · Nov 2025 · source · release history
  • Adds detection rule for Amazon Bedrock API keys. v8.29.0 · Nov 2025 · source · release history
  • Adds built-in detection for Anthropic API keys. v8.28.0 · Jul 2025 · source · release history
  • Adds built-in detection for Artifactory reference tokens and API keys. v8.28.0 · Jul 2025 · source · release history
  • Adds built-in detection rule for 1Password secret keys. v8.26.0 · May 2025 · source · release history
  • Adds detection rule for ClickHouse credentials. v8.25.0 · Apr 2025 · source · release history

example

  • Run a scan and suppress all non-JSON output to CI logs. gitleaks detect -q --log-format json v7.2.0 · Dec 2020 · source
  • Emit a SARIF report gitleaks detect --report-format sarif --report-path out.sarif
  • Save scan results to JSON report gitleaks git --report-path gitleaks-report.json
Specific commit auditing shipped Enables scanning a specific git commit or limiting the audit range up to and including a specified commit. 9 releases · 5 other sources · first seen Feb 2019

release 9 total

  • Adds --commits-file CLI argument to scan commits listed in a file v6.1.0 · Aug 2020 · source · release history
  • Adds --commits CLI argument to scan specific commits (comma-separated) v6.1.0 · Aug 2020 · source · release history
  • Adds --commit-since= flag to audit commits more recent than a specific date v4.3.0 · May 2020 · source · release history
  • Adds --commit-until= flag to audit commits older than a specific date v4.3.0 · May 2020 · source · release history
  • Adds commit-to flag to stop scanning at a specified commit v3.1.0 · Jan 2020 · source · release history
  • Adds commit-from flag to start scanning from a specified commit v3.1.0 · Jan 2020 · source · release history

example

  • Scan only two specific commits for secrets without scanning their history. gitleaks --commits=<commit_hash_a>,<commit_hash_b> v6.1.0 · Aug 2020 · source
  • Scan a list of commits defined in an external file for targeted auditing. gitleaks --commits-file=/path/to/commits.txt v6.1.0 · Aug 2020 · source
  • Scan the last 50 commits in a repository for secrets. gitleaks --repo . --commit-from=$(git rev-list -n 50 HEAD | tail -1) v3.1.0 · Jan 2020 · source
  • Audit secrets between two specific commit hashes. gitleaks --repo . --commit-from=a0f72a4e3595ddb382a77804d2674d54b2b0e880 --commit-to=454acebe5ac5961d3acefe96e430d205a19f550c v3.1.0 · Jan 2020 · source
  • Scan specific commit range in repo gitleaks git -v --log-opts="--all commitA..commitB" path_to_repo
External configuration management shipped Supports loading tool configuration from external TOML files via environment variables or CLI arguments. 10 releases · 3 other sources · first seen Jul 2018

Also counts toward: Command-line interface, User-defined detection rules

release 10 total

  • Matches gitleaks.toml config file anywhere in the directory tree, not just the repo root. v8.21.0 · Oct 2024 · source · release history
  • useDefault and path cannot be used together in the [extend] section; previously neither existed. v8.9.0 · Jul 2022 · source · release history
  • Adds the --config (shorthand -c) CLI flag and GITLEAKS_CONFIG environment variable as the highest-precedence mechanisms for specifying a custom configuration file path, preceding .gitleaks.toml. If none are provided, gitleaks falls back to using its built-in default config. v8.2.0 · Dec 2021 · source · release history
  • Adds ability to append repository configurations and user-supplied configurations to the specified or default configuration file. v7.3.0 · Mar 2021 · source · release history
  • Honors the --repo-config flag when scanning staged, uncommitted changes v3.0.3 · Nov 2019 · source · release history
  • --repo-config option works on organizations and users in addition to repos v2.1.0 · Aug 2019 · source · release history

example

  • Use an environment variable to point gitleaks to a config file, taking precedence over local .gitleaks.toml. GITLEAKS_CONFIG=/etc/gitleaks/custom.toml gitleaks detect v8.2.0 · Dec 2021 · source
  • Run gitleaks against a directory using a custom config file instead of the default. gitleaks --config ./my-secrets.toml --source /path/to/repo v8.2.0 · Dec 2021 · source
  • Merge a custom repo config into your scan by appending it to the main config file gitleaks detect --config .gitleaks.toml --repo-config ./custom-repo-config.yaml v7.3.0 · Mar 2021 · source
Granular scan allowlisting shipped Provides configurable rules to skip specific commits, branches, and file patterns during scans without code changes. 7 releases · 1 other source · first seen Jul 2018

release 7 total

  • Introduces the # gitleaksignore comment directive to exclude specific lines from scanning results v8.10.0 · Aug 2022 · source · release history
  • Renames per-rule [[rules.allowlist]] to [rules.allowlist] and file/path to files/paths v6.0.0 · Aug 2020 · source · release history
  • Per-rule allowlist keys file and path renamed to files and paths respectively v6.0.0 · Aug 2020 · source · release history
  • The whitelist config key is renamed to allowlist; existing custom configs must be updated to use allowlist. v5.0.0 · Jul 2020 · source · release history
  • Adds whitelist section with repos field to .gitleaksrules config to exclude specific repositories from detection v4.2.0 · May 2020 · source · release history
  • Enables per-rule whitelists in rule definitions to exclude specific matches v3.0.0 · Nov 2019 · source · release history

example

  • Configuration file to whitelist specific commits and file patterns, ignoring default regexes. [whitelists] files = [ "(.*?)(jpg|gif|doc|pdf|bin)$" ] commits = [ "cb5599aeed261b2c038aa4729e2d53ca050a4988" ] v1.0.0 · Jul 2018 · source
GitHub PR scanning shipped Allows auditing specific GitHub pull requests directly via CLI or CI integration without cloning the repository. 5 releases · 2 other sources · first seen Oct 2018

Also counts toward: CI/CD pipeline integration, Command-line interface

release

  • Supports placeholder regexes in the global allowlist, enabling broad suppression of known-safe patterns across all rules. v8.20.1 · Oct 2024 · source · release history
  • Supports comment strings in .gitleaksignore files, making ignore lists self-documenting. v8.19.3 · Sep 2024 · source · release history
  • Adds poetry.lock, gradle verification-metadata.xml, go.work, and go.work.sum to the global allowlist paths. v8.19.0 · Sep 2024 · source · release history
  • Introduces prettified output format by default v8.12.0 · Sep 2022 · source · release history
  • Adds support for the --github-pr CLI flag and GITHUB_TOKEN environment variable to scan PRs directly via Docker v1.13.0 · Oct 2018 · source · release history

example

  • Document why a token is ignored by adding inline comments to your .gitleaksignore file. # .gitleaksignore # Ignore test fixture token — not a real secret abc123def456:generic-api-key v8.19.3 · Sep 2024 · source
  • Scan a specific GitHub pull request in CI without cloning the repo docker run --rm --name=gitleaks -e GITHUB_TOKEN=${GITHUB_TOKEN} zricethezav/gitleaks:v1.13.0 --github-pr=https://github.com/owner/repo/pull/9000 v1.13.0 · Oct 2018 · source
Entropy-based false positive reduction shipped Reduces noise from entropy signals in secret detection to lower the rate of false positives. 5 releases · 1 other source · first seen Oct 2018

Also counts toward: Command-line interface

release

  • Increases entropy threshold for GCP rules to reduce false positives while sharpening true detections. v8.25.0 · Apr 2025 · source · release history
  • Includes offenderEntropy in the report output v7.5.0 · May 2021 · source · release history
  • Enhances entropy detection engine to improve secret identification accuracy v4.0.0 · Feb 2020 · source · release history
  • Adds --noise-reduction option to reduce noise from entropy signals v1.22.0 · Dec 2018 · source · release history
  • Adds support for the --github-pr CLI flag and GITHUB_TOKEN environment variable to scan PRs directly via Docker v1.13.0 · Oct 2018 · source · release history

example

  • Scan a repository and output results including entropy metrics for high-entropy secrets. gitleaks detect --no-git v7.5.0 · May 2021 · source
Specific branch auditing shipped Enables scanning commits from a specific branch rather than the full repository history. 3 releases · 2 other sources · first seen Mar 2019

Also counts toward: Command-line interface

release

  • Adds detection rule for Airtable Personal Access Tokens. v8.30.0 · Nov 2025 · source · release history
  • Adds detection rules for Looker client ID and client secret credentials. v8.30.0 · Nov 2025 · source · release history
  • --branch= flag supports scanning specific branches v1.25.0 · Mar 2019 · source · release history

example

  • Skip forks when auditing a GitHub organization to focus only on official repos. gitleaks audit --github org:myorg --exclude-forks v3.2.0 · Jan 2020 · source
  • Scan commits from a specific branch rather than the full history gitleaks detect --source . --branch feature/new-auth v1.25.0 · Mar 2019 · source
Encoded content detection shipped Automatically detects and decodes Base64-encoded secrets in source files up to a specified depth. 4 releases · 1 other source · first seen Oct 2024

release

  • Adds curl header rule to catch secrets passed via HTTP headers. v8.21.2 · Oct 2024 · source · release history
  • Adds --max-decode-depth flag to enable automatic detection and decoding of Base64-encoded (standard and base64url) content during scans. v8.20.0 · Oct 2024 · source · release history
  • Tags findings from encoded content with decoded:<encoding> and decode-depth:<depth> for easy filtering. v8.20.0 · Oct 2024 · source · release history
  • Supports recursive decoding so secrets nested inside multiply-encoded strings are also surfaced. v8.20.0 · Oct 2024 · source · release history

example

  • Scan a repo for secrets hidden inside Base64-encoded strings, allowing up to 3 levels of nested encoding. gitleaks detect --source . --max-decode-depth 3 v8.20.0 · Oct 2024 · source
Directory scanning shipped Scans non-git directories for secrets, providing coverage outside of version-controlled repositories. 2 releases · 2 other sources · first seen Feb 2024

Also counts toward: Command-line interface

release

  • Improves directory scan chunking for better performance scanning large files. v8.21.3 · Dec 2024 · source · release history
  • Extends --max-target-megabytes flag to work with --no-git flag for scanning arbitrary directories without git history. v8.18.2 · Feb 2024 · source · release history

example

  • Scan a directory (non-git) for secrets using the new dir subcommand. gitleaks dir --source /path/to/project --report-path gitleaks-report.json v8.19.0 · Sep 2024 · source
  • Scan a directory or file gitleaks dir -v path_to_directory_or_file
Baseline configuration shipped Supports configuring a baseline file to suppress previously known findings during incremental scans. 2 releases · 2 other sources · first seen Sep 2022

release

  • Findings previously suppressed via .gitleaksignore may reappear: gitleaks now records the correct commit SHA where a secret was introduced instead of the merge commit SHA, so existing ignore-list entries keyed to merge commit SHAs will no longer match. v8.21.0 · Oct 2024 · source · release history
  • Adds baseline configuration option to ignore previously known findings. v8.13.0 · Sep 2022 · source · release history

example

  • Configure a baseline file to suppress existing secrets during incremental scans. [baseline] path = "gitleaks-baseline.toml" v8.13.0 · Sep 2022 · source
  • Scan using baseline to filter old findings gitleaks git --baseline-path gitleaks-report.json --report-path findings.json
CSV report output shipped Emits scan results in CSV format for direct export and downstream analysis. 2 releases · 2 other sources · first seen Sep 2018

Also counts toward: CSV data export

release

  • Adds --report-format CLI argument to control export format (json or csv) v3.0.1 · Nov 2019 · source · release history
  • Adds --csv flag to output findings as CSV reports v1.5.0 · Sep 2018 · source · release history

example

  • Export findings to CSV instead of the default JSON format. gitleaks detect --report-format csv v3.0.1 · Nov 2019 · source
  • Scan a GitHub repository and export results directly to CSV for downstream analysis. gitleaks --github-user=gitleakstest --report="report.csv" --csv v1.5.0 · Sep 2018 · source
Multi-layer encoding support shipped Supports recursive decoding of secrets wrapped in multiple encoding layers (e.g., base64 within percent-encoding). 2 releases · 1 other source · first seen May 2025

Also counts toward: Command-line interface

release

  • Documents recursive decoding behavior (0 to 5 levels) for encoded secret detection. v8.30.0 · Nov 2025 · source · release history
  • Adds percent/URL decoding support alongside existing hex and base64 decoders, enabled via --max-decode-depth. v8.26.0 · May 2025 · source · release history

example

  • Scan a directory for secrets that may be URL-encoded (e.g. base64 wrapped in percent-encoding) by enabling multi-layer decoding. ./gitleaks dir <path> --max-decode-depth=2 v8.26.0 · May 2025 · source
Allowlist optimizations verified Provides an experimental mode that pre-processes allowlist rules to improve scan throughput at the cost of additional startup time. 2 releases · 1 other source · first seen Jul 2018

release

  • Automatically sets default go-routines to match available CPU cores (derived from GOMAXPROCS/2), optimizing scan performance without manual configuration v1.6.0 · Oct 2018 · source · release history
  • Adds --max-go flag to control the maximum number of concurrent goroutines per repository v1.0.0 · Jul 2018 · source · release history

command line

  • --experimental-optimizations — enables experimental allowlist optimizations, increasing performance at the cost of startup time v8.27.2 · Jun 2025 · command-line history
Standard input detection shipped Allows detecting secrets directly from standard input via a pipe flag, enabling integration with other command-line tools. 3 other sources · first seen Oct 2022

Also counts toward: CI/CD pipeline integration, Command-line interface

example

  • Pipe content into gitleaks for secret detection using the new stdin subcommand, e.g. in a CI pre-receive hook. cat secrets.env | gitleaks stdin v8.19.0 · Sep 2024 · source
  • Ensure symlinks are included when scanning local directories outside of git repos. gitleaks --source . --no-git --follow-symlinks v8.15.0 · Oct 2022 · source
  • Detect secrets from stdin stream cat some_file | gitleaks -v stdin
Granular rule filtering shipped Allows selecting, excluding, or ignoring specific detection rules during a scan to control which secrets are detected. 2 releases · 1 other source · first seen Nov 2023

release

  • Enables selection of a single rule via the new rule filtering mechanism (#1183) v8.18.1 · Nov 2023 · source · release history
  • Adds --ignore-gitleaks-allow CLI flag to bypass allowlist entries during scans v8.18.1 · Nov 2023 · source · release history

example

  • Bypass allowlist rules to ensure no secrets are hidden by project-specific allowances. gitleaks detect --path . --ignore-gitleaks-allow v8.18.1 · Nov 2023 · source
Authentication configuration shipped Supports authenticating to private repositories via Gitlab tokens or username/password credentials provided on the command line. 2 releases · 1 other source · first seen Aug 2019

Also counts toward: Command-line interface

release

  • Adds --username and --password CLI arguments to enable username/password authentication for git clone operations v3.0.0 · Nov 2019 · source · release history
  • Added Gitlab Token support for authentication v2.1.0 · Aug 2019 · source · release history

example

  • Authenticate to a private repository with credentials supplied directly on the command line gitleaks --username <user> --password <pass> --repo <repo_url> v3.0.0 · Nov 2019 · source
Scan timeout control verified Allows setting a maximum execution time in seconds for a scan, after which the command is stopped. 2 other sources · first seen Jan 2020

Also counts toward: Command-line interface

command line

  • --timeout — set a timeout for gitleaks commands in seconds (default "0", no timeout is set) v8.29.0 · Nov 2025 · command-line history

example

  • Limit an audit operation to 5 minutes to prevent hanging on slow repositories. gitleaks audit --timeout 300 v3.2.0 · Jan 2020 · source
Composite detection rules shipped Enables defining rules that require auxiliary patterns to match in proximity to the primary pattern. 2 releases · first seen Jul 2025

Also counts toward: User-defined detection rules

release

  • Adds composite rules ([[rules.required]]) that let a primary rule report a finding only when one or more auxiliary rules also match, with optional withinLines and withinColumns proximity constraints. v8.28.0 · Jul 2025 · source · release history
  • Supports fragment-level, line-bounded, column-bounded, and combined line+column proximity matching for composite rules. v8.28.0 · Jul 2025 · source · release history
URL-encoded content detection shipped Detects secrets encoded using URL/percent encoding layers alongside existing hex and base64 decoders. 1 release · 1 other source · first seen May 2025

Shared capability: Secret scanning

Also counts toward: Command-line interface

release

  • Adds percent/URL decoding support alongside existing hex and base64 decoders, enabled via --max-decode-depth. v8.26.0 · May 2025 · source · release history

example

  • Scan a directory for secrets that may be URL-encoded (e.g. base64 wrapped in percent-encoding) by enabling multi-layer decoding. ./gitleaks dir <path> --max-decode-depth=2 v8.26.0 · May 2025 · source
Global allowlisting shipped Allows defining multiple global allowlists to suppress known-safe strings and paths across all rules simultaneously. 1 release · 1 other source · first seen Apr 2025

release

  • Supports defining multiple global allowlists in config, enabling layered suppression strategies across rule sets. v8.25.0 · Apr 2025 · source · release history

example

  • Suppress known-safe strings and paths across all rules using multiple independent global allowlists — useful when different teams own different suppression policies. # .gitleaks.toml [[allowlists]] description = "team-a allowlist" regexes = ["SAFE_TOKEN_A"] [[allowlists]] description = "team-b allowlist" paths = ["tests/fixtures/.*"] v8.25.0 · Apr 2025 · source
File size limit control shipped Allows setting a maximum file or blob size for scanning to improve performance on large repositories. 1 release · 1 other source · first seen Oct 2022

release

  • Add --max-target-megabytes flag to set maximum file/blob size for scanning v8.14.0 · Oct 2022 · source · release history

example

  • Scan a large repository but skip scanning files larger than 50MB to improve performance. gitleaks detect --source . --max-target-megabytes 50 v8.14.0 · Oct 2022 · source
Silent JSON-only logging shipped Provides a mode to suppress all output except structured JSON findings, suitable for automated consumption. 1 release · 1 other source · first seen Dec 2020

release

example

  • Run gitleaks without the banner text for easier log parsing or CI output clarity. gitleaks detect --source . --quiet v8.13.0 · Sep 2022 · source
Git history scanning shipped Scans a repository's commit history to find secrets introduced in past commits. 1 release · 1 other source · first seen Jul 2020

release

  • Changes default scan scope to git additions only, excluding deletions from the default run v5.0.0 · Jul 2020 · source · release history

example

  • Scan a repo's history for secrets gitleaks detect --source .
Debug and profiling capabilities shipped Provides debugging output and rule performance profiling by exposing regex execution times during scanning. 1 release · 1 other source · first seen Nov 2019

release

  • Adds --debug flag to output individual regex performance times during scanning v3.0.0 · Nov 2019 · source · release history

example

  • Profile rule performance by inspecting which regular expressions are slowest during a scan gitleaks --debug ./my-repo v3.0.0 · Nov 2019 · source
Git reference expansion shipped Extends scanning scope beyond the default HEAD to include all git references (branches, tags, etc.) within a repository. 1 release · 1 other source · first seen Jul 2018

release

  • Adds --all-refs flag to audit all git references instead of only origin/HEAD v1.0.0 · Jul 2018 · source · release history

example

  • Audit all git references in a repository using external config and memory processing. gitleaks --repo=https://github.com/example/repo --all-refs --in-memory --config=./gitleaks.toml v1.0.0 · Jul 2018 · source
In-memory git processing shipped Processes Git repositories in memory rather than shelling out to system git commands, improving performance and reducing disk I/O. 1 release · 1 other source · first seen Jul 2018

Also counts toward: Command-line interface

release

  • Adds --in-memory flag to process git repositories in memory instead of shelling out to git commands for performance gains v1.0.0 · Jul 2018 · source · release history

example

  • Audit all git references in a repository using external config and memory processing. gitleaks --repo=https://github.com/example/repo --all-refs --in-memory --config=./gitleaks.toml v1.0.0 · Jul 2018 · source
Amazon Bedrock API key detection shipped Adds built-in detection for Amazon Bedrock API keys. 1 release · first seen Nov 2025

release

Archive scan debug logging shipped Provides trace-level logging to indicate when archive files are skipped because scanning is not enabled. 1 release · first seen Nov 2025

release

  • Adds trace-level logging when archive files are skipped because archive scanning is not enabled. v8.29.0 · Nov 2025 · source · release history
Minimum version enforcement shipped Enforces a minimum tool version requirement within configuration files to ensure compatibility. 1 release · first seen Nov 2025

release

  • Adds min-version enforcement in config files to require a minimum Gitleaks version. v8.29.0 · Nov 2025 · source · release history
Allowlist stopword optimization shipped Applies optimizations for allowlist stopwords to improve scanning performance. 1 release · first seen Jul 2025

release

  • Promotes allowlist stopword optimizations for faster scanning. v8.28.0 · Jul 2025 · source · release history
Deferred newline calculation shipped Optimizes scan time by deferring newline calculations in fragments until a rule match occurs. 1 release · first seen Jul 2025

release

  • Defers newline calculation in fragments until a rule match occurs, significantly reducing scan time on large repositories. v8.28.0 · Jul 2025 · source · release history
Archive path reporting shipped Reports findings within archives using nested paths (e.g., nested.tar.gz!inner.tar!files/.env.prod) for precise location tracking. 1 release · first seen Jun 2025

release

  • Reports archive-contained findings with !-separated inner paths (e.g., nested.tar.gz!inner.tar!files/.env.prod) for precise location tracking. v8.27.0 · Jun 2025 · source · release history
Archive scanning configuration shipped Allows configuring the depth of nested archive traversal during scans via a specific CLI flag. 1 release · first seen Jun 2025

release

  • Adds --max-archive-depth flag to enable automatic extraction and scanning of archive files (zip, tar, etc.) during dir and git scan types. v8.27.0 · Jun 2025 · source · release history
Archive scanning recursion shipped Supports recursive scanning of secrets nested inside archives-within-archives up to a configured depth. 1 release · first seen Jun 2025

release

  • Supports recursive archive scanning so secrets nested inside archives-within-archives are discovered up to the configured depth limit. v8.27.0 · Jun 2025 · source · release history
Archive traversal verified Optionally scans inside nested archive files up to a configurable depth during a scan. 1 other source · first seen Jun 2025

command line

  • --max-archive-depth — allow scanning into nested archives up to this depth (default "0", no archive traversal is done) v8.27.0 · Jun 2025 · command-line history
Unicode decoding support shipped Adds support for detecting and handling Unicode encoded content in files. 1 release · first seen Jun 2025

release

  • Adds Unicode decoding support for broader file content handling. v8.27.0 · Jun 2025 · source · release history
Slow file identification shipped Surfaces files that are causing performance bottlenecks during scanning to aid in optimization. 1 release · first seen May 2025

release

  • New slow-file identification surfaces files that are causing performance bottlenecks during scanning. v8.26.0 · May 2025 · source · release history
Automated config validation shipped Automatically validates and sorts rules when generating or loading rule configurations. 1 release · first seen Apr 2025

release

  • Validates and sorts rules automatically when generating rule configs. v8.25.0 · Apr 2025 · source · release history
Platform-agnostic path and fingerprint computation shipped Ensures consistent results across different operating systems by computing paths and fingerprints in a platform-independent manner. 1 release · first seen Feb 2025

release

  • Paths and fingerprints are now computed in a platform-agnostic way, making results consistent across Windows and Unix. v8.24.0 · Feb 2025 · source · release history
Streaming detection shipped Enables secret detection on streamed input without buffering the entire source in memory. 1 release · first seen Feb 2025

release

  • Adds streaming support via DetectReader, enabling detection on streamed input without buffering the entire source. v8.24.0 · Feb 2025 · source · release history
Granular rule allowlisting shipped Allows defining multiple named allowlists per rule to suppress different categories of false positives independently. 1 other source · first seen Oct 2024

example

  • Suppress different categories of false positives independently within a single rule by defining multiple named allowlists. # In your gitleaks.toml [[rules]] id = "my-rule" description = "Example rule with multiple allowlists" regex = '''some-secret-pattern''' [[rules.allowlists]] description = "Allow test files" paths =… v8.21.0 · Oct 2024 · source
Extended report formats shipped Supports emitting scan results in JUnit XML format and adding metadata tags to existing output formats. 1 release · first seen Jun 2023

Also counts toward: Command-line interface

release

  • Adds JUnit XML output format for scan results via the --report-format=junit flag v8.17.0 · Jun 2023 · source · release history
Git patch scanning shipped Enables scanning for secrets in raw git patch output without requiring a temporary repository clone. 1 other source · first seen Oct 2022

example

  • Scan secret exposure in raw git patch output without creating temporary files. git log -p | gitleaks detect --pipe v8.15.0 · Oct 2022 · source
Symlink traversal support shipped Enables the cyber tool to follow symbolic links when scanning directories and files outside of git repositories. 1 release · first seen Oct 2022

Also counts toward: Command-line interface

release

  • Adds --follow-symlinks flag to traverse symbolic links during scanning. v8.15.0 · Oct 2022 · source · release history
Fingerprint output shipped Emits a unique fingerprint field for each detection finding to aid in deduplication and tracking. 1 release · first seen Sep 2022

release

Leak count exit code customization shipped Allows customizing the exit code returned when leaks are detected to support flexible CI pipeline reactions. 1 other source · first seen Dec 2020

Also counts toward: CI/CD pipeline integration

example

  • Customize the exit code to trigger different CI pipeline steps based on leak count. gitleaks --repo=https://github.com/example/repo --leaks-exit-code=2 v7.1.0 · Dec 2020 · source
Commit date range auditing shipped Enables filtering audits to only include commits within specific date ranges using commit-since and commit-until flags. 1 other source · first seen May 2020

example

  • Audit only the last month of commits for secrets. gitleaks detect --commit-since='2023-10-01' --commit-until='2023-11-01' v4.3.0 · May 2020 · source
CI/CD integration via GitHub Action shipped Offers a pre-packaged GitHub Action to integrate the cyber tool into continuous integration pipelines. 1 release · first seen Feb 2020

Also counts toward: CI/CD pipeline integration

release

Audit depth limit control shipped Allows setting a maximum audit depth limit to constrain the scope of repository traversal. 1 release · first seen Jan 2020

release

Repository exclusion allowlisting shipped Provides an allowlist configuration section to exclude specific repositories from detection. 1 release · first seen Jan 2020

release

  • Adds exclude-forks option to skip forked repositories during GitHub/GitLab audits. v3.2.0 · Jan 2020 · source · release history
Disk cleanup for large audits shipped Automatically removes cloned repositories from disk immediately after auditing to prevent space exhaustion during large-scale organization scans. 1 release · first seen Oct 2018

release

  • Deletes individual repositories from disk immediately after they are audited when using the --disk flag, preventing disk space exhaustion during large org audits v1.6.0 · Oct 2018 · source · release history
Pre-commit staged-changes scanning shipped Scans only the files staged for commit, enabling secret detection before changes are recorded in history. 1 other source

example

  • Pre-commit scan of staged changes gitleaks protect --staged

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for gitleaks, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail gitleaks puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

73 entries

  1. November 20252
  2. July 20251
  3. June 20252
  4. May 20251
  5. April 20252
  6. March 20251
  7. February 20251
  8. January 20254
  9. December 20243
  10. October 20245
  11. September 20242
  12. June 20242
  13. February 20241
  14. November 20231
  15. August 20231
  16. June 20231
  17. April 20231
  18. March 20231
  19. February 20231
  20. October 20222
  21. September 20222
  22. August 20221
  23. July 20221
  24. May 20221
  25. December 20212
  26. November 20211
  27. September 20211
  28. May 20211
  29. March 20211
  30. December 20204
  31. August 20202
  32. July 20201
  33. May 20202
  34. March 20201
  35. February 20202
  36. January 20202
  37. November 20193
  38. August 20191
  39. April 20191
  40. March 20191
  41. February 20191
  42. January 20191
  43. December 20181
  44. October 20182
  45. September 20181
  46. July 20181
    Show

    73 entries

    Project health

    Issue, contributor and maintainer activity in gitleaks/gitleaks, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 9 −42 vs prior 12 months
    2. Maintainers 3 +3 joined · −3 left, last 12 months
    3. Bus factor 2 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close 49 days first maintainer reply 3.2 days
    6. Open backlog 267 of 981 issues ever filed
    1. Issues opened / month 1 · 0 communitymaintainers
    2. Open backlog 267
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 29,396
    Issue themes, last 12 months
    • bugs 37%
    • features 19%
    • other 44%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →