Self-hosted · runs on your infrastructure

Your code security agent

One agent across four fronts — static, dynamic, supply chain and regulatory. It watches the code you wrote and the code you didn't, on infrastructure you control. Nothing leaves the box.

$ curl -fsSL https://goju.app/install.sh | sh Coming soon
macOS & Linux SHA-256 + minisign verified single static binary
Your code stays on your machine No SaaS, no telemetry Minisign-signed releases Air-gap capable
One agent, four fronts

The whole stack, watched from one binary

goju replaces a drawer full of tools with a single self-hosted agent. Three fronts are deep, built-in and run fully offline; the fourth orchestrates the industry-standard engines against your running apps.

Static

Your code & config, at rest — SAST (Semgrep, gosec, optional LLM review), secrets in the tree and across git history, IaC misconfiguration, PII / cardholder data, and OSS license policy.

built-in · offline

Dynamic

Your running apps — OWASP ZAP and Nuclei driven through goju: baseline, OpenAPI and authenticated scans, with automatic environment detection. Industry engines, run on your infrastructure.

ZAP · Nuclei · your infra

Supply chain

The code you didn't write — malicious install hooks, typosquats, transitive worms, CI/CD attacks and AI/ML model artifacts, matched against ~227k known-malicious packages, fully offline.

goju's deepest front →

Regulatory

Evidence, not questionnaires — DORA, NIS2, EU CRA, SOC 2, GDPR and PCI-DSS, scored from your real scan data with gaps, recommendations, reporting deadlines and role-based cockpits.

6 frameworks · scored
Where goju goes deepest

Supply-chain attacks vendor SaaS misses

CVE scanners tell you about yesterday's known vulnerabilities. goju also detects the actual compromise patterns — statically, before they reach a database — and we publish the numbers.

~227k
known-malicious packages, baked in & offline
100% / 0%
detection / false positives on our benchmark corpus
14
manifest formats walked, transitively

Malicious install hooks

postinstall/preinstall scripts that exfiltrate credentials, fetch payloads or propagate worms — the Shai-Hulud / event-stream / ua-parser-js pattern, across 14 manifest formats.

behavior · BHV-*

~227k known-malicious packages

The full OSV malicious set — npm, PyPI, RubyGems, crates, Go, Maven, Packagist — baked into the binary and matched offline. No lookup call, works fully air-gapped. Refresh per release.

malpkg · 227k offline DB

Typosquats & homoglyphs

Damerau-Levenshtein edit-distance plus Cyrillic/Greek homoglyph detection across npm, PyPI, Go, Cargo and Composer. Catches lodahs, requets, Cyrillic-а-in-react.

typosquat · TSQ-*

Transitive worm propagation

Most scanners stop at your top-level manifest. goju walks node_modules, .venv and vendor/ and applies the same rules to every installed package — where the worm actually lives.

deep tree walk

CI/CD pipeline attacks

Unpinned GitHub Actions, pull_request_target with checkout (the tj-actions pattern), script injection and secret exposure on PR triggers.

pipeline · GHA-*

AI/ML model artifacts

Real pickle-opcode disassembly over .pkl/.pt/.ckpt models catches code-execution payloads; OWASP-LLM-Top-10 app flaws and unpinned / typosquatted model references round it out.

mlmodel · OWASP-LLM

Measured, not asserted — every release is scored against a labelled corpus (make bench), published in the repo.

Built to run inside the perimeter

If you scan with a cloud vendor, you're uploading your dependency tree — and often your source — to a third party. goju is one binary you run yourself. Same job, in many cases deeper, without the upload — and with the controls a regulated team needs.

  • No upload step. Source, lockfiles and findings never leave the box.
  • Air-gap capable. The 227k malicious-package and typosquat data are embedded — no internet required.
  • SSO, RBAC & audit. OIDC single sign-on, least-privilege roles, and a full audit trail of every action.
  • Signed, verifiable releases. Every build is minisign-signed and checked in-process.
  • Dashboard, CLI & CI gate. Role cockpits for CTO / Dev / Legal; --fail-on-critical, SARIF out, and auto-fix PRs.
goju supply-chain ./
# risk-ranked, no config, fully offline
● event-stream@3.3.6 score 98
BHV-001 install hook exfiltrates env
MAL-003 known-malicious version
● reqeusts score 76
TSQ-002 typosquat of requests
● left-pad@1.0.0 score 41
LCK-004 no integrity hash

✓ 3 packages flagged · CWE + DORA tags
exit 2 (--fail-on-critical)

From zero to a CI gate in three commands

1

Install

One line, no dependencies. The static, supply-chain and regulatory fronts work with zero setup; dynamic adds ZAP/Nuclei when you want it.

2

Scan

Point it at any project: goju supply-chain ./ — or goju scan --all for the full agent. No database, no account.

3

Gate & watch

Add --fail-on-critical in CI, or goju serve for the dashboard, scheduled scans, auto-scan on push and auto-fix PRs.

Your code security agent is launching soon

One self-hosted binary. Static, dynamic, supply chain and regulatory. Your code never leaves the box.

$ curl -fsSL https://goju.app/install.sh | sh Coming soon
Read the docs