Protect Your Code
Before It's Built.
SENTINEL is an enterprise-grade forensic engine that intercepts threats in real-time. From secret detection to advanced mathematical supply-chain analysis.
SENTINEL is an enterprise-grade forensic engine that intercepts threats in real-time. From secret detection to advanced mathematical supply-chain analysis.
Sentinel does not use AI. It is a deterministic forensic engine — static analysis, taint tracing, supply chain verification, and real-time threat correlation. Every finding is reproducible, auditable, and yours.
This is not marketing. Below is the exact technical capability of the Sentinel engine as it ships today — what it covers, what it misses, and what we are actively building. We do not claim to be a universal code analyzer. We are a supply chain security scanner with deep, AST-level analysis for JavaScript, TypeScript, Python, and Go, plus regex-based fallback for other languages. That is the honest scope. Everything else is on the roadmap.
Full Acorn-based AST parsing with walker for MemberExpression, CallExpression, NewExpression, Literal, VariableDeclarator, AssignmentExpression. Detects taint propagation, proxy traps, prototype pollution, obfuscated sink construction, reverse shells, dynamic code execution.
Lifecycle script deobfuscation (preinstall/postinstall), lockfile integrity verification, registry poisoning detection, typosquatting via weighted Levenshtein distance (npm adapter), phantom dependency analysis, dependency confusion.
10 GitHub Actions-specific rules: registry override, download-and-execute, auto-publish, .npmrc modification, token masking, self-hosted runner abuse, workflow self-modification, action injection, over-permissive tokens.
27 regex patterns in LiteScanner + 16 in secrets.yaml: AWS keys, GitHub tokens, OpenAI keys, Stripe keys, Google API, Discord tokens, Slack webhooks, SSH keys, JWT, MongoDB URIs, Supabase keys, Anthropic keys. High-entropy detection as secondary signal.
ConfidenceScorer (4-tier thresholds: NOISE/SUSPICIOUS/HIGH_RISK/CRITICAL), ScoringEngine (logistic regression model), RiskOrchestrator (jitter quantization, trust levels, session caching, probing detection, lockdown). KillChainBuilder groups cross-file findings into attack narratives.
Parses the complete file for full AST context, but applies an exact-match mathematical filter against the PR patch. It drops 100% of legacy (pre-existing) findings and only alerts developers on the exact lines they modified. No alert fatigue.
AuthorBaselineAnalyzer tracks historical PR patterns per contributor. Detects behavioral drift: unusual commit times, new file types, abnormal dependency additions. Integrated into risk scoring as a multiplicative factor.
| Language | Parser | Rules | Coverage Depth | Status |
|---|---|---|---|---|
| JavaScript / TypeScript | Acorn AST | 54+ | Full: taint, obfuscation, sink detection, lifecycle, supply chain, behavioral | PRODUCTION |
| JSX / TSX | Acorn AST | 54+ | Same as JS/TS (via acorn-jsx extension) | PRODUCTION |
| Python | Tree-sitter WASM | 42+ | Full AST taint propagation, eval/exec/base64+exec chain, pickle loads, ctypes native, composite kill chains | PRODUCTION |
| Go | Recursive Descent | 35+ | Recursive AST, exec.Command taint, net/http.Get variable URL, C2 domains, base64+exec, cgo, go.mod replace | PRODUCTION |
| Shell / Bash | Regex | 8+ | curl|bash pipelines, rm -rf, destructive commands, env exfiltration | PRODUCTION |
| GitHub Actions (YAML) | Regex | 10 | Workflow injection, registry hijack, token leaks, self-hosted abuse | PRODUCTION |
| Rust | Tree-sitter WASM | 12+ | Full build.rs AST monitoring, process execution (Command::new), outbound network connect, payload embedding, unsafe blocks | BETA |
| Docker | Adapter | — | Container image scanning (worker package only) | BETA |
| pip / PyPI | Adapter | — | Package metadata scanning (worker package only) | BETA |
| Java / C# / Ruby / PHP | None | 0 | No parser, no rules. Regex may incidentally match. | UNSUPPORTED |
| C / C++ / Swift / Kotlin | None | 0 | No parser, no rules. | UNSUPPORTED |
Languages without a parser receive no AST analysis — only regex pattern matching, which produces higher false-positive and false-negative rates. Java, C#, Ruby, PHP, C, C++, Swift, and Kotlin are not currently analyzed by any Sentinel component. Adding language support requires building a language-specific AST parser or adapter, which is scheduled per subscriber demand.
JavaScript, TypeScript, Python, Go, and Rust (for build.rs) receive full AST-level analysis. Shell and CI/CD pipelines still rely on regex patterns. This means highly obfuscated payloads in bash scripts might escape detection.
The current "taint tracking" detects source-sink co-occurrence within the same file. It does not follow data flow across function calls, module boundaries, or files. This limits detection of multi-step attack chains.
While Sentinel now dynamically synchronizes rules and IOCs from Supabase on every scan, it does not query live external reputational feeds (like VirusTotal or AlienVault) at scan-time to prevent scanning delay and credential exposure.
The KillChainBuilder groups findings by file-name prefix matching and hardcoded chain templates. It does not perform semantic reasoning about attack graphs.
Dynamic analysis is executed via Node's vm.Script module with a 3-second timeout and mock global interceptors. It is not a full-kernel hardware sandbox (like a gVisor/microVM container). Extremely sophisticated malware that detects vm.Script virtualization or utilizes Node.js native bindings (addons) could evade detection.
Sentinel reviews static pipeline configurations (GitHub Actions, GitLab CI, CircleCI, Jenkins). It cannot monitor dynamic runners during runtime, meaning compromises during active pipeline jobs (like a compromised runner VM) are out of scope.
Sentinel is a production-grade multi-language supply chain security scanner.If your stack is JavaScript/TypeScript, Python, Go, or Rust (Beta AST build.rs scanner), Sentinel provides deep, full AST-level analysis (via Acorn, tree-sitter WASM, and recursive descent parsers) to block malicious dependencies, secret leaks, CI/CD pipeline attacks, and obfuscated supply chain threats.
If your stack is Java, C#, or other environments, Sentinel will scan your code using regex patterns or adapter-level metadata hooks. It provides partial coverage for these other environments, which we are actively expanding with native AST parsers.
We are transparent about this because we intend to fix it. Each subscriber's language usage directly determines which AST parsers we build next. Sentinel's architecture is designed to be extended — every limitation above has a corresponding open issue and allocated engineering time proportional to subscriber demand.
Sentinel CLI runs locally. No data leaves your machine. No account required. It applies a set of regular expressions (30 rules) against added lines in a diff or a file tree and reports matches. That is what it does. It is not an AI, not a cloud platform, not a zero-day predictor.
What makes it different from running grep is that the rules are organized by intent (malicious, suspicious, exfiltration) and severity, the findings persist in a local SQLite database for historical correlation, and there is an optional OS-level interceptor that can gate package installs. The code is intentionally degraded relative to the private cloud engine.
It works on CI. The same scan you run locally can run in a GitHub Action on every pull request. No external services, no API keys, no billing.

