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.
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
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.
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
Show
No capabilities match.
+All capabilities54 capabilities▸
+Secret detection in source filesverifiedScans 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 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 setsshippedAllows 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 outputshippedEmits 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 auditingshippedEnables 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 managementshippedSupports 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 allowlistingshippedProvides 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 scanningshippedAllows 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 reductionshippedReduces 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 auditingshippedEnables 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 detectionshippedAutomatically 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 scanningshippedScans 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 configurationshippedSupports 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 outputshippedEmits 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 supportshippedSupports 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 optimizationsverifiedProvides 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 detectionshippedAllows 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
+Granular rule filteringshippedAllows 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 configurationshippedSupports 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 controlverifiedAllows 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 rulesshippedEnables 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 detectionshippedDetects 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 allowlistingshippedAllows 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 controlshippedAllows 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 loggingshippedProvides a mode to suppress all output except structured JSON findings, suitable for automated consumption.1 release · 1 other source · first seen Dec 2020▸
release
Adds -q/--quiet flag for JSON-only logging
v7.2.0 · Dec 2020
· source
· release history
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 scanningshippedScans 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 capabilitiesshippedProvides 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 expansionshippedExtends 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 processingshippedProcesses 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 detectionshippedAdds built-in detection for Amazon Bedrock API keys.1 release · first seen Nov 2025▸
release
Adds detection rule for Amazon Bedrock API keys.
v8.29.0 · Nov 2025
· source
· release history
+Archive scan debug loggingshippedProvides 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 enforcementshippedEnforces 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 optimizationshippedApplies 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 calculationshippedOptimizes 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 reportingshippedReports 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 configurationshippedAllows 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 recursionshippedSupports 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 traversalverifiedOptionally 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 supportshippedAdds 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 identificationshippedSurfaces 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 validationshippedAutomatically 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 computationshippedEnsures 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 detectionshippedEnables 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 allowlistingshippedAllows 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 formatsshippedSupports 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 scanningshippedEnables 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 supportshippedEnables 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 outputshippedEmits a unique fingerprint field for each detection finding to aid in deduplication and tracking.1 release · first seen Sep 2022▸
release
Adds fingerprint field to detection output
v8.12.0 · Sep 2022
· source
· release history
+Leak count exit code customizationshippedAllows 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 auditingshippedEnables 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 ActionshippedOffers 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
Adds gitleaks GitHub Action for CI/CD integration
v4.0.0 · Feb 2020
· source
· release history
+Audit depth limit controlshippedAllows setting a maximum audit depth limit to constrain the scope of repository traversal.1 release · first seen Jan 2020▸
release
Adds depth option to set audit depth limits.
v3.2.0 · Jan 2020
· source
· release history
+Repository exclusion allowlistingshippedProvides 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 auditsshippedAutomatically 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 scanningshippedScans 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.
Command line
View
Source
No command matches.
load a captured run
composed command
No matchesTry a different search, or clear a filter to see more.
option surface across analysed releases
options at that releaseadded, per releaseremoved, per release
option
found in
since
description
No matchesTry a different search, or clear a filter to see more.
option changes per release — drag across the rail to set a range
→
Values are placeholders taken from each option’s declared default.
Nothing is executed here — the output shown is a recording of a run
that already happened.
Score card
Shipping velocityreleases a month, last 12 months
Documentation qualityrelease-notes rubric, 0–100
Breaking-change disciplinehow rarely a release breaks users, and notice given
Maintenance riskquiet time against its own cadence, maintainers
Innovation & surfacenew capabilities, API and MCP surface
Community health
Contributor trenddistinct committers, this year against last
Maintainer concentrationbus factor now against a year ago
Issue backlog trendissues closed per issue opened, 12 months
Responsivenessmedian 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.
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.
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.
Contributors9−42 vs prior 12 months
Maintainers3+3 joined · −3 left, last 12 months
Bus factor2committers behind half the commits
Community-filed100%of issues opened, last 12 months
Median time to close49 daysfirst maintainer reply 3.2 days
Open backlog267of 981 issues ever filed
Issues opened / month1 · 0communitymaintainers
Open backlog267
Contributors / month0
Commits / month0
Stars29,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.