About Arguss

Defensible automation
for the npm supply chain

Arguss is a UC Berkeley MICS capstone project building autonomous remediation that knows when to merge, and when to ask for help.

CYBER 295.001 Capstone · MICS Program · UC Berkeley School of Information · Summer 2026

The team

Three students. Three roles

AR

Adrian Rosales

Code

Owns the engineering surface, engine, lenses, dashboard, deployment, and all the plumbing in between.

SK

Sherbano Khan

Frontend

Owns the visual and UX surface, design system, dashboard polish, Observatory, and demo materials.

SQ

Huiping (Sophia) Qiu

Research & Methodology

Owns the research and evaluation methodology, threat model, comparative analysis, and write-ups.

Final showcase: August 5, 2026

The work

Why we built this

Modern software depends on hundreds of transitive npm packages, most of which the application author has never directly evaluated. A single vulnerable dependency can compromise the entire system, and the highest-impact recent attacks (Log4Shell, xz-utils, recurring npm credential theft) succeeded specifically because the malicious or vulnerable code wasn't yet in the CVE database when it was consumed.

Existing free tools split the problem in half. Detection-only scanners flag CVEs and leave remediation to humans, drowning teams in alert fatigue. Auto-PR tools open upgrade pull requests with no risk awareness, they'll merge a malicious patch the day after a maintainer takeover because the new version is newer. Arguss is built to close that gap: it auto-remediates and knows when not to.

Why this matters

The npm ecosystem is under sustained attack

These aren't hypothetical risks. They're documented incidents from the past year, the kind of attack Arguss is built to catch before it reaches a merge.

454,600+
malicious open source packages identified in 2025
Sonatype, 2026 State of the Software Supply Chain: a 75% increase year over year
99%
of open source malware now lives on npm
Sonatype, 2026: npm-specific detections rose more than 100% in a single year
~2hrs
the chalk/debug attack stayed live before detection
Palo Alto Networks: 18 packages compromised, 2.6B weekly downloads exposed
1,000+
packages compromised by the Shai-Hulud worm
ReversingLabs: first self-replicating malware native to a package registry; ~25,000 repos exposed downstream
$4.91M
average cost of a supply chain breach
IBM, 2025 Cost of a Data Breach Report: 267-day average detection lifecycle
174min
axios stayed compromised before being pulled
A 100M-weekly-download package, backdoored via a stolen maintainer credential

Every incident above shares the same root cause: a trusted package, maintainer, or pipeline was compromised, and the malicious version looked exactly like a normal update. Version-only tools can't catch this. Arguss checks who published the change and whether your pipeline can actually verify it, not just whether a newer version exists.

The contribution

Defensible automation

semver 5.7.1 - CVE-2022-25883 axios 0.21.1 - CVE-2021-3749 AUTO-MERGE minimist → 1.2.8 · PR opened

vs. Snyk

detection

Snyk flags CVEs. Arguss flags them and decides what to do about them.

event-stream 3.3.6 dominictarr → right9ctrl ⚠ new_maintainer VETO - trust signals failed lodash 4.17.20 → 4.17.21 ✓ trust 8.4/10 · pipeline verified

vs. Dependabot

action

Dependabot opens upgrade PRs based on version availability alone. Arguss opens them only when trust signals, pipeline reality, and vulnerability severity all align.

57 packages · 190 findings · 81 candidates 43 merge 38 review 0 decline tar@2.2.2 15/100 qs@6.10.3 25/100 js-yaml@3.14.1 71/100 …every package, same reasoning

vs. Manual review

baseline

A careful developer can do what Arguss does for one package. Arguss does it across hundreds, consistently, with reasoning every reviewer can audit.

Under the hood

What it's built with

Backend

Python · FastAPI
Python 3.12 + FastAPI Deployed on Fly.io
SQLite (WAL mode) Persistent volume cache
httpx Async API clients for every lens
OSV.dev · npm · deps.dev FIRST.org EPSS · CISA KEV
zizmor GitHub Actions static analysis
Anthropic Claude API Explanation prose, display-only

Frontend

Server-rendered HTML
Jinja2 templates Server-rendered, no client build step
HTMX No SPA framework, no client state
Tailwind CSS Via CDN, no compiler step
Geist + JetBrains Mono Display and code typography
Custom design system CSS variable tokens for color, type, spacing

Beyond the showcase

Where this goes next

🔑

GitHub App migration - shipped

Mode C now acts through the arguss-bot GitHub App: per-install scoping and short-lived installation tokens minted for each run, with no long-lived credentials handled in the browser. Next up: webhook-driven re-scans so remediation becomes install-and-forget.

🌐

Multi-ecosystem support

npm was the right starting point, the most attacked, richest public API surface, most dramatic demo stories. PyPI, Maven, and Cargo are natural expansions; the engine doesn't care which ecosystem feeds it, only that the data shapes line up.

📊

OpenSSF Scorecard integration

A per-package engineering hygiene signal (tests, CI, code review, signed releases) layered onto the existing trust lens. Filed as a follow-up to ship after the showcase.

The vision

Arguss aims to become the autonomous security engineer for open-source dependencies, continuously monitoring risk, recommending remediation, and taking action when confidence is high while escalating uncertainty to human experts.