Self-healing multi-agent code quality pipeline
Project description
SENTINEL
Self-healing AI code quality pipeline.
SENTINEL reviews your code, finds bugs, proposes fixes, verifies them in an isolated sandbox, and auto-applies the safe ones — all without leaving your terminal.
sentinel scan --path ./my-project --all
┌────────────────────────────────── Summary ──────────────────────────────────┐
│ Risk level LOW (0.25) │
│ Files reviewed 2 │
│ Findings 7 │
│ Bugs found 3 │
│ Auto-fixes 2 ← applied automatically │
│ Pending fixes 1 ← needs human review │
└─────────────────────────────────────────────────────────────────────────────┘
How it works
Your code
│
▼
Risk assessment ──→ low risk: lightweight review
│ high risk: full swarm
▼
Review swarm (parallel)
├── Architecture agent
├── Performance agent
├── Security agent
└── Style & quality agent
│
▼
Lead synthesis → findings report
│
▼
Sandbox (Docker, no network, non-root)
└── Run tests → find failures
│
▼
Bug Squad (sequential)
├── Reproduce → isolate each failing test
├── Root cause → why it failed
├── Fix proposer → propose a patch
└── Verifier → apply patch, re-run tests, confirm green
│
▼
Approval gate
├── AUTO_MERGE → safe fix, applied immediately
└── HUMAN_REQUIRED → sensitive file or high risk
Install
pip install sentinel-ai
Requires Python 3.11+ and Docker (for the sandbox).
Setup
sentinel init
This walks you through getting two free API keys (takes ~2 minutes, no credit card):
- Groq — fast inference: console.groq.com
- HuggingFace — fallback when Groq quota runs out: huggingface.co/settings/tokens
SENTINEL uses both automatically (cascade mode) — Groq first, HuggingFace as a silent fallback.
Usage
# Scan every file in a project
sentinel scan --path ./my-project --all
# Scan only your staged git changes
sentinel scan --path . --staged
# Scan changes vs a branch
sentinel scan --path . --branch main
# Save report to a file
sentinel scan --path . --all --output report.md
# Run on a GitHub PR (needs GITHUB_TOKEN in .env)
sentinel run --repo owner/repo --pr 42
# Start webhook server (auto-scans PRs on open)
sentinel serve
Supported languages
| Language | Review | Sandbox tests | Auto-fix |
|---|---|---|---|
| Python | ✓ | ✓ (pytest) | ✓ |
| TypeScript / JavaScript | ✓ | coming soon | — |
| JSX / TSX | ✓ | coming soon | — |
LLM providers
Set LLM_PROVIDER in ~/.sentinel/.env:
| Provider | Cost | Setup |
|---|---|---|
cascade |
Free | Groq + HuggingFace keys (recommended) |
groq |
Free | Groq key only |
huggingface |
Free | HuggingFace token only |
ollama |
Free | Local GPU, no API key |
anthropic |
Paid | Anthropic API key |
Security
- Sandbox runs with
network_mode=none, non-root uid, memory + CPU limits - Webhook payloads verified with HMAC-SHA256 before parsing
- Sensitive files (
auth,payment,migrations, etc.) always require human approval - All secrets in
~/.sentinel/.env— never committed to version control
Self-hosted (team use)
For teams, run SENTINEL on a shared server with Ollama — no API keys, no quota, unlimited scans:
ollama pull qwen2.5-coder:7b
LLM_PROVIDER=ollama sentinel serve
License
AGPL-3.0 — free to use and self-host. If you offer SENTINEL as a hosted service, your full stack must be open-sourced under the same license.
Project details
Release history Release notifications | RSS feed
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 zendev_sentinel-0.1.0.tar.gz.
File metadata
- Download URL: zendev_sentinel-0.1.0.tar.gz
- Upload date:
- Size: 84.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
542e90ab4d2405fa5f9961fd5e55967dce7ba474b7a559dfc09e09ffc2665a95
|
|
| MD5 |
2d8c8fc645123b5f49a55a599f3ed41e
|
|
| BLAKE2b-256 |
30ed74354257474e2e708e4538d84f6b10317aed6f9f73fb91250934d1364d18
|
File details
Details for the file zendev_sentinel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zendev_sentinel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 100.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee56c3e25230c28dcde2c416255cdd23c54a77034e8e4fdad07aaec27b66b500
|
|
| MD5 |
113903df422b4c2b8a8bca47c03047ac
|
|
| BLAKE2b-256 |
ba312c363b05ceb350c512f3bbe9664c4b0525fa687ee15be96a26fa78a77d9d
|