pip install drako && drako scan .

Scan for Free

Two scores, two audiences. Governance speaks to security teams — are your agents safe? Determinism speaks to engineers — will they behave the same way twice?

Reachability separates real risks from theoretical ones: a dangerous tool no agent actually calls is flagged, not screamed at you.

drako scan .                       # Full scan, both scores
drako scan --details               # Code snippets + fix suggestions
drako scan --benchmark             # Compare against 100 scanned projects
drako scan --baseline              # Acknowledge existing issues, only show new ones
drako scan --format sarif          # GitHub Code Scanning
drako scan --fail-on critical      # CI gate
drako scan --share                 # Generate shareable score card
drako fix --dry-run                # Preview auto-fixes
drako scan --diff HEAD~1           # Only scan changed files
drako history                      # view policy snapshot history
drako diff v2 v3                   # compare policy versions
drako rollback v2                  # restore previous policy

Agent BOM

Standalone inventory. No runtime, no network, pure AST.

drako bom .

Output formats: --format text (default) · json · markdown


Rules

97 deterministic rules across 16 categories. No LLM in the evaluation loop. Same code, same result, every time. Full rule reference →

Category Rules What it catches
Security SEC-001 → SEC-011 Hardcoded keys, prompt injection, code execution, filesystem/network access
Governance GOV-001 → GOV-011 No audit logging, no HITL, self-modifying prompts, no fallback
Compliance COM-001 → COM-005 EU AI Act Art. 9, 11, 12, 14 gaps
Determinism DET-001 → DET-007 Temperature not set, no timeout, no retry, no iteration limit, no seed
Vendor Concentration VCR-001 → VCR-003 Same vendor across model + framework + cloud + governance layers
Framework-Specific FW-001 → FW-010 CrewAI delegation risks, AutoGen code exec defaults, LangGraph state issues
Operational Boundaries ODD-001 → ODD-004 No boundary definition, unrestricted tools, no spend cap
Magnitude MAG-001 → MAG-003 No spend cap, no rate limit, unclassified data access
Identity ID-001 → ID-003 Static credentials, shared credentials, no identity
Multi-Agent MULTI-001 → MULTI-004 No topology, circular deps, no conflict protection
Hooks HOOK-001 → HOOK-003 No pre-action validation, no session-end gate
Versioning CV-001 → CV-002 No policy versioning, no audit policy reference
FinOps FIN-001 → FIN-003 No cost tracking, single model for all tasks, no cache
Resilience RES-001 → RES-002 No fallback for critical ops, no state preservation
A2A A2A-001 → A2A-003 No A2A auth, unvalidated inter-agent input
Best Practices BP-001 → BP-005 Outdated framework, no tests, too many tools

Vendor Concentration rules detect when your model, framework, and governance stack come from the same vendor — flagging audit independence risk that vendor-affiliated tools have no incentive to report.

Framework-Specific rules detect known governance gaps in the frameworks you use, including default configurations that ship insecure.

Scoring: start at 100, deduct per finding with caps per category. Grades: A (90-100) · B (75-89) · C (60-74) · D (40-59) · F (0-39)

TypeScript/JavaScript: 17 additional rules (SEC, GOV, COM, DET, ODD) apply when scanning TS/JS projects.

Install: pip install drako[typescript]


Advisories

Drako ships with 25 security advisories in the DRAKO-ABSS format (Agent Behavioral Security Standard) — covering OWASP Top 10 for LLMs, MITRE ATLAS techniques, and real CVEs from CrewAI, LangChain, and AutoGen.

Advisories appear inline in scan findings:

SEC-007  Prompt injection vulnerability       (agents/researcher.py)
         Related: DRAKO-ABSS-2026-001 — System Prompt Extraction
         Ref: OWASP LLM01:2025, MITRE AML.T0051

Each advisory includes: affected configurations, IOC pattern hashes for runtime matching, taint paths, and remediation mapped to Drako rules.

📄 Browse advisories → · ABSS format spec →


Baseline

Existing projects get 40+ findings on first scan. The baseline lets teams acknowledge known issues and focus only on new ones.

drako scan . --baseline            # save current state
drako scan .                       # only NEW findings from now on
drako baseline show                # what's baselined
drako baseline reset               # start fresh
  • Score always reflects all findings — real posture, not a filtered view
  • CI pass/fail is based on new findings only
  • SARIF marks baselined findings as "baselineState": "unchanged"
  • Baseline file commits to your repo — shared across the team

