Core-limited worker pool built in Go for concurrent engine execution. Orchestrates OpenGrep, Trivy, Bandit, Brakeman, Gostaticcheck, and Fraunhofer CPG.
Overlay security analysis with AI context using OpenAI-compatible endpoints to explain impact and write customized fixes directly in your reports.
No more juggling tool-specific logs. Normalizes all findings into a clean, unified schema supporting JSON, SARIF, and static HTML with smart deduplication.
Why Code Property Graphs (CPG)?
Standard SAST tools rely on shallow regex-based grepping or isolated syntax parsing (AST). They flag keyword matches but miss how data moves. Checkmate implements the Code Property Graph (CPG) framework via Fraunhofer CPG to combine code structure, control pathways, and data flows into a unified analysis model.
Go Self-Hosted Web Platform
Prefer a visual dashboard over the terminal? Checkmate includes **checkmate-web**, a lightweight, self-hosted web interface built to run natively in your own environment.
- ✦ Interactive dashboard to manage and trigger scans
- ✦ Visual historical trends and vulnerability tracking over time
- ✦ Easy local setup using Docker with zero compilation needed
# Run the self-hosted platform locally
docker run -d \
--name checkmate-web \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
marcinguy/checkmate-web
# Web app running at:
http://localhost:8080
Usage Examples
# Run parallel scan with 8 jobs
./checkmate-go --code-dir ./src --strategy parallel --jobs 8
# Full report with LLM enrichment
./checkmate-go \
--code-dir ./project \
--llm-enrich \
--llm-model gpt-4.1-mini \
--sarif-out results.sarif \
--html-out results.html
Strategies & Tools
- ✓ Sequential: Predictable, step-by-step scanner execution.
- ✓ Parallel: High-speed concurrent execution using a Go worker pool.
-
✓
Auto-Install: Automatically download and configure missing local tooling dependencies using the
--install-missingflag.
Deployment Ready
Ready-to-use templates for cloud-scale automated scanning:
Built with Security in Mind
Checkmate isolates every scan worker in its own hardware-enforced microVM (CubeOS / KVM), so untrusted code that attempts a container escape is confined to a single ephemeral VM rather than shared host resources.
This is defense in depth: an independent isolation layer that protects you even when the host kernel or Docker runtime is not fully patched.