git.agentic
Security layer + registry built · pre-1.0 · v0.1.0-alpha.1 on npm Apache 2.0 TypeScript

npm supply-chain security for AI agents.

Sentinel is a transparent auditing proxy in front of registry.npmjs.org: it serves real packages unchanged, but intercepts every tarball, scores it with a deterministic audit engine, and attaches a verdict — so an agent or a human sees the risk before install-time code runs. It has since grown into a first-class registry: audit-gated publishes, verified namespace ownership, and time-locked retraction — the capabilities a proxy structurally cannot offer.

npm can't retract bad releases, has no install-time permissions, and lets attackers squat names. The event-stream pattern — a clean package ships a trojaned patch release — still works today, and agents install with zero risk signaling.

The demo

A previously-clean package ships a patch release with a postinstall that harvests secrets. Sentinel's verdict, and what npm install sees when it fetches the bad tarball:

$ sentinel audit color-stream 1.4.1

  color-stream@1.4.1
  ────────────────────────────────────────────────────────
  install    ⚠ runs lifecycle scripts
  score      ░░░░░░░░░░ 0/100
  verdict    BLOCK
  findings (7)
  critical [install-scripts] postinstall reads environment variables,
                              decodes an encoded blob
  critical [secret-exfil]    reads sensitive material (~/.npmrc, AWS
                              credentials) with a network egress sink
  high     [network-egress]  connects to a hardcoded IP address
  high     [obfuscation]     uses eval()

$ npm install --registry http://localhost:4873 color-stream
  HTTP 403  x-sentinel-verdict: block  x-sentinel-score: 0

# and a clean package passes untouched
$ sentinel audit is-odd 3.0.1
  is-odd@3.0.1  → score 100/100  ALLOW  (signed, no install scripts)

How it works

Status

What started as the audit-proxy wedge has grown into the full layer (July 2026): signed per-enterprise policy and install-time permission manifests, a deny-by-default capability sandbox, offline signature and Sigstore-provenance verification, known-malicious (GHSA) and CVE-range detection, supply-chain identity and release-anomaly heuristics, whole-tree lockfile auditing with SBOMs and signed attestations, a CI-native GitHub Action, an agent-native MCP server, durable observability, and a hardened network trust boundary. The registry evolution (Phases 30–33, ADRs 0045–0048) is implemented as of 2026-07-13: audit-gated publishes, verified namespace claims, time-locked retraction, and an npm/pnpm/Yarn/bun-compatible surface with a safe exit path. Sentinel is pre-1.0 and not yet production-hardened, but it is now installable: the first alpha, v0.1.0-alpha.1, is published to npm — all seven @git-agentic/sentinel-* packages, under the alpha dist-tag. The next milestone is design-partner evidence — blocked incidents, false-positive rate, audit latency. The long arc is policy and install-time permissions for the whole ecosystem.

$ npm install -g @git-agentic/sentinel-cli@alpha @git-agentic/sentinel-proxy@alpha

Docs: README · Architecture · ADRs

Frequently asked questions

What is Sentinel?
Sentinel is an open-source security layer and registry for npm. It audits package tarballs before install-time code runs and returns a deterministic allow, warn, or block verdict.
How does Sentinel protect AI agents that install npm packages?
Sentinel places policy and human approval between an agent request and package execution. The agent can request an exception, but only a human can grant one.
Does Sentinel modify packages from npm?
Its transparent proxy serves upstream packages unchanged while attaching audit findings and a verdict. The registry layer separately supports audit-gated publishing and verified namespace claims.
Is Sentinel production ready?
Sentinel is pre-1.0 and published as an alpha. Its product page documents current capabilities and limitations; production adoption should follow that status.