Observed since 21 Oct, 09:04 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Sentinel — Advanced secret scanner (v1) — Code never leaks.
███████╗ ███████╗ ███╗ ██╗ ████████╗ ██╗ ███╗ ██╗ ███████╗ ██╗ ██╔════╝ ██╔════╝ ████╗ ██║ ╚══██╔══╝ ██║ ████╗ ██║ ██╔════╝ ██║ ███████╗ █████╗ ██╔██╗ ██║ ██║ ██║ ██╔██╗ ██║ █████╗ ██║ ╚════██║ ██╔══╝ ██║╚██╗██║ ██║ ██║ ██║╚██╗██║ ██╔══╝ ██║ ███████║ ███████╗ ██║ ╚████║ ██║ ██║ ██║ ╚████║ ███████╗ ███████╗ ╚══════╝ ╚══════╝ ╚═╝ ╚═══╝ ██║ ╚═╝ ╚═╝ ╚═══╝ ╚══════╝ ╚══════╝
Prevent Code Leaks in Your Projects
Sentinel is an advanced secret scanning tool designed for developers, security engineers, and CI/CD pipelines. It helps prevent sensitive information, credentials, and API keys from leaking into public repositories or production environments by scanning codebases before deployment.
This documentation covers installation, usage, configuration, advanced features, reporting, examples, integration into pipelines, best practices, troubleshooting, and contributing guidelines.
| Feature | Description |
|---|---|
| Regex Scanner | Detects secrets using predefined and custom provider rules for AWS, GitHub, Stripe, Google, Slack, and more. |
| Entropy Scanner | Identifies high-entropy strings likely to be passwords, tokens, or cryptographic keys. |
| Heuristic Scanner | Detects suspicious keywords and patterns in source and configuration files. |
| Multi-format Reporting | Outputs scan results to Terminal, JSON, and HTML. |
| Fast & Deep Scans | Choose between quick regex-only scans or full deep scans including entropy and heuristics. |
| Extensible | Add custom provider rules via JSON files without changing the code. |
| CI/CD Friendly | Seamless integration with GitHub Actions, GitLab CI, Jenkins, and other CI/CD platforms. |
| Deduplication | Removes duplicate findings to ensure clean reports. |
Install the package from npm:
npm install -g @0xlayout/sentinel-security
[!NOTE] The -g flag makes the sentinel CLI available globally.
Locally:
Clone the repository and install dependencies:
git clone https://github.com/0xlayout/sentinel.git
cd sentinel
npm install
npm link
Run the CLI:
npm link
sentinel <command>
Or:
node bin/sentinel.js <command>
Important: Before scanning, remove or ignore folders that do not contain source code or sensitive information to improve scan speed and reduce false positives:
.gitassetsnode_modules (unless scanning dependencies is desired)dist / build / other auto-generated folderssentinel /path/to/project --fast
sentinel /path/to/project --deep --json --html
JSON and human-readable HTML reports.sentinel /path/to/project --deep --ignore node_modules dist test
| Option | Description |
|---|---|
--help, -h | Displays the version of Sentinel |
--version, -V | Displays the help panel |
<directory> | Directory to scan (required) |
--fast | Fast scan using only regex rules |
--deep | Full scan including regex, entropy, and heuristic detection |
--json | Generate JSON report (sentinel_report.json) |
--html | Generate HTML report (sentinel_report.html) |
--ignore <dirs...> | List of directories to ignore during scan |
Sentinel is modular and consists of the following components:
File Loader
Scanners
Deduplication
Reporting
password, secret, token, apikey.| Example | Command / YAML / JSON | Description |
|---|---|---|
| Fast Scan | sentinel ./my-project --fast | Quick scan using regex only. Results printed in Terminal. |
| Deep Scan | sentinel ./my-project --deep --json --html | Full scan using Regex, Entropy, Heuristic. Generates JSON and HTML reports. |
| Ignore Directories | sentinel ./my-project --deep --ignore node_modules dist test | Excludes specific directories from scanning. |
| CI/CD GitHub Actions | yaml name: Sentinel Scan on: [push, pull_request] jobs: scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Node.js uses: actions/setup-node@v3 with: node-version: '18' - run: npm ci - run: sentinel . --deep --json - name: Upload Sentinel Report uses: actions/upload-artifact@v3 with: name: sentinel-report path: sentinel_report.json | Automatic scan on push/pull request. Uploads JSON report as artifact. |
| Custom Provider Rules | json { "rules": [ { "name": "custom_api_key", "pattern": "custom_[0-9a-zA-Z]{20}" } ] } | Place JSON in src/scanners/providerRules/. Run Sentinel with --deep. Custom rules included automatically. |
Adding Custom Rules
.json file in src/scanners/providerRules/.name and pattern (regex).Excluding Files/Folders
--ignore option to skip irrelevant directories..git, assets, node_modules, dist.Adjusting Scan Depth
--fast: Only regex, minimal processing.--deep: Full scan, including entropy and heuristics.Example JSON Entry:
{
"file": "src/config.js",
"line": 12,
"type": "AWS_SECRET_KEY",
"match": "AKIA************"
}
script section to run Sentinel and store reports as artifacts.node build step with npm install and run sentinel.js.Best Practice: Integrate into pre-deploy or pre-merge pipelines to prevent secrets from entering production.
.git, node_modules, and generated folders to reduce false positives.Q: Some files are not scanned.
A: Ensure they are not ignored via --ignore and check file permissions.
Q: False positives detected.
A: Review the rules in src/scanners/providerRules/ and refine regex patterns.
Q: Scan takes too long.
A: Use --fast or exclude large directories like node_modules.
Sentinel is open-source. Contributions welcome:
src/scanners/providerRules/*.json).This project is licensed under the MIT License.
You are free to use, modify, distribute, and integrate this software in both
open-source and commercial projects — as long as you include the copyright notice below.
By 0xlayout
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.0Registry latest | 16 Dec 2025 | 8 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 09:04 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:09e2fe6669d21dca86bdd3d5384cf751cf9393d11360ba1f0e5fe88fbe23ee4c