AI-Powered Code Quality Guardian — Pre-commit security & complexity analysis in 0.01s
Project description
Hefesto - AI-Powered Code Quality Guardian
AI-powered code quality guardian built for the age of AI-generated code. Catches security flaws, semantic drift, operational truth drift, and complexity issues in 0.01s across 21 formats. 476 tests | 677+ monthly downloads | Used in production CI/CD pipelines worldwide.
Quick Start
pip install hefesto-ai
cd your-project
hefesto analyze . --fail-on critical
# PR review (new in v4.11.2) — analyze only changed code
hefesto pr-review
hefesto pr-review --strict # include file-level context
hefesto pr-review --post --pr 42 # post inline comments via gh CLI
Why Hefesto? The AI Code Problem
AI tools like Claude Code, GitHub Copilot, and Cursor generate code at machine speed. But who validates that code?
- Copilot generates
os.system(user_input)→ command injection - Claude writes
f"SELECT * FROM {table}"→ SQL injection - AI code looks clean to linters but changes business logic silently (semantic drift)
Hefesto catches what your linter misses. Pre-commit, pre-push, CI/CD — before it reaches production.
What Hefesto Catches
| Issue | Severity | Description |
|---|---|---|
| HARDCODED_SECRET | CRITICAL | API keys, passwords in code |
| SQL_INJECTION_RISK | HIGH | String concatenation in queries |
| COMMAND_INJECTION | HIGH | Unsafe shell command execution |
| PATH_TRAVERSAL | HIGH | Unsafe file path handling |
| UNSAFE_DESERIALIZATION | HIGH | pickle, yaml.unsafe_load |
| UNDECLARED_DEPENDENCY | MEDIUM | Import used but not in pyproject.toml |
| PACKAGING_VERSION_DRIFT | MEDIUM | Version mismatch across pyproject/CHANGELOG/README |
| CI_CONFIG_DRIFT | MEDIUM-HIGH | Local env vs CI configuration mismatch |
| INSTALL_ARTIFACT_DRIFT | MEDIUM-HIGH | action.yml inputs or Dockerfile COPY out of sync |
| HIGH_COMPLEXITY | HIGH | Cyclomatic complexity > 10 |
| DEEP_NESTING | HIGH | Nesting depth > 4 levels |
| GOD_CLASS | HIGH | Classes > 500 lines |
| LONG_FUNCTION | MEDIUM | Functions > 50 lines |
| LONG_PARAMETER_LIST | MEDIUM | Functions with > 5 parameters |
# Hefesto catches:
password = "admin123" # HARDCODED_SECRET
query = f"SELECT * FROM users WHERE id={id}" # SQL_INJECTION_RISK
os.system(f"rm {user_input}") # COMMAND_INJECTION
# Hefesto suggests:
password = os.getenv("PASSWORD")
cursor.execute("SELECT * FROM users WHERE id=?", (id,))
subprocess.run(["rm", user_input], check=True)
GitHub Action
steps:
- uses: actions/checkout@v4
- name: Run Hefesto Guardian
uses: artvepa80/Agents-Hefesto@v4.11.2
with:
target: '.'
fail_on: 'CRITICAL'
Inputs:
| Input | Description | Default |
|---|---|---|
target |
Path to analyze (file or directory) | . |
fail_on |
Exit with error if issues found at or above this severity level | CRITICAL |
min_severity |
Minimum severity to report | LOW |
format |
Output format (text, json, html) |
text |
telemetry |
Opt-in to anonymous telemetry (1=enable) | 0 |
Outputs:
| Output | Description |
|---|---|
exit_code |
The exit code of the CLI (0=Success, 1=Error, 2=Issues Found) |
AI-Generated Code Guardrails (Pre-commit + MCP)
HefestoAI is a pre-commit guardian for AI-generated code. It detects semantic drift and risky changes before merge.
Add as an MCP server:
npx @smithery/cli@latest mcp add artvepa80/hefestoai
API Endpoints:
| Endpoint | Protocol | Path |
|---|---|---|
| MCP | JSON-RPC 2.0 | /api/mcp-protocol |
| REST | HTTP GET/POST | /api/mcp |
| OpenAPI | OpenAPI 3.0 | /api/openapi.json |
| Q&A | Natural Language | /api/ask |
| Changelog | JSON | /api/changelog.json |
| FAQ | JSON | /api/faq.json |
PR Review (v4.11.2)
Analyze only the code changed in a pull request. Post inline comments on changed lines with deterministic dedup keys so reruns never create duplicate comments.
# Generate review as JSON (default — no network, no token needed)
hefesto pr-review
# Post inline comments via gh CLI (convenience mode)
hefesto pr-review --post --pr 42 --repo owner/name
# Include file-level context findings (not just changed lines)
hefesto pr-review --strict
How it works:
- Parses
git diffbetween base and head (auto-detectsorigin/mainorGITHUB_BASE_REF) - Runs the full analyzer suite on touched files only
- Filters findings to changed lines (default) or full files (
--strict) - Emits JSON with SHA256 dedup keys for each finding
GitHub Actions workflow templates are provided under examples/github-actions/:
| Template | Use case | Idempotent? |
|---|---|---|
hefesto-pr-review-simple.yml |
Quick onboarding, small repos | No (reruns duplicate) |
hefesto-pr-review-deduped.yml |
Production CI, teams | Yes (jq dedup pipeline) |
See examples/github-actions/README.md for setup instructions.
Operational Truth Analyzers (v4.11.2)
Project-level checks that detect drift between what your project declares and what it actually does. These run automatically as part of hefesto analyze — no extra commands needed.
| Analyzer | What it catches | Rule ID |
|---|---|---|
| Imports vs Deps | Python imports not declared in pyproject.toml or requirements.txt |
OT-IMPORTS-001 |
| Docs vs Entrypoints | CLI scripts in [project.scripts] missing from README |
OT-DOCS-001 |
| Packaging Parity | Version mismatch between pyproject.toml, CHANGELOG, and README badges |
OT-PKG-001/002 |
| Install Artifact Parity | action.yml inputs not consumed; Dockerfile COPY sources missing |
OT-INSTALL-001/002 |
| CI Config Drift | Python version or flake8 config mismatch between local and CI workflow | OT-CI-001/002/003 |
# All operational truth findings appear in standard output
hefesto analyze . --severity MEDIUM
Language Support
Code Languages
| Language | Parser | Status |
|---|---|---|
| Python | Native AST | Full support |
| TypeScript | TreeSitter | Full support |
| JavaScript | TreeSitter | Full support |
| Java | TreeSitter | Full support |
| Go | TreeSitter | Full support |
| Rust | TreeSitter | Full support |
| C# | TreeSitter | Full support |
DevOps & Configuration
| Format | Analyzer | Rules | Status |
|---|---|---|---|
| YAML | YamlAnalyzer | Generic YAML security | v4.4.0 |
| Terraform | TerraformAnalyzer | TfSec-aligned rules | v4.4.0 |
| Shell | ShellAnalyzer | ShellCheck-aligned | v4.4.0 |
| Dockerfile | DockerfileAnalyzer | Hadolint-aligned | v4.4.0 |
| SQL | SqlAnalyzer | SQL Injection prevention | v4.4.0 |
| PowerShell | PS001-PS006 | 6 security rules | v4.5.0 |
| JSON | J001-J005 | 5 security rules | v4.5.0 |
| TOML | T001-T003 | 3 security rules | v4.5.0 |
| Makefile | MF001-MF005 | 5 security rules | v4.5.0 |
| Groovy | GJ001-GJ005 | 5 security rules | v4.5.0 |
Cloud Infrastructure
| Format | Analyzer | Focus | Status |
|---|---|---|---|
| CloudFormation | CloudFormationAnalyzer | AWS IaC Security | v4.7.0 |
| ARM Templates | ArmAnalyzer | Azure IaC Security | v4.7.0 |
| Helm Charts | HelmAnalyzer | Kubernetes Security | v4.7.0 |
| Serverless | ServerlessAnalyzer | Serverless Framework | v4.7.0 |
Total: 7 code languages + 10 DevOps formats + 4 Cloud formats = 21 supported formats
Installation
# FREE tier
pip install hefesto-ai
# TS/JS parsing + symbol metadata (optional)
pip install "hefesto-ai[multilang]"
# PRO tier
pip install hefesto-ai[pro]
export HEFESTO_LICENSE_KEY="your-key"
# OMEGA Guardian
pip install hefesto-ai[omega]
export HEFESTO_LICENSE_KEY="your-key"
CLI Reference (v4.11.2)
# Analyze code
hefesto analyze <path>
hefesto analyze . --severity HIGH
hefesto analyze . --output json
# PR review (v4.11.2)
hefesto pr-review # JSON to stdout
hefesto pr-review --base main --head HEAD # explicit refs
hefesto pr-review --strict # file-level findings too
hefesto pr-review --post --pr 42 --repo o/r # post via gh CLI
# Check status
hefesto status
# Install/update git hook
hefesto install-hooks
# Start API server (PRO)
hefesto serve --port 8000
# Telemetry Management
hefesto telemetry status
hefesto telemetry clear
JSON Output
hefesto analyze . --output json # stdout = pure JSON, banners -> stderr
hefesto analyze . --output json 2>/dev/null | jq . # pipe-safe
Exit Codes
| Code | Meaning |
|---|---|
0 |
Analysis complete (no --fail-on, or threshold not breached) |
1 |
Gate failure (--fail-on threshold breached) or runtime error |
Gate Examples
hefesto analyze . --fail-on high # exit 1 if HIGH+ found
hefesto analyze . --fail-on critical # exit 1 only if CRITICAL found
hefesto analyze . # always exit 0 (report only)
Pre-Push Hook
Automatic validation before every git push:
# Install/update hook (copies scripts/git-hooks/pre-push -> .git/hooks/pre-push)
hefesto install-hooks
# Update an existing hook
hefesto install-hooks --force
# Bypass temporarily
SKIP_HEFESTO_HOOKS=1 git push
The hook runs two gates:
- Security gate —
hefesto analyzewith--fail-on CRITICAL --exclude-types VERY_HIGH_COMPLEXITY,LONG_FUNCTION(blocks security issues, ignores complexity debt) - Fast lint/test gate — Black, isort, Flake8, and a minimal test suite
Note: Hooks are local to your machine and not committed to git. Run
hefesto install-hooksafter cloning or wheneverscripts/git-hooks/pre-pushis updated.
Features by Tier
| Feature | FREE | PRO ($8/mo) | OMEGA ($19/mo) |
|---|---|---|---|
| Static Analysis | Yes | Yes | Yes |
| Security Scanning | Basic | Advanced | Advanced |
| Pre-push Hooks | Yes | Yes | Yes |
| 21 Language Support | Yes | Yes | Yes |
| ML Enhancement | No | Yes | Yes |
| REST API | No | Yes | Yes |
| BigQuery Analytics | No | Yes | Yes |
| IRIS Monitoring | No | No | Yes |
| Production Correlation | No | No | Yes |
- PRO: Start Free Trial - 14 days, no credit card
- OMEGA: Start Free Trial - 14 days, no credit card
- Founding Members: 40% off forever (first 25 customers)
Hefesto PRO Optional Features
Hefesto OSS works standalone. If Hefesto PRO is installed, OSS can optionally enable:
Patch C API hardening for hefesto serve, scope gating (first-party by default), TS/JS
symbol discovery, and safe deterministic enrichment (schema-first, masked, bounded).
See docs/PRO_OPTIONAL_FEATURES.md.
REST API (PRO)
# Start server (binds to 127.0.0.1 by default)
hefesto serve --port 8000
# Analyze code
curl -X POST http://localhost:8000/analyze \
-H "Content-Type: application/json" \
-H "X-API-Key: $HEFESTO_API_KEY" \
-d '{"code": "def test(): pass", "severity": "MEDIUM"}'
API Security (v4.8.0)
The API server is secure by default:
| Feature | Default | Configure via |
|---|---|---|
| Host binding | 127.0.0.1 (loopback) |
HEFESTO_API_HOST |
| CORS | Localhost only | HEFESTO_CORS_ORIGINS |
| API docs | Disabled (404) | HEFESTO_EXPOSE_DOCS=true |
| Auth | Off (no key set) | HEFESTO_API_KEY |
| Rate limit | 60 req/min | HEFESTO_RATE_LIMIT_PER_MINUTE |
| Path sandbox | cwd() |
HEFESTO_WORKSPACE_ROOT |
# Production example
export HEFESTO_API_KEY=my-secret-key
export HEFESTO_CORS_ORIGINS=https://app.example.com
export HEFESTO_API_RATE_LIMIT_PER_MINUTE=60
export HEFESTO_EXPOSE_DOCS=false
hefesto serve --host 0.0.0.0 --port 8000
Endpoints
| Endpoint | Method | Description |
|---|---|---|
/analyze |
POST | Analyze code |
/health |
GET | Health check (no auth required) |
/ping |
GET | Fast health ping (no auth required) |
/batch |
POST | Batch analysis |
/metrics |
GET | Quality metrics |
/history |
GET | Analysis history |
/webhook |
POST | GitHub webhook |
/stats |
GET | Statistics |
/validate |
POST | Validate without storing |
CI/CD Integration
GitHub Actions — Full Repo Analysis
name: Hefesto
on: [push, pull_request]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Hefesto
run: pip install hefesto-ai
- name: Run Analysis
run: hefesto analyze . --severity HIGH
GitHub Actions — PR Review with Inline Comments (v4.11.2)
name: Hefesto PR Review
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
pull-requests: write
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: pip install hefesto-ai
- name: Review changed code
env:
GITHUB_BASE_REF: ${{ github.event.pull_request.base.ref }}
GITHUB_SHA: ${{ github.event.pull_request.head.sha }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: hefesto pr-review --post --pr ${{ github.event.pull_request.number }} --repo ${{ github.repository }}
For production use with dedup (no duplicate comments on reruns), see the workflow templates in
examples/github-actions/.
pre-commit Hook
# .pre-commit-config.yaml
repos:
- repo: https://github.com/artvepa80/Agents-Hefesto
rev: v4.11.2
hooks:
- id: hefesto-analyze
GitLab CI
hefesto:
stage: test
script:
- pip install hefesto-ai
- hefesto analyze . --severity HIGH
Configuration
Environment Variables
# Core
export HEFESTO_LICENSE_KEY="your-key"
export HEFESTO_SEVERITY="MEDIUM"
export HEFESTO_OUTPUT="json"
# API Security (v4.7.0)
export HEFESTO_API_KEY="your-api-key" # Enable API key auth
export HEFESTO_API_RATE_LIMIT_PER_MINUTE=60 # Enable rate limiting
export HEFESTO_CORS_ORIGINS="https://app.example.com" # Restrict CORS
export HEFESTO_EXPOSE_DOCS=true # Enable /docs, /redoc
export HEFESTO_WORKSPACE_ROOT="/srv/code" # Path sandbox root
export HEFESTO_CACHE_MAX_ITEMS=256 # Cache size limit
export HEFESTO_CACHE_TTL_SECONDS=300 # Cache entry TTL
Config File (.hefesto.yaml)
severity: HIGH
exclude:
- tests/
- node_modules/
- .venv/
rules:
complexity:
max_cyclomatic: 10
max_cognitive: 15
security:
check_secrets: true
check_injections: true
OMEGA Guardian
Production monitoring that correlates code issues with production failures.
Features
- IRIS Agent: Real-time production monitoring
- Auto-Correlation: Links code changes to incidents
- Real-Time Alerts: Pub/Sub notifications
- BigQuery Analytics: Track correlations over time
Setup
# iris_config.yaml
project_id: your-gcp-project
dataset: omega_production
pubsub_topic: hefesto-alerts
alert_rules:
- name: error_rate_spike
threshold: 10
- name: latency_increase
threshold: 1000
# Run IRIS Agent
python -m hefesto.omega.iris_agent --config iris_config.yaml
# Check status
hefesto omega status
IRIS Telemetry Contract (OMEGA)
IRIS labels deployments as GREEN/YELLOW/RED using post-deploy telemetry. The input format is an open contract — any observability stack can produce it:
| Resource | Path | Description |
|---|---|---|
| Aggregates Contract v1 | docs/telemetry/AGGREGATES_CONTRACT.md |
Row schema, units, validation checklist |
| JSONL Validator | scripts/validate_aggregates_jsonl.py |
Stdlib-only validator (no deps) |
# Validate your telemetry file
python scripts/validate_aggregates_jsonl.py aggregates.jsonl
# Feed to IRIS (OMEGA tier)
export IRIS_TELEMETRY_SOURCE=file
export IRIS_TELEMETRY_FILE=aggregates.jsonl
iris label-outcomes --repo org/repo --commit abc123 --env production --window both --json
Enterprise collectors (Prometheus, Datadog, CloudWatch) and integration runbooks are available in the PRO distribution.
vs. Competition
| Feature | Hefesto | Semgrep | Bandit | SonarQube |
|---|---|---|---|---|
| AI-generated code validation | Yes | No | No | No |
| Semantic drift detection | Yes | No | No | No |
| Pre-commit speed | 0.01s | ~1s | ~2s | N/A |
| MCP/Claude Code integration | Yes | No | No | No |
| Languages | 21 | 30+ | Python only | 25+ |
| Setup | pip install |
pip install |
pip install |
Server required |
| Price | Free / $8 / $19 | Free / Enterprise | Free | Free / Enterprise |
Hefesto's niche: Validating code generated by AI tools (Claude, Copilot, Cursor). Traditional tools validate human code. Hefesto validates machine code.
The Dogfooding Story
We used Hefesto to validate itself before publishing v4.0.1:
Critical bugs found:
- Hardcoded password in test fixtures (CRITICAL)
- Dangerous
exec()call without validation (HIGH) - 155 other issues (code smells, security, complexity)
Result: All fixed before shipping. Meta-validation at its finest.
Changelog
v4.11.2 (2026-04-12)
- Phase 4 — Narrow Semantic Analyzer:
ATTRIBUTE_NAME_MISMATCH(typo detection via difflib) andSILENT_EXCEPTION_SWALLOW(broad except with trivially silent body) - Cross-repo schema contract test: pins 12-key PR review finding dict between OSS and Pro
code_snippetin PR review JSON: field was silently dropped, now included- Phase 3.1 — Enrichment rendering: PR comments render AI enrichment summary when present
- Upgrade notice: shows when a newer version is available on PyPI
- Fix:
contextlib.suppress(ImportError)recognized as optional-import guard - Fix: AST
BinOp(Mod)catches single-char SQL injection FN (Phase 1c debt closed) - 474 tests (was 430), 0 regressions
v4.10.0 (2026-04-12)
- PR Review: New
hefesto pr-reviewcommand — diff-scoped analysis with inline GitHub PR comments and SHA256 dedup keys. Two workflow templates (simple + deduped) inexamples/github-actions/ - Operational Truth Analyzers: 5 project-level analyzers detect drift between imports/deps, docs/entrypoints, packaging versions, install artifacts, and CI config — all visible via
hefesto analyze - Security Precision (BP-7): SQL_INJECTION FP rate 43%→0% (DB-API placeholders no longer flagged), ASSERT_IN_PRODUCTION 31→0 FPs (AST rewrite), PICKLE/BARE_EXCEPT detectors rewritten with exact matching
- CI Parity Unification:
check-ci-parityfindings now appear inhefesto analyzevia adapter; legacy CLI preserved - 430 tests (was 346), 0 regressions
v4.9.9 (2026-03-13)
- Telemetry: Anonymous usage pings enabled by default (opt-out via
HEFESTO_TELEMETRY=0) - First-run notice printed once to stderr
- No code, paths, or PII collected
v4.9.7 (2026-03-13)
- Telemetry: Anonymous usage ping endpoint (CLI opt-in + GitHub Action always-on)
v4.9.3 (2026-02-24)
- MCP endpoint live (JSON-RPC 2.0)
- AI discoverability stack complete (llms.txt, agent.json, OpenAPI, FAQ, Changelog)
- Registered in official MCP Registry and Smithery
v4.9.0 (2026-02-14)
- Boundary: Public/private repo split — community edition only in public repo.
- Removed: Paid modules (api, llm, licensing, omega), paid infra, paid tests.
- Hardened: Packaging (packages.find exclude, MANIFEST.in prune, CI guard).
v4.8.5 (2026-02-13)
- GitHub Action: Market-ready Docker-based action (bypassing PyPI).
- Security: Deterministic smoke tests with clean/critical fixtures.
- CLI: Verified exit code contract (2 = Issues Found).
v4.7.0 (2026-02-10)
- Patch C: API Hardening —
hefesto serveis secure-by-default (local-first) - Security: API key auth, CORS allowlist, docs toggle, path sandbox
v4.3.3 (2025-12-26)
- Fix LONG_PARAMETER_LIST: use AST formal_parameters instead of comma counting
- Fix function naming: infer names from variable_declarator for arrow functions
v4.2.1 (2025-10-31)
- Critical tier hierarchy bugfix
- OMEGA Guardian release
Telemetry
HefestoAI collects anonymous usage data by default to help improve the tool.
What's sent: event type, version, OS, Python version, file count, duration, issue count. What's NOT sent: code, file paths, file contents, project names, or any PII.
Disable with:
export HEFESTO_TELEMETRY=0
Support
- Email: support@narapallc.com
- GitHub Issues: Open an issue
- PRO/OMEGA: Priority support via email
Keywords: pre-commit code quality, AI generated code validation, semantic drift detection, Claude Code validator, GitHub Copilot quality gate, vibe coding safety net, code quality tool, developer tools LatAm, Peru startup, hefesto-ai, HefestoAI, open source code guardian
License
MIT License for core functionality. PRO and OMEGA features are licensed separately.
Hefesto: The code quality guardian built for the age of AI-generated code. 430 tests. 21 formats. 0.01s. Now with PR review.
(c) 2026 Narapa LLC, Miami, Florida
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 hefesto_ai-4.11.3.tar.gz.
File metadata
- Download URL: hefesto_ai-4.11.3.tar.gz
- Upload date:
- Size: 188.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9274d0f5e8d5d9ffe3a7f05c115f95249c911e3754d828059125b5b946cdaa06
|
|
| MD5 |
c39f946c1611282e2b989d8050683101
|
|
| BLAKE2b-256 |
1b476d36c765997cd648946666fdb271db51042ee6a9c519def667f244788c78
|
File details
Details for the file hefesto_ai-4.11.3-py3-none-any.whl.
File metadata
- Download URL: hefesto_ai-4.11.3-py3-none-any.whl
- Upload date:
- Size: 189.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf8e4446c01aca887fd49f82c38c416711b7610b3115ca53c33237d083d1f8c2
|
|
| MD5 |
0486c8ed957a11187c7436b6ccc92aad
|
|
| BLAKE2b-256 |
f8a6bd205678cf885b509596195198fd6343f57b46068d2d675ac267318b5f25
|