Observability Dashboard

Drako ships with a built-in observability dashboard at getdrako.com/dashboard. No external tooling required.

The command center gives you your full governance posture at a glance — audit entries, verified agents, policy blocks, and quota usage — with real-time auto-refresh.

Every agent run produces signals across four dimensions. Drako surfaces them as actionable intelligence, not raw logs:

Dimension What Drako shows you
Health Grade Unified A–F score combining latency, error rate, and governance overhead
Latency P50 / P95 / P99 percentiles with full time-series visualization
Violation Heatmap Hour-by-day grid that reveals where and when violations cluster
Drift Detection Automatic identification of behavioral drift across your agent fleet
Alert Rules Configurable thresholds with test-fire capability before going live

FinOps

Track and optimize your AI spend with per-model and per-agent cost breakdowns.

What you get:

  • Cost by Model — See exactly how much each LLM model costs you
  • Cost by Agent — Identify your most expensive agents
  • Budget Tracking — Set monthly budgets and track burn rate
  • Cache Hit Rate — Monitor how effectively your cache reduces costs

Deep dive: See docs/observability.md for the full architecture, all available metrics, and integration guide.


Desktop Agent Scanning

Scans the MCP servers declared in your AI coding tools — Claude Desktop, Cursor, VS Code, Windsurf, Claude Code, Codex CLI, Gemini CLI, and Kiro.

drako desktop scan          # Discover + scan all installed AI clients
drako desktop bom           # Export the BOM from the desktop agents
drako desktop govern        # Scan + activate proxy protection

8 deterministic rules covering shell/exec capabilities, plaintext credentials, unencrypted transport, elevated privileges, and unrestricted filesystem access. Fully offline and 100% deterministic. No network requests during scanning.

📄 Desktop scanning docs → View the complete documentation here


Configure

drako init                         # generate .drako.yaml from your scan
# .drako.yaml — pre-filled with YOUR agents and tools
governance_level: autopilot        # autopilot | balanced | strict

agents:
  researcher:
    source: agents/researcher.py
tools:
  web_search:
    type: read
  code_runner:
    type: execute                  # ⚠ flagged CRITICAL by scan

policies:
  odd:
    researcher:
      permitted_tools: [web_search, file_reader]
      forbidden_tools: [code_runner]
  dlp:
    mode: enforce
  circuit_breaker:
    failure_threshold: 5
  hitl:
    triggers:
      tool_types: [write, execute, payment]
      spend_above_usd: 100.00

Autopilot reads your scan, generates the config, starts in audit mode. When ready: drako upgrade --balanced enables enforcement.

Industry templates: drako init --template fintech · healthcare · eu-ai-act · startup · enterprise

📄 Full config reference → · Policy templates →


Runtime Enforcement

One line to protect agents in production:

from drako import govern
crew = govern(crew)    # every tool call passes through enforcement

Every tool call goes through a 13-stage pipeline before executing. If a tool is forbidden, carries PII, exceeds spend caps, matches a known threat, or needs human approval — blocked before it runs.

Key capabilities

  • 🔒 DLP — Presidio-based PII/PCI scanning. Critical PII blocked before reaching downstream APIs.
  • 👤 Human-in-the-Loop — Agent pauses on high-risk actions, escalates to human. Configurable triggers. EU AI Act Art. 14.
  • Circuit Breaker — Per-agent AND per-tool. One failing tool doesn't kill the whole agent.
  • 📋 Audit Trail — SHA-256 hash chain with Ed25519 signatures. Tamper-evident, exportable, regulator-ready.
  • 🌐 Collective Intelligence — Anonymous IOC sharing across deployments. One detection protects everyone. Sub-5s propagation.

📄 Full runtime docs → — covers all 20 capabilities including Trust Score, Intent Fingerprinting, ODD Enforcement, Magnitude Limits, FinOps, Secure A2A, Topology Monitoring, Chaos Engineering, Observability, Alerting, and OTEL/SIEM Export.


Out-of-process proxy

Zero code changes. The agent can't bypass what doesn't run in its process.

drako proxy start
export OPENAI_BASE_URL=http://localhost:8990/openai/v1

📄 Proxy docs → · Docker + Helm →


Autopilot Mode

Zero-config governance. One command, smart defaults from your scan.

