Grasp v3.17.0
v3.17.0 — 2026-04-28
New Features
- OSV.dev Dependency Vulnerability Scanner — declared dependencies (npm, PyPI, Go modules, Cargo crates, Maven) are scanned against the OSV.dev free public vulnerability database on every analysis. Manifest parsers cover
package.json(withpackage-lock.jsonresolution),requirements.txt,pyproject.toml,go.mod,Cargo.toml(withCargo.lockresolution), andpom.xml. - New VULN tab in the right panel — severity counts (critical / high / medium / low), per-package CVE list with fix-version suggestion and direct OSV.dev link. Empty-state explains how to add a manifest.
grasp_vulnerabilitiesMCP tool — same scan from any agent; markdown report with severity filter (all/critical/high/medium/low).grasp vulns <path>CLI command — walks the filesystem for manifest files, scans via OSV, prints colorized severity report. CI-friendly: exits 1 if any critical/high vulnerability is found.- Health score integration — calcHealth now deducts 5 points per critical (CVSS 9+) and 3 points per high (CVSS 7–8.9), capped at 25 combined. Medium and low do not deduct.
- Privacy preserved — analysis runs in the browser; OSV requests go directly from the user's browser to OSV.dev, never through a Grasp server. The 100% client-side, zero-upload posture is unchanged.
- 24-hour localStorage cache — repeat analyses of the same repo skip OSV calls until the cache expires. Network failures degrade silently rather than failing the analysis.
Fixes
- CSP: added
https://api.osv.devto the page'sconnect-srcdirective (without it the browser silently blocked all OSV requests). - Cyclomatic complexity ternary regex: false positives on
??null-coalescing and SQL?placeholders eliminated;brain.tscomplexity drops from ~55 to ~21. - Hardcoded-secret scanner: false positive on
args.find(a => a.startsWith('--token='))style CLI argument parsing fixed. - Topbar overflow:
overflow-x: clipprevents action buttons from extending off-screen at narrow viewports.
Install
MCP Server (Claude Code, Cursor, Cline, Windsurf):
npm install -g grasp-mcp-server@3.17.0Try it instantly (no install): ashfordeOU.github.io/grasp — paste any GitHub or GitLab URL.
Browser extension: Chrome Web Store · Firefox AMO · Safari .zip (sideload — see assets below).
IDE plugins: VS Code (.vsix asset below) · JetBrains Marketplace · Raycast · Zed.
Docker: docker pull ghcr.io/ashfordeou/grasp:v3.17.0
Quick CVE scan of any local repo (new in v3.17.0):
grasp vulns ~/projects/my-repo
# Exits 1 if any critical or high CVE is found — drop into CI as a quality gate.Try the new vulnerability scanner
In the browser app, paste a repo URL → look for the new VULN tab in the right panel. It scans every dependency manifest in the repo against the OSV.dev free public CVE database and shows severity-classified findings with fix-version suggestions. Or run it from the MCP server:
result = await mcp_call('grasp_vulnerabilities', {'session_id': sid})Verify provenance
# npm (SLSA Level 2 provenance)
npm install -g @sigstore/verify
sigstore verify npm grasp-mcp-server@3.17.0
# Docker (Cosign keyless)
cosign verify \
--certificate-identity-regexp="https://github.com/ashfordeOU/grasp/.github/workflows/publish.yml" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
ghcr.io/ashfordeou/grasp:v3.17.0