cfsniff
A good dog that sniffs out leaked secrets in files, directories, and text — powered by the ClassiFinder API.
Install
pipx install cfsniff
Or with pip:
pip install cfsniff
Quick Start
# 1. Install
pipx install cfsniff
# 2. Set your API key (get one at https://classifinder.ai)
export CLASSIFINDER_API_KEY=cf_live_...
# 3. Sniff something
cfsniff audit
Usage
Scan a file
cfsniff secrets.txt
Scan a directory
cfsniff ./src
Pipe text in
echo "token=ghp_abc123..." | cfsniff
Scan your clipboard
cfsniff --clipboard
Audit current directory
cfsniff audit
Audit with extra paths
cfsniff audit --include logs
Audit and open an HTML report
cfsniff audit --report report.html --open
Output Formats
cfsniff audit # rich (default, color terminal output)
cfsniff audit --format plain # plain text (CI-friendly)
cfsniff audit --format json # machine-readable JSON
HTML Reports
The --report flag writes a self-contained HTML file with a full findings summary — useful for sharing with teammates or attaching to tickets.
cfsniff audit --report report.html --open
API Key
Get a free API key at https://classifinder.ai.
Set it via environment variable:
export CLASSIFINDER_API_KEY=cf_live_...
Verifying This Build
Every release is published via PyPI Trusted Publishing with PEP 740 build attestations. No long-lived API tokens. The wheel you pip install is byte-identical to what GitHub Actions built from a tagged commit.
To verify a release: visit the project page on PyPI, click Download files, and check the Provenance section under each artifact. You'll see the sigstore attestation, the GitHub workflow run, and the exact commit SHA — all logged to the public Sigstore transparency log for independent verification.
This answers "is the wheel what's in the source?" — the cryptographic chain proves this wheel was built from ClassiFinder/cfsniff at the tagged commit, by a GitHub-hosted runner, and cannot be tampered with after the fact.
License
MIT
Metadata
Release files for cfsniff 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cfsniff-0.1.5.tar.gz | 35.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cfsniff-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.5 kB
Release files / cfsniff-0.1.5.tar.gz
| Download URL | cfsniff-0.1.5.tar.gz |
|---|---|
| Size | 35.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7beaabfe677c0c40b31185d21670633ae37814df444f0cfc171892a037062ec7
|
|
BLAKE2b-256 checksum How to use checksums |
80d97b4ecd940e059696d997544e88d44ae5f93a557076b72c7dcc104afeb3b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 4, 2026.
Transparency logRelease files / cfsniff-0.1.5-py3-none-any.whl
| Download URL | cfsniff-0.1.5-py3-none-any.whl |
|---|---|
| Size | 23.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3546999bdf50b7488d4e8cf01997d5b5cb04548a37c80ed76e41bcb0f584f5e8
|
|
BLAKE2b-256 checksum How to use checksums |
994621af2a1ee42b65978cb9e4f325adcbdd9d26edfafb8e320cc9ec5769830f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 4, 2026.
Transparency log