Heeler vs Endor Labs.
Agentic Development Security — one context engine that unifies code, dependencies, runtime, and cloud into a single model to prevent, fix, and operate, versus Endor Labs, a software-supply-chain and AppSec platform whose runtime and exposure picture comes from exporting to a CNAPP.
One model across code, dependencies, runtime, and cloud — not reachability on the code side.
Heeler assembles six dimensions of context — code, cloud/runtime, business, ownership, threat, and agent — into one read-only, sensor-less model, then prioritizes by real runtime exposure and remediates with fixes built and repaired in your CI until green, closed only when the running deployment confirms it.
Endor Labs is a software-supply-chain and AppSec platform: static call-graph reachability, its own vulnerability database, rule-based and AI SAST, validated secrets, AI/ML-model scanning, an install-time package firewall, and backported patches — on the code and dependency side.
Endor keeps real ground on the firewall and backported patches; Heeler pulls ahead wherever runtime exposure drives prioritization, remediation, and closure.
One code-to-cloud context engine, or reachability-first on the code side.
Heeler runs one context engine across code, dependencies, runtime, and cloud, prioritizes by real internet exposure, and proves every fix green in your CI before verifying closure in production — Endor is reachability-first on the code side, with its runtime and exposure picture exported from a separate CNAPP.
Reachability-first supply-chain & AppSec
Secure the code and dependencies.
- →Static call-graph reachability across many languages; its own daily vulnerability database; rule-based + agentic AI SAST; validated secrets; AI/ML-model scanning
- →Endor Patches (backported fixes without an upgrade) and an install-time Package Firewall — real capabilities Heeler doesn't match
- →Automated upgrade PRs with static breaking-change prediction; SBOM/VEX; Agent Kit + MCP + AI Security Review
- →Runtime and internet-exposure context comes from exporting to a CNAPP (Wiz, Microsoft Defender for Cloud); much of the platform is SKU-gated
Context-engine native, service-modeled
Prevent, Fix, and Operate on one runtime-aware model.
- →One context engine across six dimensions (code, cloud/runtime, business, ownership, threat, agent), sensor-less and read-only — runtime exposure is a native input
- →Its own detection — SAST, build-emulation SCA (14 ecosystems), validated secrets, agent-file governance — plus an MCP server, Agent Skills, and a CLI
- →Prioritizes by runtime reachability and internet exposure; remediation is built in a sandbox and repaired in your CI until green
- →Guardrails gate new risk at the PR; workflows operate to a runtime-verified close with per-finding SLOs
Side-by-side, with a verdict per row.
Five states. Heeler-leaning where Heeler advances; explicit when Endor leads; honest about parity.
Heeler advantage
Heeler delivers a capability Endor does not, or in a fundamentally different way that changes outcomes.
Heeler edge
Both deliver the capability. Heeler's implementation is materially better on a verifiable dimension.
Parity
Both products deliver the capability comparably.
Endor edge
Both deliver the capability. Endor's implementation leads on a verifiable dimension.
Endor advantage
Explicit signal that Endor leads on this row.
Scorecard — 27 capabilities, scoped to code security
| Section | ● Heeler advantage | ◐ Heeler edge | ✓ Parity | ◑ Endor edge | ○ Endor advantage |
|---|---|---|---|---|---|
| Prevent | 1 | 2 | 1 | 0 | 1 |
| Fix | 3 | 1 | 0 | 0 | 1 |
| Operate | 9 | 3 | 5 | 0 | 0 |
| Total | 13 | 6 | 6 | 0 | 2 |
| Capability | Heeler | Endor Labs | Verdict |
|---|---|---|---|
| Prevent · stop risk before and as it enters | |||
| Security at AI code generation | Heeler's MCP server hands the coding agent its runtime-aware context as it writes — 30+ tools exposing live SAST, SCA, and secrets findings, endpoint exposure, runtime and deployment risk, guardrail status, and SLO pressure, plus named secure-development prompts — and can trigger Heeler's validated remediation with the right scope. Drop-in Agent Skills and the CLI cover the same surface locally, for Claude Code, Cursor, Codex, Windsurf, Zed, and VS Code. The edge is the context: an agent sees what's deployed and internet-facing, not just dependency risk. | Endor's Agent Kit installs ready-made Endor security agents (SCA remediation, AI SAST triage, dependency-decision, package-risk, upgrade-impact, malware-response, and more) as plugins into Claude Code, Cursor, Codex, and Gemini, backed by an MCP server (dependency vuln/risk lookups, scan, and an Enterprise-only diff security review) and an AI Security Review that scans a PR diff with an AI model and comments on it. | ◐ Heeler edge |
| CLI / local developer scanning | The heelercli runs local scans across the full surface — SAST, SCA, secrets (with live validation), license, and malicious-package checks — with non-zero exit for pre-commit and CI, SARIF output, and policy-as-code. | endorctl runs SCA, SAST, secrets, container, and GitHub-Actions scans locally and in CI, with SBOM export, artifact signing, and an MCP-server mode. | ✓ Parity |
| PR guardrails & policy enforcement | Block / Warn / Observe guardrails post a native status check on GitHub, GitLab, Bitbucket, and Azure DevOps and gate PRs on new dependency vulnerabilities, dependency hygiene (unpinned, minimum-age, compromised), SAST, secrets, license, and SLO breaches. Two things set them apart: a guardrail can be scoped by runtime context — enforce only on Tier-1, production, or internet-facing services — and it ships a validated fix committed straight into the PR branch. Block relies on SCM branch protection to enforce. | Action policies can Warn or Break the Build (non-zero exit) and route notifications; blocking a merge requires the Endor PR check be set as a required status check in the SCM. Finding policies gate SCA, SAST, secrets, license, container, and GitHub-Action findings, written from templates or in OPA Rego — flexible policy authoring, but without runtime/exposure scoping or an in-PR fix (remediation opens as a separate PR). | ◐ Heeler edge |
| Install-time package firewall | Heeler improves install-time posture through the package manager itself. Its Package-Manager Cooldown drives each manager's native minimum-release-age setting (npm, pnpm, Yarn, Bun, uv, pip, Deno) — committed to every repo root and set globally on developer laptops — so a too-new version, where most supply-chain attacks live, is refused at the point of installation on both laptops and CI runners, before a PR exists. It's the client-side complement to Heeler's PR-time minimum-age guardrail and its auto-fix age gate. It is not a registry proxy and doesn't intercept installs to block known malware the way a firewall does. | Endor Package Firewall is a real-time proxy between package managers and public registries that blocks malicious packages at install time, across the full transitive tree, with Block/Warn policies on malware, CVSS threshold, restricted licenses, and minimum package age. Deployed via JFrog Artifactory, Google Artifact Registry, direct integration, or MDM push; npm, PyPI, Go, and Maven. | ○ Endor advantage |
| IaC pull-request guardrails | Heeler evaluates the Infrastructure-as-Code findings introduced by a pull request instead of failing a change because of pre-existing repository debt. It returns a native source-control check controlled by program policy: Observe records the violations and the decision that would have been made, Warn reports them without preventing merge, and Block fails the check so repository rules can require it. The same policy can move from observation to enforcement without creating separate rules or CI logic. | No documented capability. | ●Heeler advantage |
| Fix · resolve findings — code and dependencies | |||
| SAST autofix | Deterministic, strategy-matched transforms (Parameterize / Escape / Allowlist / Path-Normalize) anchored to the exact source-to-sink flow, precomputed per finding on every scan, confidence- and effort-scored, and delivered as PRs validated the same way as dependency fixes (sandbox build + CI repair). Findings needing an architectural change get written guidance instead. | Endor's AI SAST detection agent emits a suggested fix diff with each finding, and the Agent-Kit AI SAST triage agent can open a change request on request; there is no automated SAST-fix PR pipeline. | ◐ Heeler edge |
| SCA autofix (upgrades) | Deterministic, multi-signal upgrade selection over the resolved graph — Heeler picks the version that clears the most risk with the least disruption (no new known vulnerabilities, proven adoption, cleared minimum-age cooldown), and for transitive vulns finds the smallest bump to the direct ancestor you control (npm, Go, Cargo). Every fix is built in a sandbox and repaired through your CI until green before merge. Auto-fixable across Java, Go, JavaScript, Python, and C#. | Endor opens automated upgrade PRs driven by a remediation policy, choosing the version via Upgrade Impact Analysis (which predicts breaking changes and conflicts statically) across Java, Go, Python (pip), .NET, and JavaScript, with documented ecosystem limitations and up to 20 PRs per project. It doesn't build or test the change itself. | ● Heeler advantage |
| Backported / in-place dependency patches | Not offered. Heeler remediates by upgrading to a safe version (multi-signal selection) and proving it in CI; it doesn't ship a patched build of the same version. | Endor Patches backports a minimal security fix onto an older version so you can clear a CVE without a full upgrade — delivered as patched artifacts through a hosted Maven repository or proxied via JFrog Artifactory / Sonatype Nexus, with reproducible-build and test attestations and auditable diffs; auto-patching substitutes patched artifacts in on every build. Documented for Java/Maven. | ○ Endor advantage |
| Validated, merge-ready fixes (build + CI repair) | Heeler validates every fix twice: a real build in an isolated sandbox with your project's toolchain before the PR (mvn/Gradle, npm/pnpm/Yarn, pip/uv/Poetry, go build, dotnet), then — once the PR is open — it runs your CI and repairs its own build/test failures with up to five follow-up commits until green, or hands off with an explanation. Draft PR if the sandbox build didn't pass; human review, no auto-merge. | Endor predicts an upgrade's breaking-change and conflict risk statically via Upgrade Impact Analysis and opens the PR; the docs note that the absence of predicted issues does not guarantee the change won't break the application. It doesn't build the project, run tests, or repair CI — that validation is left to your pipeline and review. | ● Heeler advantage |
| Policy-managed remediation memories | Heeler stores administrator-approved remediation guidance as memories in program policy and scopes each memory to an organization or repository. On later remediation runs, the Remediation Agent retrieves the applicable memories and applies the repository’s conventions and constraints when generating a fix. The guidance is centrally governed and reusable; it is not a one-off prompt, a triage-suppression rule, or generic model memory. | No documented capability. | ●Heeler advantage |
| Operate · detect, prioritize, and run the program | |||
| SAST detection | Path-aware, interprocedural source-to-sink taint analysis — cross-function, cross-file dataflow, not single-function pattern matching — from Heeler's own engine, with detection rules adapted per codebase and automatic triage, included by default and deterministic. | Rule-based SAST powered by Opengrep (a Semgrep fork), plus an AI SAST detection agent (Pro tier) that uses full-repo LLM analysis to find multi-step logic and authorization flaws rule-based can't express, and a triage agent that classifies findings true/false-positive. | ◐ Heeler edge |
| Dependency vulnerability (CVE) detection | Build-emulation SCA across 14 ecosystems (no lockfile or build required) — direct, transitive, first-party, and bundled dependencies — matching CVEs with CVSS, EPSS, and known-exploited signals, plus GitHub Actions as a first-class ecosystem. | SCA across 12+ languages with build/manifest-based resolution of direct and transitive dependencies (phantom dependencies for Python, JS, and C/C++), matched against Endor's own daily-updated vulnerability database (OSV/GHSA plus proprietary research and enrichment). | ✓ Parity |
| Supply-chain attack & malicious-package detection | Heeler detects compromised/malicious and typosquatted packages (package-risk intelligence plus a malicious-package CLI and Agent Skill), unmaintained projects (OSSF Scorecard), too-new versions (minimum-age), unpinned versions, and downgrades — and treats the CI/CD supply chain as first-class, scoring GitHub Actions on pin status, publisher trust, and provenance/attestation with integrity checks (impostor commits, typosquats, abandoned sources) and workflow attack-path analysis. | Endor detects malicious packages by cross-referencing OSV and a proprietary malware feed and by running malware- and SAST-rule analysis over the dependency's own code for suspicious patterns, with typosquatting signals and a dependency-path view; it maintains its own daily vulnerability database and scans GitHub Actions for vulnerable or malicious actions and workflow risks (imposter commits, script injection, unsafe triggers). | ✓ Parity |
| Secrets detection & validation | First-class secrets: full git-history scanning across all branches with commit attribution, active live validation (read-only calls to the issuing provider; an active secret is weighted as maximal impact), offline structural validation, and rule- plus entropy-based detection across hundreds of credential types. | Endor detects secrets in source and full git history with a keyword → regex → entropy pipeline and active validation (an HTTP request to the issuing service; a live secret is raised Critical), a large built-in ruleset plus custom validators, and cross-file/branch deduplication. Remediation is revoke/rotate guidance. | ✓ Parity |
| Dependency reachability & noise reduction | Heeler treats a dependency vuln as reachable only when two independent checks agree: runtime reachability (the library is loaded in a running deployment) and, for six ecosystems (Go, Java, Python, JS/TS, Rust, Ruby), static call-graph reachability to the vulnerable functions. Unreachable findings are auto-mitigated; where call-graph isn't supported it uses runtime reachability and errs toward reachable. | Endor's function-level reachability builds static call graphs from your code to the vulnerable function (Java, Python, JS/TS, .NET, Kotlin, Scala, and Go), with precomputed no-build reachability for transitive dependencies as a fallback and dependency-level reachability elsewhere. Static analysis across Java, Python, JS/TS, .NET, Kotlin, Scala, and Go. | ✓ Parity |
| Runtime-aware prioritization | Heeler Risk (Urgent / Plan / Defer) ranks SAST and SCA findings by real exposure — assessed differently for each. For SCA, a vuln must clear a gate: reachable (runtime-loaded, plus a call-graph path where supported) and internet-exposed (an active deployment on internet-reachable compute), then scored by compromise and chaining. For SAST, exposure is path-driven from an internet-facing entry point, behind authentication, touching sensitive data. Both are weighted by service tier and threat (KEV/EPSS for dependencies; CWE class for code), with a per-finding SLO, re-scored continuously as deployments change. | Endor prioritizes by reachability, severity, EPSS, CISA KEV, fix availability, and its package scores. It has no native cloud/runtime or internet-exposure signal — code-to-runtime attack paths and internet-reachable-workload context come only from exporting findings to a CNAPP (Wiz or Microsoft Defender for Cloud) or from a manual project exposure tag. | ● Heeler advantage |
| Cloud, runtime & business context | Heeler builds and maintains its own model of where code runs — across AWS, GCP, Azure, Kubernetes, and Vercel, with containers, VMs, and serverless fingerprinted, each deployment mapped to the exact running changeset, internet-accessibility auto-detected, service tier (1–4) and prod/non-prod boundaries classified, and ownership resolved to the owning team (Tech Lead / Security Lead) across application, service, repo, and finding — all read-only, no sensors or agents. This is the context that makes exposure, prioritization, and routing real. | Not offered natively. Endor is code-, CI-, and container-centric; it has no cloud asset inventory, deployment-topology model, service-tier or ownership model, or native internet-exposure — that context is obtained only by exporting findings to a CNAPP (Wiz or Microsoft Defender for Cloud), which owns the cloud graph. | ● Heeler advantage |
| Endpoint & API attack-surface discovery | Heeler enumerates every endpoint from source — REST, GraphQL, gRPC, SOAP, and WebSocket, plus the MCP tools/resources/prompts and Spring Boot actuator routes your code exposes — capturing each one's authentication posture and computing internet-accessibility from deployment topology, so your externally reachable, unauthenticated surface is inventoried with no runtime agents or traffic capture. | Not offered. Endor has no application endpoint or API discovery — it models packages, code findings, containers, and CI, not your application's external interface. | ● Heeler advantage |
| AI supply-chain security | Heeler detects every MCP server your code exposes across Python, TypeScript, JavaScript, Go, Java, C#, and Rust and catalogs the tools, resources, and prompts each exposes to agents, its transport (stdio / SSE / Streamable HTTP), SDK and spec versions, and advertised capabilities — classifying each by network exposure so a Public, unauthenticated MCP transport surfaces as internet-reachable attack surface alongside your other endpoints. It also governs agent instruction/config files with 0–100 risk scoring (see below). | Endor discovers AI/ML models used in your code, maintains a Hugging Face organization inventory (including private models), and scores models on security (safetensors vs pickle, typosquatting, example code), activity, and popularity, with policies for low-score models, restricted models, and restricted providers. | ✓ Parity |
| Agent-file detection & governance | Heeler inspects pull-request changes to agent instructions, skill files, hooks, subagents, and MCP configuration, including CLAUDE.md, AGENTS.md, and SKILL.md. It combines deterministic checks, LLM-based intent analysis, and analysis of external references to identify prompt injection, tool poisoning, unsafe command execution, secret access or exfiltration, permission bypass, and related agent-control risks. The evidence and verdict are returned through Observe, Warn, or Block before the changed artifact is trusted by coding agents. | No documented capability. | ●Heeler advantage |
| SBOM & dependency inventory | A live dependency inventory and CycloneDX SBOMs at five scopes — including runtime SBOMs per running service and per deployment, built from real runtime context — alongside global, application, and repository scopes. | Endor exports CycloneDX and SPDX with VEX (reachability-driven not-affected statements) and Endor-Patch pedigree, imports third-party SBOMs, and offers an SBOM hub — all built from source/build and container scans, with no runtime SBOM from running services. | ◐ Heeler edge |
| Automated response workflows & routing | A standing when-this-then-that engine across the whole estate: one trigger (new finding, fix available, compromised dependency, new secret, license violation, at-risk agent file, SLO expiring, PR merged with unresolved guardrail violations, and more) — AND-combined conditions — up to three chained actions that share context. Actions span messaging (Slack, Teams, Google Chat, email), ticketing (Jira, Linear, GitHub, Shortcut — de-duplicated and state-synced), and domain actions (Fix with Heeler Agent, Update SLO Override, Generate SBOM, Webhook), routed to the owning team — so one rule can fix a finding, open the ticket, and announce the PR. Built in plain English, with suggested-workflow gap detection and per-workflow health and run history. | Endor automates response through action policies (Warn / Break-the-Build / Send Notification), automated Jira/Linear ticketing rules (create / update / resolve on alert events, with priority mapping), remediation policies that gate auto-upgrade PRs, plus Slack and webhooks — policy- and ticketing-driven, without a general trigger-condition-chained-action workflow engine, owning-team routing, or fix-agent / SLO / SBOM actions inside the workflow. | ● Heeler advantage |
| SLOs & runtime-verified closure | Every tracked finding under an SLO policy carries a per-band (Urgent / Plan / Defer) SLO clock; SLO-expiring and override-expiry events trigger workflows, and an Update SLO Override action can extend a due date automatically. Findings run Active → Fixed → Deployed, and closure is runtime-verified — a fix reaches Deployed only once the running deployment confirms the vulnerability is actually gone, not merely merged. | Endor closes findings state-based — when a subsequent scan no longer detects them, and linked Jira issues auto-resolve. There is no SLO engine and no runtime-verified closure in the docs; 'fixed' means absent on the next scan. | ● Heeler advantage |
| Sensitive-data inventory | Heeler analyzes application source to identify the sensitive data types handled by the code and records them in the application catalog. Each data type is connected to the repositories, services, APIs, and owning teams that process it, together with business criticality and available deployment or exposure context. A reviewer can move from a data type to the applications and interfaces that handle it and evaluate that data-handling risk with the same ownership and runtime context used for other application-security findings. | No documented capability. | ●Heeler advantage |
| Infrastructure-as-Code findings | Heeler evaluates Infrastructure-as-Code against policy and creates a persistent finding for each violation. The finding retains the affected file or infrastructure resource and links it to the repository, application, owning team, business criticality, and any connected cloud or runtime object. The same finding is used for prioritization, lifecycle tracking, workflow routing, pull-request guardrails, and remediation instead of remaining a one-time CI scanner result. | No documented capability. | ●Heeler advantage |
| GitHub audit-log behavioral checks | Heeler ingests the GitHub organization audit log for each connected organization and evaluates defined patterns across the resulting source-control events. A match creates a native finding that retains the actor, action, affected repository or organization, timestamp, and matching event context. The finding enters Heeler’s ownership, prioritization, investigation, workflow, and lifecycle tracking rather than remaining a searchable or exported log event. | No documented capability. | ●Heeler advantage |
| OpenSSF Scorecard repository health | Heeler records the repository’s OpenSSF Scorecard result and each check outcome on the repository object in the catalog. The same repository view links the signal to applications, ownership, vulnerabilities, dependency health, provenance, deployment, and exposure context. Teams can inspect which Scorecard checks reduced the result and evaluate repository-maintenance risk in relation to the applications that use the repository instead of treating the score as an external badge. | Endor Labs repository quality and security scores include OpenSSF-derived factors and an OpenSSF Scorecards badge signal. Its documentation does not expose the individual Scorecard check outcomes as repository-catalog context. | ◐Heeler edge |
Where a runtime-native engine beats a code-first platform.
Every one of these maps back to the context engine — not features bolted onto a scanner.
Native runtime and cloud context, not a CNAPP export
Endor is code-, CI-, and container-centric; its runtime and internet-exposure picture — the 'this vuln runs on an internet-reachable workload' story — comes from exporting findings to Wiz or Microsoft Defender for Cloud, which own the cloud graph. Heeler computes that context itself, on one engine across six dimensions (code, cloud/runtime, business, ownership, threat, agent), read-only and sensor-less, so exposure is a native input, not a partner integration.
Prioritize by runtime exposure, not static reachability alone
Endor's reachability is static call-graph plus EPSS and KEV — it can't natively tell whether the affected service is deployed, internet-facing, or handling sensitive data. Heeler gates on runtime-loaded reachability AND internet exposure for dependencies, and traces SAST exposure from a real internet-facing entry point, so a live, exposed finding ranks above a dormant one that looks identical on paper.
Remediation proven in your CI, not predicted statically
Both open dependency PRs. Endor predicts an upgrade's breaking-change risk statically (Upgrade Impact Analysis) and notes that a clean prediction doesn't guarantee the build won't break. Heeler builds every fix in an isolated sandbox and then repairs its own CI failures until green — for code and dependencies — before a human merges it.
Remediate by upgrading, not patching around the problem
Endor Patches backports a fix onto the version you're already on. That's useful when you genuinely can't upgrade — but it's a workaround with real costs: you stay on an unmaintained, diverged build that only Endor's factory produces (a new third-party dependency in your own supply chain), you miss the other fixes the maintained releases carry, coverage is Java/Maven-centric, and it can quietly defer the upgrade you'll have to do eventually. Heeler instead performs the real upgrade — selecting the version that clears the most risk with the least disruption and proving it in your CI until green — so you land on a supported release, not a patched fork of an old one.
Operate to a runtime-verified close
Heeler moves findings Active → Fixed → Deployed and closes an SLO only when the running deployment confirms the vulnerability is actually gone. Endor closes findings state-based — a finding disappears when the next scan no longer sees it — with no runtime confirmation the fix took effect and no SLO engine.
One platform running the whole loop with runtime
Endor covers a lot — SCA, SAST, secrets, AI models, patches, firewall — on the code and supply-chain side. Heeler runs the whole loop (prevent, detect, prioritize, fix-and-prove, operate to verified closure) on a single runtime-aware context engine, at machine speed for the AI SDLC, so the runtime picture drives prioritization, remediation, and closure end to end rather than being assembled from exports.
See Heeler across your AI SDLC.
Heeler secures the whole AI SDLC — not just code. A demo runs it against your real repos and cloud: detection across the surface, the runtime map, prioritization, validated remediation PRs, and the agent-file catalog. If Endor is scanning your code and dependencies today, we can show what the native runtime context adds on top.
