The pytest of AI compliance. Runs in your CI/CD pipeline. Ships in 10 seconds.
β° EU AI Act high-risk enforcement: August 2, 2026
Non-compliance: up to β¬35M or 7% of global turnover. Annex IV documentation alone takes 3β6 months manually. Squash does it in 10 seconds.
pip install squash-ai
squash demoββββββββββββββββββββββββββββββββββββββββββββββββββββ
Squash violations, not velocity.
Running demo attestation on sample BERT modelβ¦
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Model: bert-base-uncased (sample)
Policy: eu-ai-act
β
Attestation PASSED
Artifacts generated:
cyclonedx-mlbom.json 48,392 bytes
sbom.spdx.json 22,104 bytes
attestation.json 3,841 bytes
annex-iv-technical-documentation.md 18,299 bytes
provenance.json 1,203 bytes
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
This is squash. It runs in CI in <10 seconds.
pip install squash-ai && squash attest ./your-model
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Community (free, Apache 2.0)
pip install squash-ai
# With REST API server
pip install "squash-ai[api]"
# Full feature set
pip install "squash-ai[api,signing,sbom]"- uses: konjoai/squash@v1
with:
model-path: ./my-model
policy: eu-ai-act
fail-on-violation: trueinclude:
- remote: 'https://raw.githubusercontent.com/konjoai/squash/main/integrations/gitlab-ci/squash.gitlab-ci.yml'squash attest ./my-model \
--policy eu-ai-act \
--policy nist-ai-rmf \
--sign \
--fail-on-violationOutput:
β CycloneDX 1.7 ML-BOM β cyclonedx-mlbom.json
β SPDX 2.3 SBOM β sbom.spdx.json
β EU AI Act Annex IV: PASS β annex-iv.md
β NIST AI RMF: PASS (42/42)
β OWASP LLM Top 10: PASS
β SLSA Level 2 provenance β provenance.json
β ModelScan: PASS (0 findings)
β Signed via Sigstore Rekor
| Without Squash | With Squash |
|---|---|
| Annex IV documentation: 3β6 months | Annex IV documentation: 10 seconds |
| Compliance consultant: β¬150Kββ¬400K/yr | Squash Professional: $299/month |
| Manual risk assessment per model | squash attest ./model --policy eu-ai-act |
| Violation discovered in audit | Violation blocked in CI before merge |
| Zero visibility | squash_models_compliant_ratio 0.979 in Grafana |
| Capability | Detail |
|---|---|
| EU AI Act Annex IV | All 12 required documentation sections, auto-generated |
| CycloneDX 1.7 ML-BOM | Machine-readable model bill of materials |
| SPDX 2.3 SBOM | Full dependency and lineage graph |
| 10+ Policy Frameworks | EU AI Act Β· NIST AI RMF Β· ISO 42001 Β· OWASP LLM Top 10 Β· FedRAMP Β· CMMC |
| ModelScan Security | Pickle exploits, serialization attacks, unsafe ops |
| Sigstore Signing | Keyless signing via Rekor transparency log |
| SLSA Provenance | Level 1β3 provenance attestation |
| VEX Feed | Live CVE tracking for deployed AI model components |
| Drift Detection | Alerts when model behavior diverges from attested baseline |
Prometheus /metrics |
Grafana-compatible attestation counts, violations, latency |
| Slack / Teams Alerts | Webhook notifications on violations, drift events, CVE hits |
| JIRA / Linear / GitHub Issues | Auto-creates tickets on policy violations |
| FastAPI / Django Middleware | X-Squash-Compliant header on every inference response |
| Compliance Badge |  |
squash watch |
Re-attests on model file change β continuous local compliance |
squash install-hook |
git pre-push hook β blocks non-compliant pushes |
| 10 MLOps Integrations | MLflow Β· W&B Β· HuggingFace Β· LangChain Β· SageMaker Β· Vertex AI Β· Ray Β· Kubernetes |
| Open-core | Community tier free forever under Apache 2.0 |
squash init ./my-model
# Auto-detects PyTorch / TensorFlow / JAX / MLflow / HuggingFace
# Writes .squash.yml, runs a dry-run attestationAvailable statuses: compliant Β· non-compliant Β· partial Β· unknown
Available frameworks: eu-ai-act Β· nist-ai-rmf Β· iso-42001 Β· anything
| Framework | Status | Key Checks |
|---|---|---|
| EU AI Act (Annex IV) | β Full | Technical documentation, risk classification, human oversight |
| NIST AI RMF 1.0 | β Full | 42 controls: GOVERN Β· MAP Β· MEASURE Β· MANAGE |
| OWASP LLM Top 10 | β Full | LLM01βLLM10 vulnerability categories |
| ISO 42001 | β Core | Clause 6, 8, 9 |
| NTIA Minimum Elements | β Full | 7 required SBOM fields |
| FedRAMP AI | β Core | Federal AI procurement requirements |
| CMMC Level 2 | β Core | DoD contractor AI requirements |
from squash import AttestPipeline, AttestConfig
result = AttestPipeline.run(AttestConfig(
model_path="./my-model",
policies=["eu-ai-act", "owasp-llm"],
sign=True,
fail_on_violation=True,
))
print(f"Passed: {result.passed}")
print(f"Attestation ID: {result.attestation_id}")pip install "squash-ai[api]"
uvicorn squash.api:app --host 0.0.0.0 --port 4444
curl -X POST http://localhost:4444/v1/attest \
-H "Authorization: Bearer $SQUASH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model_path": "/models/bert-base", "policies": ["eu-ai-act"]}'# HELP squash_attestations_total Total attestation runs
squash_attestations_total{result="passed",policy="eu-ai-act"} 142
squash_models_compliant_ratio 0.979
squash_api_latency_seconds_bucket{le="0.1"} 138
| Tier | Price | Attestations/mo | Features |
|---|---|---|---|
| Community | Free | 10 | Full CLI, SBOM, policy checks, signing, self-hosted |
| Professional | $299/mo | 200 | Cloud API, Annex IV auto-generation, drift alerts, Slack/Teams |
| Startup | $499/mo | 500 | Everything in Pro + VEX read, 3 users, GitHub Issues ticketing |
| Team | $899/mo | 1,000 | Multi-tenant, SAML SSO, HITL workflows, audit export |
| Enterprise | Custom | Unlimited | On-premise, air-gapped, EU data residency, dedicated support |
squash attest ./my-model
β
βββ ModelScanner β Security scan (pickle, unsafe ops, CVEs)
βββ CycloneDXBuilder β ML-BOM (CycloneDX 1.7)
βββ SpdxBuilder β SBOM (SPDX 2.3)
βββ PolicyEngine β EU AI Act Β· NIST Β· OWASP Β· ISO checks
βββ SlsaBuilder β SLSA Level 1β3 provenance
βββ AnnexIVGenerator β All 12 Annex IV sections (MD/HTML/PDF)
βββ VexEvaluator β Live CVE vulnerability feed
βββ OmsSigner β Sigstore keyless signing
βββ DriftDetector β Baseline behavioral comparison
βββ AttestPipeline β Signed audit record (JSON)
git clone https://github.com/konjoai/squash
cd squash
pip install -e ".[api,signing,sbom,dev]"
# Run all tests (2,299 passing)
python -m pytest tests/ -v --timeout=120
# Try it immediately
squash demo
# Watch mode
squash watch ./my-modelCommunity edition: Apache 2.0
Enterprise features (cloud API, multi-tenant dashboard, VEX feed, on-premise) are available under a commercial license. Contact β
Built by Konjo AI Β· "Squash violations, not velocity."