drako init                     # autopilot (default) — audit-first
drako init --balanced          # enforcement active with escape hatches
drako init --strict            # maximum governance for enterprise
drako init --manual            # full YAML with all sections
drako init --template fintech  # start from industry template

Autopilot analyzes your project and generates a .drako.yaml pre-configured with:

  • ODD: Each agent locked to its discovered tools
  • DLP: Audit mode (logging PII, not blocking yet)
  • Circuit Breaker: Threshold 5 failures / 60s window
  • HITL: Active for write/execute tools (auto-allow on timeout)
  • FinOps: Cost tracking enabled

Everything starts in audit mode. When you're ready for enforcement:

drako upgrade --balanced    # DLP enforce, ODD enforce, HITL reject on timeout
drako upgrade --strict      # + intent verification, cryptographic audit, magnitude enforce

CI/CD

GitHub Action

The Drako GitHub Action posts inline PR comments on the exact lines where issues are found, uploads SARIF to Code Scanning, and gates merges on governance score.

# .github/workflows/drako.yml
name: Drako Governance
on: [push, pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: "3.12" }
      - run: pip install drako
      - run: drako scan . --format sarif > results.sarif
      - run: drako scan . --fail-on critical --threshold 70
      - uses: github/codeql-action/upload-sarif@v3
        with: { sarif_file: results.sarif }
        if: always()

Pre-commit hook

# .pre-commit-config.yaml
- repo: https://github.com/DrakoLabs/Drako
  hooks:
    - id: drako-scan

Supported Frameworks

Framework Detection Specific Rules
CrewAI AST FW-001 → FW-003 (code exec, memory isolation, delegation)
LangGraph AST FW-004 → FW-005 (unrestricted ToolNode, no checkpointing)
AutoGen AST FW-006 → FW-007 (LocalCommandLineCodeExecutor, no output validation)
Semantic Kernel AST FW-008 → FW-009 (auto-imported plugins, no cost guard)
PydanticAI Import FW-010 (untyped tool returns)
LlamaIndex Import General rules
LangChain Import General rules
TypeScript/JavaScript Tree-sitter LangChain.js, Vercel AI SDK, Mastra, AutoGen.js (pip install drako[typescript])

EU AI Act

High-risk system rules take effect August 2, 2026.

Article Requirement How Drako covers it
Art. 9 Risk management 97 scan rules, ODD enforcement, magnitude limits
Art. 11 Technical documentation Agent BOM, compliance reports, context versioning
Art. 12 Record-keeping Cryptographic audit trail with policy snapshot references
Art. 14 Human oversight HITL checkpoints, programmable hooks, escalation policies

📄 Compliance report generation →


Performance

97 rules, 10,000 iterations, time.perf_counter_ns(), after 1,000 warmup:

Scenario P50 P99
Single rule 0.031ms 0.08ms
Full scan (97 rules) 2.1ms 3.8ms
Batch (100 tool calls) 1.79ms 2.8ms

Governance overhead: <0.3% of a typical LLM call.


Policy Templates

Industry-specific governance presets. Start from a template, override what you need.

drako templates list              # show available templates
drako templates show fintech      # preview a template
drako init --template healthcare  # init with template

Available templates:

Template Focus
base Sensible defaults for any project
fintech PCI compliance, spend caps, strict DLP
healthcare HIPAA alignment, PHI detection, audit trails
eu-ai-act EU AI Act Articles 9, 11, 12, 14 compliance
startup Lightweight audit-first governance
enterprise Maximum governance, intent verification, A2A security

Templates support inheritance via extends::

# .drako.yaml
extends: fintech
governance_level: balanced
# Your overrides here — template provides the base

See It in Action

git clone https://github.com/drakolabs/drako.git
cd drako/examples/demo-crewai
pip install drako
drako scan .

The demo project has intentional governance gaps and scores ~35 (Grade F). See what Drako finds.


Roadmap

  • Beyond Python — Go SDK next. TypeScript/JavaScript already supported. If it makes a tool call, Drako governs it.
  • Compliance packages — SOC 2 Type II audit evidence, ISO 42001 templates.

Drako is actively developed and moving fast. If you're deploying AI agents to production, watch the repo — or better, run the scan and see what it finds. 📄 Full roadmap →


License

BUSL-1.1. Free to use in production. Cannot offer governance capabilities as a competing hosted service. Converts to Apache 2.0 four years after release. See LICENSE.


Contributing

Every rule requires a positive fixture, a negative fixture, and a standard reference. See CONTRIBUTING.md.