Supply-chain security, terminal-native.
Every npm, pip, Go and NuGet install goes through the CyberXYZ proxy and gets a verdict before it downloads. The same CLI audits what is already installed, scans your code and gates CI.
real verdicts for every version shown; status codes as the npm proxy returns them
The install is the attack.
A malicious release runs its install script on the machine that fetched it, often before any advisory exists. A scanner that reads the lockfile afterwards reports what already ran. xyz puts the verdict in front of the install.
Mini Shai-Hulud, May 19 2026 (UTC)
- 01:39First trigger package, jest-canvas-mock@2.5.3
- 01:44Second trigger package, size-sensor@1.0.4
- 01:56A burst of 14 packages publishes at once
- 02:06Publish window closes: 639 malicious versions across 323 packages
- 02:22First public write-up, 43 minutes after the first publish
- 08:57CyberXYZ first blocks jest-canvas-mock@2.5.3, after the disclosure. We were late; the case study says what we changed
axios@1.14.1 RAT dropper
A compromised maintainer shipped two malicious axios tags that pulled in a North Korean RAT dropper. Blocked at install by CyberXYZ since April 2026.
Mini Shai-Hulud AntV npm worm
One stolen npm token poisoned 323 packages across the AntV namespace in 27 minutes, with a credential harvester wired to run before any user script. Blocked after the first public disclosure; the case study covers what we changed.
On PyPI, the Hades worm poisoned PyPI projects with a .pth startup hook. CyberXYZ sent HIGH alerts about 30 minutes after the wave began, hours before the first public advisory.
A firewall for installs, not a setting to forget.
sudo xyz proxy setup --system routes every package manager through the proxy and installs an agent that keeps it that way.
Machine coverage
Does each machine actually send installs through the proxy? From each agent's own check-in.
- dev-laptop-07not routed: npmheartbeat 14s ago
- dev-laptop-21partially routed, not: yarnheartbeat 31s ago
- qa-mac-04silent for 30 hoursheartbeat 1d ago
- build-runner-02agent v1.4.66 outdatedheartbeat 9s ago
Every machine with an agent is routed and checking in.
Agent versions are compared with v1.4.69, the newest agent in your fleet.
Agent events
What changed, newest first.
- checked in, routed2s ago
qa-mac-04back after 30 hours; every package manager routes - drift repaired14s ago
dev-laptop-21yarn config restored to the proxy - install refused, fail-closed27s ago
ci-runner-3express 5.1.0 could not be verified: 503, retry in a minute - agent restarted onto 1.4.6939s ago
build-runner-02afterxyz upgrade, by itself - drift repaired52s ago
dev-laptop-07npm config restored to the proxy
the Machine coverage card rebuilt from the dashboard home (HomeCards.tsx); the event feed is an illustration of what the platform records: each agent's routing report and repairs, its version, and the proxy install log. Machine names are fictional.
What is already installed, and the version to ship.
The proxy covers installs from now on. xyz audit checks everything installed before. xyz fix plans the upgrade and never edits a lockfile.
real output, VS Code Dark Modern terminal; --write shows a diff and asks first
the XYZ Scan card, rebuilt from the dashboard with a real xyz audit npm upload; names changed
One command for the lot. xyz audit uploads npm, Python, every venv, Go, IDE and browser extensions and system packages as separate cards, so the dashboard can re-check them as new intelligence arrives.
Secrets, IaC and SAST, in one report.
xyz code-scan all runs open-source engines plus CyberXYZ's own supply-chain rules. It scans only what git would commit, redacts every secret, and never calls a partial run clean.
real output; PATH and INSTALL columns trimmed
One verdict engine. Every surface. One dashboard.
The CLI, the VS Code extension, CI and AI coding agents ask the same engine, and every run lands on the same dashboard.
- xyz + agent every install on laptops and servers, allowed, alerted or refused at the proxy
- VS Code the lockfile tree, worst first, with fixes planned from the same verdicts
- CI/CD protect installs, then gate the build (GitHub, GitLab, Azure DevOps)
- AI coding agents check_package over MCP; an install hook denies blocked packages
- app.cyberxyz.io every run lands here: audits, fix plans, scans, gates
on the dashboard: machine audits, fix plans, code scans and CI gates by machine and by person; secrets triage; Scan now
What reaches the dashboard The VS Code extensionA red build beats a shipped exploit.
Protect routes the job's own installs through the proxy, so a malicious version is refused on the runner. Scan gates on the lockfiles and exits non-zero on anything that should never ship.
uses: CyberXYZSecurity/depalert-action@v1, one line;mode: protectearly, the defaultscanas the gateThe
gitlab.com/cyberxyz/depalertcatalog componentAzure and the rest:
eval "$(xyz ci protect)"before installs.xyz ci initwrites the pipeline file.
Keep your scanner. Add the layer it can't be.
Different jobs on the same supply chain. Run them together.
Report known advisories
- ✓ Known CVEs and advisories in your lockfiles
- ✓ Severity scores, fix versions, SBOMs
- ✗ Nothing to report until an advisory exists
- ✗ Read the tree after the install has run
Stop it at install, on laptops and CI
- ✓ Install-time blocking for npm, pip, Go and NuGet, through an always-on, fail-closed proxy
- ✓ Malicious releases first, with the reason in words
- ✓ The same verdict at the CI gate, with exit codes per decision
- ✓ Fleet visibility: agent version, routing and drift, per machine
- ✓ Fix plans that never cross a major version silently
- ✓ AI coding agents checked too, through MCP and an install hook
The same verdict, before the agent installs.
xyz mcp install --client all gives Claude Code, Cursor, VS Code, Windsurf, Codex CLI and Gemini CLI the CyberXYZ tools. With --hooks, Claude Code is denied installs of blocked or quarantined packages.
No install? The hosted server is https://mcp.cyberxyz.io/mcp.
xyz checkThe proxy's verdict for one package version, before you add it.
xyz fixThe nearest clean release per flagged package; --write shows a diff and asks.
xyz impactWho depends on a package, and whether this project reaches it.
xyz sbomCycloneDX 1.5 or SPDX 2.3 from your lockfiles, with advisories, EPSS and KEV.
xyz audit modelsLocal model files hashed and HF references found, never unpickled.
xyz remediate runRuns removals an admin approved in the dashboard.
One package. The xyz command.
or pip install cyberxyz-scanner · later, xyz upgrade
- Sign in with your browser
xyz login, then approve a one-time code with your usual sign-in, MFA, SSO or passkey. The session lasts 90 days from last use. - Turn on the proxy
sudo xyz proxy setup --systemroutes every package manager and installs the agent. Fleets enroll with an MDM token. - Check it, any time
xyz proxy status: every tool routed, the lock on, the agent current. - fig. 10 / step 3, xyz proxy status$ xyz proxy statusXYZ Proxy Status Machine name: dev-mbp-07 ✓ Proxy is configured for npm, pip, Go, NuGet. Always-on agent Service : system Last report : 20s ago by the system agent Agent code : 1.4.68 (matches the installed CLI) CLI session : active (kept alive by the agent)┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Tool ┃ Status ┃ Effective registry ┃ ┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩│ npm │ … ok │ https://npm-proxy.cyberxyz.io ││ pnpm │ … ok │ https://npm-proxy.cyberxyz.io ││ yarn │ … not installed │ ││ bun │ … not installed │ ││ pip │ … ok │ https://***@pip-proxy.cyberxyz.io/sim │ │ │ │ ple/ ││ uv │ … ok │ https://***@pip-proxy.cyberxyz.io/sim │ │ │ │ ple/ ││ go │ … ok │ https://***@go-proxy.cyberxyz.io,dire │ │ │ │ ct ││ nuget │ … ok │ https://nuget-proxy.cyberxyz.io/v3/in │ │ │ │ dex.json ││ poetry │ … network lock only │ │└────────┴───────────────────┴───────────────────────────────────────┘
real output; machine name changed; per-tool config block, Detail column and state path trimmed
- Then, whenever you like
xyz auditfor the whole machine,xyz fixin a project,xyz code-scan allbefore you push.
xyz mcp) · included in every plan, see pricing · Maven: single packages with xyz check PACKAGE VERSION -e maven; Maven project audits are not available yet · in the editor, use the VS Code extensionGate every install,
from laptop to CI.
See the CLI, the proxy and the dashboard in a 15-minute walkthrough. The CLI is included in every plan, from $25 per developer per month, with a 30-day proof of value.
- ✓ npm · PyPI · Go · NuGet
- ✓ In every plan, from $25/dev/month
- ✓ 30-day proof of value
Thanks! We'll be in touch.
Check your inbox. We'll reach out within 24 hours.