Live webinarWebinar with Jason Lee, Tue, Oct 13Your newest insider is an AI agent.Jason LeeFormer CISO, Zoom & SplunkRegister

Guardrails for Claude Code, built from your own rules.

Your company's rules reach Claude Code before every edit. What it must never do is blocked before it runs.

npx -y @cybedefend/vibedefend@latest install

Create a free accountAny recent version of Claude CodeRead the docs

Claude CodeClaude Code is writingbilling/refund.ts

export async function refund(req: Request) {
  const { id, amount } = await req.json();
  const invoice = await db.invoices.find({
    id, tenant: req.tenant,
  });
  if (amount > 500)
    await approvals.second(invoice);
  return payments.refund(invoice, amount);
}

Every query is scoped to the tenant.

rules/data-access.md

Refunds above €500 need a second approver.

Approved once by Sofia M.

Checked before the commit: clean

Set up in four steps.

  1. Run one commandIn any terminal, on macOS, Linux or Windows. Node 18.17 or later.
  2. Choose your region, sign inEU or US. Your browser opens to sign in, no key to paste.
  3. Tick Claude CodeThe installer finds the agents on your machine and ticks them for you.
  4. Code as usualOpen Claude Code: VibeDefend runs alongside it.

Check it any time: vibedefend status

What VibeDefend adds to Claude Code.

Rules served

Your business and security rules reach Claude Code before each edit.

Claude CodeClaude Code is writingsrc/billing/cart-checkout.ts

const total = new Decimal128(cart.sum);
const rows = await db.query(
  "SELECT * FROM carts WHERE id = $1", [id]
);

Monetary amounts use Decimal128, never Number.

Mined from src/billing.ts:14

Parameterise every query that mixes user input.

OWASP Top 10

Served before the edit

Secret guard

Raw secret reads are refused; Claude Code gets the managed reference instead.

Claude CodeClaude Codewebhooks.ts

  1. cat .env | grep STRIPE

    Blocked: raw secret read

  2. Insteadprocess.env.STRIPE_WEBHOOK_SECRET

  3. npm test -- webhooks

    Tests pass

Logged for the team

Action guard

Destructive commands, schema drops and protected paths are stopped before they run.

Claude CodeClaude Code

  1. rm -rf dist/

    Allowed: build output

  2. rm -rf .cache/

    Allowed: cache

  3. rm -rf ./storage/uploads

    Blocked: protected path, user uploads

Logged for the team

Live findings

SAST, SCA, secrets, IaC and CI/CD findings, live in the session.

Claude CodeClaude Code

  1. SASTsrc/db/users.repo.ts:42

    SQL injection

  2. SCApackage.json

    lodash 4.17.20, CVE-2021-23337

  3. Secretsconfig/prod.yml

    AWS access key

  4. IaCinfra/main.tf

    S3 bucket public-read

  5. CI/CD.github/workflows/deploy.yml

    pull_request_target

In the agent's context, live

Your questions.

Does VibeDefend change my Claude Code configuration?
It adds its hooks and registers the cybedefend MCP server, in ~/.claude/settings.json, ~/.claude.json. Your own hooks stay: re-running the installer only replaces VibeDefend's entries.
What leaves my machine?
The analysis runs in the region you chose at install, EU or US. The decision to block an action is made on your machine. Before an edit, the hook sends the part of the file being written, to find the rules that apply. The session review sends the files the session changed. Your sign-in token stays in your OS keychain.
Which version of Claude Code do I need?
A recent version of Claude Code, and Node 18.17 or later. The installer runs on macOS, Linux and Windows.
Do I need to link each repository?
Not for projects imported from GitHub or GitLab: VibeDefend reads the repo's origin and finds the project. For any other repo, run vibedefend link once. It writes .cybedefend/config.json with the project ID.
How do I remove it?
Run vibedefend uninstall: it removes every file VibeDefend installed. If you installed the package globally, then run npm uninstall -g @cybedefend/vibedefend.
Does Claude Code have guardrails of its own?
It has permissions you set by hand. VibeDefend adds guardrails built from your company's rules: they reach Claude Code before each edit, and a hook blocks dangerous actions before they run.
Technical details for Claude Code
MCP server
Availableclaude mcp add --scope user
Rules before each edit
AvailablePreToolUseEdit|Write|MultiEdit|BashAlso before shell commands that write files: redirections, heredocs, tee, sed -i. Read-only commands fetch nothing.
Dangerous actions blocked
AvailablePreToolUse
Rules loaded at start
AvailableSessionStart
End-of-session review
AvailableStop
Review of long sessions
AvailablePreCompact
Reminder on every prompt
AvailableUserPromptSubmit

What it writes for Claude Code

  • ~/.claude/settings.json
  • ~/.claude.json

And the hook runner in ~/.cybedefend/. Your own hooks stay: re-running the installer only replaces VibeDefend's entries.

The MCP server is added at user scope, so every repository sees it, not only the one you installed from.

Only Claude Code gets a short reminder on every prompt: without it, a skill that starts on its own could take over before your rules arrive.

Something off? vibedefend status gives a read-only report, and vibedefend doctor repairs what it can.