// the direct install command

One command in. Ten seconds to the first finding.

Security installs are supposed to be the part where you lose an afternoon. This one is four lines of YAML, or a single command at a terminal. No account, no agent, no sidecar — and the code being scanned never leaves the machine it is running on.

$ npx vibeshield scan .

Already have the binary? vibeshield scan --staged does the pre-commit job right now.

Performance & Security Law

Zero-Exfiltration Guarantee

Static analysis runs 100% locally on your machine or CI runner. No source code or secrets are ever transmitted across the network.

// Verification status:
✓ Network egress: disabled by default
✓ SHA-256 binary checksums verified

0

accounts, API keys, or telemetry

4

lines of YAML if you want the PR gate

1.2s

median diff scan

122

AI-failure-mode rules, offline

Five doors, same scanner

Pick the one that matches how you work. They all run the identical engine — the rules pack lives inside the binary, so there is no “lite” version of any of these.

01 · Zero install

Nothing on PATH yet? Type this

Fetches the binary once, verifies the checksum, runs the scan. No global state, no prompt for anything.

first run ~30 s · every run after it under 2 s

terminal
npx vibeshield scan .

02 · The direct command

One line, then it is just installed

The installer drops the static binary in ~/.local/bin, checks it against the release sha256sums, and — if it spots one — wires the audit skill into your coding agent. Linux, macOS, and Git Bash on Windows.

no sudo · no PATH edits behind your back · --agent none to skip the skill

terminal
curl -fsSL https://raw.githubusercontent.com/rajviyash9136freefr-tech/vibeshield/main/scripts/install.sh | bash

03 · The gate

Five lines of YAML, every PR covered

Drop the file, push the branch, forget about it. From the next pull request on, the VibeCheck report posts itself — in warn mode by default, so it informs before it ever blocks.

runs on your runner · code never leaves it

.github/workflows/vibeshield.yml
name: VibeShield
on: [pull_request]
jobs:
  vibeshield:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: rajviyash9136freefr-tech/vibeshield/action@v3.0.1

04 · The commit-time habit

Stop it at the commit, not the PR

The same rules engine, on staged files, offline. Under 1.5 seconds on a typical diff. git commit --no-verify always works — it is a seatbelt, not a hostage.

pre-commit run --all-files to backfill

.pre-commit-config.yaml
repos:
  - repo: https://github.com/rajviyash9136freefr-tech/vibeshield
    rev: v3.0.1
    hooks:
      - id: vibeshield

05 · From source

If you read Go, read the source before you run it

One module, no CGO, plain go install. Every rule pack is versioned YAML in the same repo — nothing ships compiled that you cannot diff.

go test ./... passes before every release tag

terminal
go install github.com/rajviyash9136freefr-tech/vibeshield/scanner/cmd/vibeshield@v3.0.1

The first sixty seconds, honestly

Here is exactly what happens when you run the command above in a repo with AI-written code in it. Nothing is phoned home, nothing is installed that you did not ask for, and the scan finishes before your coffee lands.

  • The binary is fetched and its sha256 is checked against the release manifest. A mismatch refuses to run — loudly.
  • The rules pack (core 2.0.0, MIT) loads from inside the binary. Zero network, zero config.
  • Every tracked file gets pattern-matched against the 122 AI-failure-mode rules — 117 of which the engine can evaluate today.
  • Findings print in the VibeCheck format: why it matters for AI code, the pattern, a one-line fix. Secrets are redacted to 4+4 characters before anything is printed.
terminal — your-project
$ npx vibeshield scan .
  vibeshield 3.0.0 · rules core 2.0.0 (offline)
  Scanning 42 files (full mode)… done in 0.9s

  🔴 CRITICAL  VS-PKG-001  hallucinated-package
     src/utils/parse.ts:8 — fast-parse-utils-v3@2.1.4
     9 days old · 1 maintainer · postinstall curls a host
     → Fix: replace with node:util (12 lines, zero dependencies).

  🟠 HIGH      VS-SEC-017  hardcoded-secret
     src/lib/agent.ts:41 — OPENAI_API_KEY = "sk-proj-••••••••4a2f"
     → Fix: read process.env.OPENAI_API_KEY and rotate the key now.

  ✓ 40 files clean · 2 findings · 0 leaks merged
  Next: vibeshield init   (add the PR gate + hook)

What can actually go wrong

Four honest answers to the four things that actually stop an install. If yours is not here, open an issue — someone reads them.

I am on Windows. Does the one-liner work?

Use the PowerShell installer (irm … | iex), which downloads vibeshield-windows-x86_64.zip, unpacks vibeshield.exe into ~/.local/bin, adds it to your user PATH, and wires the audit skill into any coding agent it finds. The .sh installer is for POSIX shells — Git Bash works, plain PowerShell does not.

Corporate proxy / air-gapped network?

Download the archive for your platform from GitHub Releases, check it against the matching line in sha256sums.txt from the same release, and put the binary on PATH. Rules are embedded in the binary, so scans work with the network unplugged — the scanner links in no HTTP client at all.

I ran it and nothing printed but findings.

Good. Exit code 0 means the scan completed; in the default warn mode findings never fail the run. In CI, set mode: block-on-critical in vibeshield.yml when you want the check to gate merges — the docs page walks through the four modes.

How do I get rid of it?

rm ~/.local/bin/vibeshield (or delete vibeshield.exe), remove the workflow file, remove the hook entry, and delete vibeshield.yml. There is no daemon, no service, and no state outside your repo to clean up.

I am not sure it is installed correctly.

Run vibeshield doctor. It reports the binary and its rule pack, the config, the git hook, the PR-gate workflow and your agent rule files, and prints the exact command that fixes each gap. It changes nothing, and it exits 1 when something needs fixing.

Want the flags, exit codes, and SARIF output? CLI reference → · GitHub Action → · pre-commit →

Audit Your AI Code Before It Enters Production

Scan local git diffs in under 1 second. 100% offline static binary analysis with zero code or tokens sent to external servers.

MIT Licensed · 100% Free · No account required · Open Source