Skip to main content

secretscan-report

A personal security-hygiene tool: scans your own machine for accidentally exposed secrets (API keys, tokens, passwords, private keys), audits what's installed and what's exposed (Docker containers, listening ports, Chrome browser cookies), and can optionally check your local network and internet connectivity.

Everything runs locally. No secrets ever leave your machine.

Install

pip install secretscan-report[all]

The [all] extra installs websocket-client, which is used only to talk to Chrome's DevTools Protocol on localhost:9222 for headless browser auditing (the same mechanism as chromedp in Go). It never makes outbound network connections.

Without [all]:

pip install secretscan-report

This installs the core scanner (filesystem, shell history, keychain, processes, network, Docker). Chrome headless auditing is skipped if websocket-client is not installed.

Usage

# Full scan — all modules including Chrome, LAN, Internet
# Generates HTML + JSON reports with a progress bar
secretscan fullscan

# Default scan (home dir, default modules)
secretscan run

# Scan a specific directory, filesystem module only
secretscan run --paths ~/Projects --modules filesystem

# Full scan with custom output directory
secretscan fullscan --output-dir ./report

# List all detection rules
secretscan rules list

Modules

Module Default What it does
filesystem yes Scans files under --paths (default $HOME) for secret patterns
shell-history yes Scans .zsh_history, .bash_history, and other history files
keychain yes Audits macOS Keychain metadata (never decrypts values)
process-env yes Inspects your own running processes' command lines
installed-tools yes Inventories security/dev tools and packages
network yes Lists TCP/UDP ports this machine is listening on
docker yes Lists running containers, checks for exposed Docker API
chrome yes Audits Chrome browser: launches headless, reads cookies via CDP, takes screenshots
lan opt-in Probes other devices on your local network (--yes-lan)
internet opt-in Tests outbound connectivity to public endpoints

Output formats

  • table — colored terminal output (default)
  • json — machine-readable {meta, findings} document
  • html — self-contained HTML report with dark/light theme
  • csv — flat CSV of findings

Detection

15 built-in rules covering AWS, GitHub, GitLab, Slack, Stripe, Google, npm, PEM private keys, and generic password/secret/token assignments. Each rule uses regex matching with optional Shannon entropy scoring and keyword pre-filtering for performance.

Values that look like placeholders ({{password}}, changeme, your_api_key_here) are detected and downgraded rather than competing with real findings.

Security & privacy

  • No outbound network calls from secret-detection modules — ever.
  • The chrome module connects to localhost:9222 (Chrome DevTools Protocol) to audit your own browser. This is the same protocol used by Selenium, Playwright, Puppeteer, and chromedp. It copies essential Chrome profile files to a temp directory, launches headless Chrome against the copy, reads cookies and takes a screenshot, then deletes the copy.
  • The optional lan module sends pings to your local subnet (requires --yes-lan).
  • The optional internet module makes TCP connections to well-known public endpoints (e.g. google.com:443) to test connectivity.
  • All scan results stay on disk in the output directory you choose.

Cross-platform

Works on macOS, Linux, and Windows. Platform-specific features:

  • macOS: Keychain audit, Chrome cookie decryption via Keychain
  • Linux: /proc-based process inspection
  • Windows: netstat/wmic/ipconfig fallbacks

What this tool does NOT do

  • No git-history scanning (use Gitleaks/TruffleHog for that)
  • No live credential verification
  • No bypassing macOS security prompts
  • No outbound transmission of findings
  • Secret detection modules never make outbound network calls

Dependencies

  • pyyaml — for loading rules YAML files
  • websocket-client (optional, via [all]) — localhost-only CDP communication for Chrome auditing
  • cryptography (optional, via [crypto]) — macOS Chrome cookie decryption from SQLite fallback

Metadata

Release files for get-report 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for get-report 0.2.0
File Size Uploaded Provenance
get_report-0.2.0.tar.gz 38.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for get-report 0.2.0
File Interpreter ABI Platform
get_report-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 86.7 kB

Release files / get_report-0.2.0.tar.gz

Download URL get_report-0.2.0.tar.gz
Size 38.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1c8d1eea57ea2c2087629ce5a1f8512ef30376cff0ca934e0eb1d607f2406156
BLAKE2b-256 checksum
How to use checksums
5a49857db84bde928991c65c3c877650f399da5b49ee8ed2d74f38bbeb93e261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.6

Release files / get_report-0.2.0-py3-none-any.whl

Download URL get_report-0.2.0-py3-none-any.whl
Size 48.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4668d3021aed3c0582c822ea916692ab5c5d22275ef1a243c8c6f5eaab295b3b
BLAKE2b-256 checksum
How to use checksums
f93ff3789210f38e033a4eac42e2d48e17c78cb8279fa4ae35a9a52f00165252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.6

Security for get-report 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page