ZeroUalpha · v0.1.0
demo · to · production

See what ZeroU did to your demo — in 30 seconds.

ZeroU scans your vibe-coded demo, patches it, verifies the patch ran, and leaves a grep-able audit trail. Built for shipping, not for screenshots.

scanfixverifytracepowered by claude-cli · works offline · MIT
See it run
the under-a-minute tour

Under a minute, end-to-end.

From a vibe demo to a verified, traceable, hardened app — with bench receipts at the end.

Vibe-coded demo. Works locally.

Pre-production. 31 hardening gaps. Zero structured logs. No tests.

./meme-weather
    ⚠ What's missing
      Problem
      Install
      Scan
      Fix
      Enhance
      Verify
      Bench

      Stage 1 of 7 — Problem: vibe-coded demo, ~31 hardening gaps

      ProblemInstallScanTest/FixEnhance/TraceVerifyBench
      four tiers

      The whole pipeline — not a single trick.

      01
      Scan
      scan

      Preset-driven static + LLM scan finds the bug classes you actually care about — secrets, SQLi, missing auth, weak crypto. Tunable. Auditable. No vibes.

      02
      Fix
      fix

      Each finding becomes a targeted patch on its own branch. claude-cli does the typing; ZeroU constrains scope so the patch fixes the bug — not the surrounding 200 lines.

      03
      Verify
      verify

      Generated tests cover the patched path. Critic verdict (confirmed / false-positive / needs-context) per finding. Branch-coverage check ensures the fix actually ran.

      04追溯
      Trace
      trace

      Every step writes a line of structured JSONL. Six months from now you can grep `branch_id`, replay the verdict, and show your auditor the receipts.

      Case study · meme-weather (real Next.js demo on Vercel)

      What ZeroU produced on a real demo.

      meme-weatherNext.js 15Drizzle + Supabase2026-05-28

      We ran zerou enhance on meme-weather — a real Next.js + Drizzle + Supabase demo. Output below is the actual diff merged into the project.

      119
      logger sites
      across 5 files
      9
      new files
      observability stack
      1m 30s
      wall clock
      enhance, end-to-end
      PASS
      verify gate
      install · tsc · test
      What changed
      diff
      9 new files · 3 edits · 1 mechanical rewrite
      • src/logger.ts+61 LOC (NEW)
      • middleware.ts+30 LOC (NEW)
      • instrumentation.ts+8 LOC (NEW)
      • sentry.{client,server,edge}.config.ts+18 LOC (NEW)
      • app/health/route.ts+14 LOC (NEW)
      • .env.example+3 LOC
      • lib/db/client.ts+2 -1
      • lib/db/seed.ts+9 -8
      • 119 console.log → logger.info5 files
      What you get
      after 1m 30s
      production-grade observability stack
      • pino logger bootstrap — src/logger.ts (AsyncLocalStorage correlation, redact rules)
      • /health endpoint — app/health/route.ts
      • Sentry SDK — @sentry/nextjs@^8.50.0 + 3 configs + instrumentation.ts
      • middleware.ts — x-correlation-id in/out, request.start / request.end events
      • .env.example — LOG_LEVEL added (7 vars already declared, untouched)
      • 119 console.log → logger sites across 5 files
      • Decision-event JSONL log under .zerou/logs/ — replayable audit trail
      • Verify gate PASS — install · tsc · test

      Branch zerou-enhance-20260528-131520 — review the diff, merge or drop. ZeroU never auto-merges to your main.

      Quoted from .zerou/enhance-report.md. Reproduce: cd meme-weather-zerou-test && npx zerou enhance.
      Dashboard · what running ZeroU looks like

      Watch every fix in flight

      localhost:5173local daemon

      ZeroU runs as a local daemon with a web dashboard at localhost:5173. Mission Control over project → session → workspace → commit, with live fix progress.

      ZeroU projects list
      Projects list — pick a demo to operate on
      ZeroU session board
      Session board — running, paused, done
      ZeroU workspace view
      Workspace — agents working on fixes, commits with diff/rewind
      ZeroU preset library
      Preset library — 27 families, 359 rules, customizable
      Watch it run · live dashboard

      Open the Mission Control dashboard

      live · ZeroU daemon online

      ZeroU runs a local web dashboard at localhost:5173. When the owner's daemon is up and tunnelled, you can drive it from any device.

      http://192.168.22.2:7777
      tip for the owner
      # On owner's machine
      zerou start                      # daemon at :5174, UI at :5173
      cloudflared tunnel --url http://localhost:5173
      
      # Set on Vercel
      NEXT_PUBLIC_DASHBOARD_URL=https://<random>.trycloudflare.com
      touch the demo yourself

      The link below is Loeser's laptop.

      livebuilt 2026-06-05 08:58 UTC

      The meme-weather demo we just hardened is tunnelled out from a MacBook on the owner's desk. If you can reach it, the tunnel is up. If not, the laptop is asleep or the cloudflared process died — that's also a real signal about hobby-project ops.

      http://192.168.22.2:3000
      tip for the owner
      cloudflared tunnel --url http://localhost:3000
      # → https://<random>.trycloudflare.com
      # paste that into Vercel env: NEXT_PUBLIC_LIVE_DEMO_URL
      # redeploy. button goes live until cloudflared dies.
      Local services · 内网演示入口

      从官网直达我本机起的服务(内网其它电脑可看)

      hosted demo + LAN jump

      演示动画托管在本站,任何人可直接看。下面的「本机服务」按钮跳到你这台机起的各项目服务——同内网的电脑打开本官网、点一下即可直达。

      本机服务 · 内网跳转
      想让同内网的人也能点进来:在你那台机上把对应服务绑全网卡再起 (Node: HOST=0.0.0.0 npm start;python: python server.py --host 0.0.0.0),并放行端口的防火墙入站。 IP 是 DHCP 会变,变了在上面框里改一下即可(自动记住)。若浏览器拦截 http 链接,允许一次即可。
      what makes ZeroU different

      Log as proof.

      You don't get a confidence score. You get one independently grep-able line per decision the agent made — six months from now still readable, still replayable.

      Every scan, every fix attempt, every critic verdict lands in .zerou/branch-trace.jsonl. No DB to query. No SaaS to sign up for. Just a file your auditor already knows how to read.

      try it
      # count unique branches your audit explored
      $ cat .zerou/branch-trace.jsonl \
          | jq -r '.branch_id' | sort -u | wc -l
      47
      
      # show every decision the critic made on this finding
      $jq 'select(.finding_id == "sql-001")' \
          .zerou/branch-trace.jsonl
      { "step": "detect", "verdict": "hit", ... }
      { "step": "patch", "branch": "fix/sql-001", ... }
      { "step": "verify", "result": "confirmed", ... }
      head-to-head

      Bench numbers, no spin.

      alphan=1 measurement2026-05-28

      Phase 22 run of hardener-bench. ZeroU (MiniMax critic) vs raw Claude Sonnet 4.6 / Opus 4.7 via the CC subscription. Proximity scoring (file + line ± tolerance), uniform across tools. Methodology and reproducer in the comparison report.

      2.2×
      precision vs Opus
      on zerou-target
      0.75
      recall vs Sonnet 0
      on juice-shop
      ~$0.20
      cost per audit
      vs $2–$8 (Opus)
      0 / 50
      bugsjs (honest gap)
      no logic-bug presets
      benchtruthsZeroUSonnet 4.6Opus 4.7winner
      zerou-target
      Preset-aligned vulns: secrets / SQLi / missing-auth / weak-crypto. ZeroU is 2.2× more precise at equal recall.
      19P=0.91 · R=1.00P=0.46 · R=0.90P=0.41 · R=0.95ZeroU
      juice-shop-mini
      OWASP Juice Shop (681 files). Sonnet's fair 200-file cap missed every truth file. ZeroU scans the whole repo for ~$0.20.
      20R=0.75R=0.00(too slow to finish in cap)ZeroU
      bugsjs-mini
      Pure logic bugs (off-by-one, missing await). Honest loss: no preset covers this class yet — roadmap item.
      500 / 506 / 5011 / 50Opus
      cost / audit
      ZeroU's cost scales with finding count (MiniMax critic). Raw Claude scales with codebase size.
      $0.05 – $0.20$0.50 – $1.50$2.00 – $8.00ZeroU
      What this isn't:peer-reviewed, multi-seed, statistically significant. n=1 per cell. ZeroU wins where presets cover the bug class; loses where they don't. The bench is our scoreboard, not a marketing slide.
      quick start

      Four commands. Your demo is hardened.

      node 22+claude-cligit

      ZeroU runs locally and drives the Claude Code CLI as its worker. No API key. No SaaS dashboard. Your code never leaves the machine.

      01Static + LLM scan across active presets
      $ zerou audit ./my-app
      21 findings · 8 confirmed · 11 needs-context · 2 false-positive
      02Patch each finding on its own branch
      $ zerou enhance ./my-app
      fix/sql-001 ✓ · fix/secret-002 ✓ · fix/auth-003 ✓ (7 patched, 1 skipped)
      03Live dashboard at http://localhost:7654
      $ zerou review ./my-app --serve
      mission-control dashboard up · live branch-trace feed streaming
      04Block merge if patched lines aren't covered
      $ zerou coverage ./my-app --threshold 50
      branch coverage 73% ≥ 50% → exit 0 · audit trail at .zerou/branch-trace.jsonl
      install
      $ npm install -g zerou
      $ zerou --version
      zerou 0.1.0 · alpha · MIT