Shinobi
10-second security scan for developers who ship fast
Shinobi is a local-first security scanner that checks your codebase for exposed secrets, dangerous defaults, vulnerable dependencies, missing security basics, and AI-specific risks — all in seconds, right from the terminal.
100% local. Zero data ever leaves your machine.
Install
pip install shinobi-scan
Or install from source:
git clone https://github.com/AkrijSama/shinobi.git
cd shinobi
python generate_logo.py
pip install .
Usage
# Scan current directory (fast mode)
shinobi
# Scan a specific directory
shinobi /path/to/project
# Clone and scan a remote public repo
shinobi --repo https://github.com/user/project
# Deep scan — includes git history for previously committed secrets
shinobi --deep
# Save JSON report to a specific file
shinobi --output report.json
# Plain text output (no ANSI colors)
shinobi --no-color
What It Scans
| Scanner | What It Checks |
|---|---|
| Secrets | API keys (OpenAI, Stripe, AWS, GitHub, etc), passwords, tokens, private keys, .env files not in .gitignore |
| Defaults | DEBUG=True, CORS wildcards, 0.0.0.0 bindings, default database passwords, weak SECRET_KEYs |
| Dependencies | Known CVEs via pip-audit/npm-audit, unpinned versions |
| Armor | Missing rate limiting, CSRF protection, security headers, input sanitization, authentication |
| AI Risks | LLM keys in client code, prompt injection patterns, model files in repo, exposed system prompts |
| Git History | Previously committed secrets across last 500 commits (with --deep) |
Sample Output
__ _ _ _ _
/ _\ |__ (_)_ __ ___ | |__ (_)
\ \| '_ \| | '_ \ / _ \| '_ \| |
_\ \ | | | | | | | (_) | |_) | |
\__/_| |_|_|_| |_|\___/|_.__/|_|
v1.0 — shadow guard for your code
🔍 shinobi v1.0 — security scan complete
Project: my-app
Scanned: 342 files in 2.1s
╔══════════════════════════════════════════════╗
║ THREAT LEVEL: CRITICAL 🔴 ║
╚══════════════════════════════════════════════╝
🔑 SECRETS EXPOSED 3 found
→ src/config.py:12 — OpenAI API Key: sk-a****...x9f2
→ .env:5 — AWS Access Key: AKIA****...XMPL
⚠️ DANGEROUS DEFAULTS 1 found
→ settings.py:8 — Debug mode is enabled
🛡️ MISSING ARMOR 2 gaps
→ No rate limiting detected
→ No CSRF protection detected
Total issues: 6 | Critical: 3 | High: 1 | Medium: 2
Privacy
Shinobi runs entirely on your machine. It does not make network requests, phone home, or transmit any data. The only external calls are to pip audit and npm audit (which are your own local tools calling their own registries).
License
MIT
Built by SolidDark — https://soliddark.net
Metadata
Release files for shinobi-scan 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| shinobi_scan-1.1.0.tar.gz | 74.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shinobi_scan-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 152.8 kB
Release files / shinobi_scan-1.1.0.tar.gz
| Download URL | shinobi_scan-1.1.0.tar.gz |
|---|---|
| Size | 74.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3cf882f5f77b4b3554d9c0acf30936805cffe1880233873be100f392ab3d3225
|
|
BLAKE2b-256 checksum How to use checksums |
a1eba085286da81f9f4514ce1ce3795b72be912d0e64cb37709c57e51533f948
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / shinobi_scan-1.1.0-py3-none-any.whl
| Download URL | shinobi_scan-1.1.0-py3-none-any.whl |
|---|---|
| Size | 78.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46598e2f55ab28162a03ea8419910b9030488df17a2edc9b7d3a59d9708010ff
|
|
BLAKE2b-256 checksum How to use checksums |
d4be486e88149462d917739af491c7fe80a46858ba70a16ae638a97d57972f13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for shinobi-scan 1.1.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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.