ShadowCanopy
How it works

YourAIwritesthecode.Who checks what it installs?

Watch one malicious package try to get in — and see, step by step, exactly what ShadowCanopy does about it, and what would happen if it weren’t there.

0+packages gated across every ecosystem
0+known-malicious packages blocked by default
0package ecosystems, one local gate
In front ofCursorClaudeCodexCopilotWindsurfGemini CLI
it plays automatically — or scroll
The problem

The supply chain is the attack surface now.

Your agent adds packages faster than anyone can review them. One compromised release or one-character lookalike, and its install script runs with your permissions — keys, tokens, source, all in reach.

agent · adding dependencies…
You’d never notice — until it’s already running.
Step 1 — the install

Your AI agent installs a package you never chose.

A coding assistant adds a dependency mid-task. One character off from the real thing — and nobody reads the diff.

ai-agent · your-project — zsh
your-project
Step 2 — interception

The install never reaches the real registry first.

Every install is caught the moment it starts. Nothing is downloaded until ShadowCanopy has checked it.

installreqestsShadowCanopyinterceptsverifyverdictallow / block
Step 3 — verification

Four layers inspect it before a byte is delivered.

Known-malicious feeds, static rules, a behavioral sandbox, and an AI that reads the actual source. Each one shows its work.

📡

Known-malicious intel

Curated malicious-package feeds across every ecosystem

🧬

Static rules

Lifecycle scripts, credential reads, obfuscation, typosquats

🧪

Behavioral sandbox

Runs the install inside a throwaway isolated sandbox

🧠

AI analysis

Reads the actual source and escalates or clears

Step 4 — the fork

Same package. Two very different mornings.

With ShadowCanopy

Blocked at the gate

scanopy npm install reqests
Without ShadowCanopy

postinstall runs on your machine

postinstall.sh — executing on host
exfiltrated to evil.example
ShadowCanopy stopped it before a single byte hit disk.
Step 5 — the safe path

Legit packages sail through — quietly, in under a second.

The real requests passes every layer and its bytes are checked against the approved hash. No prompts, no friction — that’s the point.

scanopy pip install requests
The difference

“Doesn’t npm audit already do this?”

Audits tell you about trouble after it’s on disk. ShadowCanopy refuses it at the door — across every ecosystem, not just npm.

npm auditShadowCanopy
Default policyAllow everythingDeny until verified
When it checksAfter install, on demandBefore a byte hits disk
Ecosystemsnpm onlynpm · PyPI · crates · Go · +5
Malicious packagesNot its job27,000+ blocked by default
Behavioral sandboxEvery install, isolated
AI source reviewReads the actual code
AI-agent guardrailsPinned to the gate
Auditing is a report. ShadowCanopy is a gate.
Why it works

Deny by default. Verify, then trust.

Every dependency is untrusted until it’s verified — the only model that holds up when AI is writing the code.

Block

Deny by default. Every dependency is refused until it is verified — the malicious one never reaches disk, so its install scripts never run.

Verify

Live malicious-package feeds, static rules, a behavioral sandbox, AI source review, and a byte-for-byte hash check — every approval shows its work.

Govern

Org allow/deny lists, policy, and full audit — pin your AI agents to the gate so they can only install what you have verified.

npmPyPIcratesGoRubyGemsMavenNuGetHexpubSPM

Give your AI agents a gate they can’t talk their way past.

No credit card · installs in one command · works with every AI assistant

Your AI writes and installs the code