AI-powered security hardening for Python developers
Project description
Sentinel - AI-Powered Security Hardening
Sentinel is a developer-first CLI tool that finds security vulnerabilities in Python projects and provides AI-powered fixes - all in an interactive terminal dashboard.
Features
- SAST - detects SQLi, XSS, command injection, hardcoded secrets, insecure crypto.
- SCA - checks dependencies against OSV.dev and NVD.
- DAST - optionally tests running web apps.
- AI enrichment (Mistral) - re-evaluates severity, explains attack scenarios, suggests fixes.
- Interactive TUI - no more grepping JSON logs.
- Auto-fix - applies safe remediations.
- CI/CD ready - GitHub Action, Docker, PyPI.
Quick Start
# Install
pip install sentinel-scanner
# Scan
sentinel scan .
# With AI (get a free key from Mistral AI)
export MISTRAL_API_KEY=your-key
sentinel scan . --ai
For full documentation, visit Sentinel Docs.
Distribution & Running
- PyPI:
pip install sentinel-scanner - Docker: Run Sentinel in a containerized environment (details in Docker README):
docker run --rm -v $(pwd):/app ghcr.io/ronaldgosso/sentinel:latest scan .
- GitHub Action: Integrate into your workflows using
uses: ronaldgosso/sentinel-action@v1.
GitHub Actions / CI/CD Workflows
The repository uses automated GitHub Actions workflows to maintain code quality, build Docker images, publish PyPI releases, and host the documentation website:
| Workflow | File | Trigger | Description |
|---|---|---|---|
| Continuous Integration (CI) | ci.yml | Push/PR to main |
Runs tests, Ruff (linting), and Mypy (type checking) to ensure code meets quality standards before merge. |
| Publish to PyPI | pypi-publish.yml | Push tag v*.*.* |
Runs quality checks first. If successful, builds wheels and publishes the distribution packages to [...] |
| Build & Publish Docker | docker-build.yml | Push to main, tags v*, or PyPI success |
Automates building the optimized multi-stage Python wheel Docker im[...] |
| Deploy Docs | docs.yml | Push to main |
Deploys static files from the website/ folder directly to GitHub Pages at https://ronaldgosso.github.io/sentinel [...] |
Project Documentation & Useful Guides
Check out these documents to learn more about developing, building, and contributing to Sentinel:
- Docker Guide - Details on running Sentinel via Docker, passing environment variables (like API keys), and exporting reports.
- Contributing Guidelines - Guide on repository setup, adding custom SAST/AST detectors, running tests, and the Pull Request/release process.
- Product Roadmap - Overview of features planned for future releases (v1.1, v1.2, and v2.0).
- Security Policy - Instructions on how to report security vulnerabilities privately.
- Code of Conduct - Standards of behavior to ensure a welcoming community.
License
This project is licensed under the GPLv3 license. See the LICENSE file for details.
Show your support
Give a star if this project helped you!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sentinel_scanner-1.0.8.tar.gz.
File metadata
- Download URL: sentinel_scanner-1.0.8.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfd4a24c445358d0784450b1db4328c6eb6aa933367185780fc8938b753945b4
|
|
| MD5 |
a89cb5f6336a7ddfa2bc7316f1c69908
|
|
| BLAKE2b-256 |
23bad179c90e50d777154431170e03ebdc1b49c48db218c9a2e7a434195cecca
|
Provenance
The following attestation bundles were made for sentinel_scanner-1.0.8.tar.gz:
Publisher:
pypi-publish.yml on ronaldgosso/sentinel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sentinel_scanner-1.0.8.tar.gz -
Subject digest:
bfd4a24c445358d0784450b1db4328c6eb6aa933367185780fc8938b753945b4 - Sigstore transparency entry: 1879050531
- Sigstore integration time:
-
Permalink:
ronaldgosso/sentinel@aa8e26c4e3d93a6caeb24a283fd4628c74aaf235 -
Branch / Tag:
refs/tags/v1.0.8 - Owner: https://github.com/ronaldgosso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@aa8e26c4e3d93a6caeb24a283fd4628c74aaf235 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sentinel_scanner-1.0.8-py3-none-any.whl.
File metadata
- Download URL: sentinel_scanner-1.0.8-py3-none-any.whl
- Upload date:
- Size: 48.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
537844ba9b238363dcec5da6dc2c7467ad31f57a76a609de715f6c38693c9553
|
|
| MD5 |
cc45cd31d2a3d17213d31e96d88ee7a8
|
|
| BLAKE2b-256 |
a1450d244b6b04866d73751d1178a1e64e2244c0861c7064b06f410d66dc518c
|
Provenance
The following attestation bundles were made for sentinel_scanner-1.0.8-py3-none-any.whl:
Publisher:
pypi-publish.yml on ronaldgosso/sentinel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sentinel_scanner-1.0.8-py3-none-any.whl -
Subject digest:
537844ba9b238363dcec5da6dc2c7467ad31f57a76a609de715f6c38693c9553 - Sigstore transparency entry: 1879050687
- Sigstore integration time:
-
Permalink:
ronaldgosso/sentinel@aa8e26c4e3d93a6caeb24a283fd4628c74aaf235 -
Branch / Tag:
refs/tags/v1.0.8 - Owner: https://github.com/ronaldgosso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@aa8e26c4e3d93a6caeb24a283fd4628c74aaf235 -
Trigger Event:
push
-
Statement type: