Ggshield
Detect and validate 500+ types of hardcoded secrets with advanced checks. Use it as a pre-commit hook, GitHub Action, or CLI for proactive secret detection and security.
Install / Use
/learn @GitGuardian/GgshieldREADME
<a href="https://gitguardian.com/"><img src="https://cdn.jsdelivr.net/gh/gitguardian/ggshield/doc/logo.svg"></a>
ggshield: protect your code with GitGuardian
ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 500+ types of secrets.
ggshield uses our public API through py-gitguardian to scan and detect potential vulnerabilities in files and other text content.
Only metadata such as call time, request size and scan mode is stored from scans using ggshield, therefore secrets will not be displayed on your dashboard and your files and secrets won't be stored.
Table of Contents
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->- Installation
- Initial setup
- Getting started
- Integrations
- Learn more
- Output
- Related open source projects
- License
Installation
<!-- Any change made in this section must be replicated in the "Step 1: Install ggshield" section of the "Getting started" page of ggshield public documentation. -->macOS
Homebrew
You can install ggshield using Homebrew:
$ brew install ggshield
Upgrading is handled by Homebrew.
Standalone .pkg package
Alternatively, you can download and install a standalone .pkg package from ggshield release page.
This package does not require installing Python, but you have to manually download new versions.
Linux
Deb and RPM packages
Deb and RPM packages are available on Cloudsmith.
Setup instructions:
Upgrading is handled by the package manager.
Windows
Chocolatey
ggshield is available via the Chocolatey package manager:
$ choco install ggshield
Standalone .zip archive
We provide a standalone .zip archive on ggshield release page.
Unpack the archive on your disk, then add the directory containing the ggshield.exe file to %PATH%.
This archive does not require installing Python, but you have to manually download new versions.
All operating systems
ggshield can be installed on all supported operating systems via its PyPI package.
It requires a supported version of Python (not EOL) (except for standalone packages) and git.
If you don't use our packaged versions of ggshield, please be aware that we follow the Python release cycle and do not support versions that have reached EOL.
Using pipx
The recommended way to install ggshield from PyPI is to use pipx, which will install it in an isolated environment:
$ pipx install ggshield
To upgrade your installation, run:
$ pipx upgrade ggshield
Using pip
You can also install ggshield from PyPI using pip, but this is not recommended because the installation is not isolated, so other applications or packages installed this way may affect your ggshield installation. This method will also not work if your Python installation is declared as externally managed (for example when using the system Python on operating systems like Debian 12):
$ pip install --user ggshield
To upgrade your installation, run:
$ pip install --user --upgrade ggshield
Initial setup
Using ggshield auth login
To use ggshield you need to authenticate against GitGuardian servers. To do so, use the ggshield auth login command. This command automates the provisioning of a personal access token and its configuration on the local workstation.
You can learn more about it from ggshield auth login documentation.
Manual setup
You can also create your personal access token manually and store it in the GITGUARDIAN_API_KEY environment variable to complete the setup.
Getting started
Secrets
You can now use ggshield to search for secrets:
- in files:
ggshield secret scan path -r . - in repositories:
ggshield secret scan repo . - in Docker images (
dockercommand must be available):ggshield secret scan docker ubuntu:22.04 - in Pypi packages (
pipcommand must be available):ggshield secret scan pypi flask - and more, have a look at
ggshield secret scan --helpoutput for details.
Integrations
You can integrate ggshield in your CI/CD workflow.
To catch errors earlier, use ggshield as a pre-commit, pre-push or pre-receive Git hook.
Learn more
For more information, have a look at the documentation
Output
If no secrets have been found, the exit code will be 0:
$ ggshield secret scan pre-commit
If a secret is found in your staged code or in your CI, you will have an alert giving you the filename where the secret has been found and a patch giving you the position of the secret in the file:
$ ggshield secret scan pre-commit
2 incidents have been found in file production.rb
11 | config.paperclip_defaults = {
12 | :s3_credentials => {
13 | :bucket => "XXX",
14 | :access_key_id => "XXXXXXXXXXXXXXXXXXXX",
|_____AWS Keys_____|
15 | :secret_access_key => "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|_______________AWS Keys_______________|
16 | }
17 | }
Lines that are too long are truncated to match the size of the terminal, unless the verbose mode is used (-v or --verbose).
Related open source projects
License
ggshield is MIT licensed.
Related Skills
healthcheck
335.2kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
335.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
prose
335.2kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
frontend-design
82.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