Sentinel is not an AI wrapper. It is a deterministic forensic engine — SAST, supply chain security, MCP server, dependency scanning, and PR auditing. Every finding is reproducible, auditable, and yours.
If you use AI coding agents, these skill files bridge the gap: they teach the agent to invoke Sentinel CLI operations directly — sentinel installfor package gating, sentinel scan for SAST analysis,sentinel precommit install for hook setup. The agent does not reason about security — it executes Sentinel commands and reports the output verbatim. Deterministic results are preserved; model hallucination is eliminated from the security path.
Each skill file encodes a three-tier enforcement protocol. The FORBIDDEN tier lists actions the agent must never take — suggesting npm installas an alternative to sentinel install, offering workarounds when Sentinel blocks a package, or committing without the pre-commit hook installed. The MANDATORY tier lists actions the agent must always take — run SAST before first commit, gate all dependency installations through sentinel install, report block verdicts with raw evidence. The Evidence Hierarchy tier assigns authority: Sentinel tool output (Tier 1) overrides local state (Tier 2), which overrides GitHub metadata (Tier 3), which overrides model reasoning (Tier 4). The model narrates findings; it never overrides them.
Adapting Sentinel output for AI consumption is not a goal of these skills. They exist because AI agents, left unguided, routinely bypass security tooling: they suggest direct npm install when Sentinel blocks a package, they commit secrets because no pre-commit hook was installed, they evaluate supply chain risk using model knowledge rather than real-time AST analysis. The skills close that gap without introducing a new attack surface — the agent holds no special credentials, executes no privileged code, and maintains no persistent state. It simply reads Sentinel output and formats it into the conversation.
sentinel install-skills# detects platform, writes adapterOne command writes the correct adapter to the correct path for the detected platform. Also includes a full MCP server implementation for tool-calling AI agents. No manual configuration. The skill loads automatically on the next agent session. All eight adapters maintained in a single source tree.
Sentinel Oracle is a physically isolated merge authorization server. The workstation that develops code never holds the credentials to merge it. Even a fully compromised workstation cannot authorize a merge. Oracle runs on a separate device (Raspberry Pi, NUC, mini PC) on the local network with no cloud dependency.
Implements a three-device trust model: workstation (untrusted, polls dashboard), oracle server (trusted authority, polls GitHub directly), phone (identity proof, authenticates via WebAuthn biometric passkey). Every merge requires a fresh cryptographic challenge bound to the specific PR number.
Network transport is Tailscale (WireGuard mesh). No public ports are exposed. The oracle server is the only component with GitHub merge credentials. The workstation only has read-only access to the oracle dashboard.
The CLI is a powerful local tool — but it's manual and one-off. You run it when you remember. The Cloud tier runs the same engine, continuously, on every PR, automatically, and shows you everything in a dashboard.
AI coding tools write and review code. Sentinel secures the supply chain it travels through. They are complementary — not competitors. Here is why you need both.
The CLI is free. Cloud is one plan. Try the CLI — no account, no install, no commitment.
One plan. Every feature. Unlimited repos, full pipeline analysis, and governance-grade tooling — no tiers, no upsells.
Full governance suite: policy engine, forensic audit trail, HMAC-signed reports, SSO, unlimited repos, 365-day retention, and dedicated support.
| Feature | ENTERPRISE |
|---|---|
| Scanner Engine | |
| LiteScanner — local regex rules for secrets, OS, network, eval, and obfuscation | ● |
| JS/TS AST Analysis — Acorn-backed source/sink signals, prototype pollution, reverse shell patterns | ● |
| Engine Coverage Disclosure — per-scan language depth, confidence, and non-JS limitations | ● |
| Lifecycle + Lockfile Analysis — package.json scripts, lockfile poisoning, registry hijack | ● |
| Binary + Entropy + Unicode Detection — WASM profiling, high-entropy payloads, zero-width chars | ● |
| Config Integrity — .npmrc/.yarnrc registry override, proxy injection, auth bypass | ● |
| Supply Chain Shield — npm/pip/docker typosquatting (Levenshtein), scope abuse, trust scoring | ● |
| Analysis & Correlation | |
| Kill Chain Builder — correlates findings into SUPPLY_CHAIN_EXECUTION, RCE, EXFILTRATION chains | ● |
| Risk Orchestrator — signal aggregation, jitter quantization, risk band classification (P0–P4) | ● |
| Scoring Engine — context-weighted, semantic dedup, path-based noise reduction, EDS multiplier | ● |
| Confidence Scorer — adaptive signal accumulation, intent grouping, campaign fingerprinting | ● |
| Trigger Level Orchestration — 3-level escalation (fast scan → semantic → deep execution graph) | ● |
| Author Baseline Analyzer — PR trait comparison vs historical baseline, anomaly detection | ● |
| Reports & Governance | |
| Executive Report Builder — 3-tier: Risk Brief, Technical Evidence, Raw Provenance | ● |
| Policy Engine — exposure levels, redaction modes, enforcement modes (strict/advisory) | ● |
| PR Policy Engine — path-based rules (no-modify, require-review), wildcard matching | ● |
| Forensic Audit — git blame trace, responsible author pinpointing | ● |
| HMAC-SHA256 Report Signing — Enterprise Certified integrity | ● |
| Cryptographic Audit Trail — SHA-256 chained, tamper-evident, verifiable chain | ● |
| Infrastructure | |
| Cloud Dashboard — real-time scan results, trends, differential comparison | ● |
| GitHub PR Webhook — auto-scan on pull_request opened/synchronized | ● |
| Max Tracked Repositories | Unlimited |
| Data Retention (cloud metadata) | 365 days |
| AES-256-GCM Evidence Encryption | ● |
| API Access | 100k req/mo |
| Dedicated 24/7 Support + 99.9% SLA | ● |
| CLI Tools (all plans) | |
| Local SAST scanning — scan any file/directory offline (unlimited repos) | ● |
| npm Package Verification — downloads tarball, scans without installing | ● |
| Signal Vault — local SQLite historical tracking | ● |
| OS Guard — npm/pip/yarn/pnpm/cargo/docker shell interception | ● |
| File Classification — marks sensitive files, pre-commit hooks | ● |
| Baseline Management — dependency hash snapshots, drift detection | ● |
| Integrity Manager — self-validation, PATH poisoning detection | ● |