Guardrails for OpenAI Codex, built from your own rules.
Your company's rules reach Codex before every patch. What it must never do is blocked before it runs.
npx -y @cybedefend/vibedefend@latest installOpenAI Codex is writing
billing/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.mdRefunds above €500 need a second approver.
Approved once by Sofia M.Checked before the commit: clean
Set up in four steps.
- Run one commandIn any terminal, on macOS, Linux or Windows. Node 18.17 or later.
- Choose your region, sign inEU or US. Your browser opens to sign in, no key to paste.
- Tick OpenAI CodexThe installer finds the agents on your machine and ticks them for you.
- Code as usualOnce, in Codex: run
/hooksand trust thecybedefendentries.
What VibeDefend adds to OpenAI Codex.
Rules served
Your business and security rules reach OpenAI Codex before each edit.
OpenAI Codex is writing
src/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:14Parameterise every query that mixes user input.
OWASP Top 10Served before the edit
Secret guard
Raw secret reads are refused; OpenAI Codex gets the managed reference instead.
OpenAI Codex
webhooks.ts
cat .env | grep STRIPEBlocked: raw secret read
Instead
process.env.STRIPE_WEBHOOK_SECRETnpm test -- webhooksTests pass
Logged for the team
Action guard
Destructive commands, schema drops and protected paths are stopped before they run.
OpenAI Codex
rm -rf dist/Allowed: build output
rm -rf .cache/Allowed: cache
rm -rf ./storage/uploadsBlocked: protected path, user uploads
Logged for the team
Live findings
SAST, SCA, secrets, IaC and CI/CD findings, live in the session.
OpenAI Codex
SAST
src/db/users.repo.ts:42SQL injection
SCA
package.jsonlodash 4.17.20, CVE-2021-23337
Secrets
config/prod.ymlAWS access key
IaC
infra/main.tfS3 bucket public-read
CI/CD
.github/workflows/deploy.ymlpull_request_target
In the agent's context, live
Your questions.
Does VibeDefend change my OpenAI Codex configuration?
~/.codex/hooks.json, ~/.codex/config.toml. Your own hooks stay: re-running the installer only replaces VibeDefend's entries.What leaves my machine?
Which version of OpenAI Codex do I need?
Do I need to link each repository?
vibedefend link once. It writes .cybedefend/config.json with the project ID.How do I remove it?
vibedefend uninstall: it removes every file VibeDefend installed. If you installed the package globally, then run npm uninstall -g @cybedefend/vibedefend.Why do the hooks show Active 0 in Codex?
/hooks and trust the cybedefend entries.Technical details for OpenAI Codex
- MCP server
- Available
~/.codex/config.toml - Rules before each edit
- Available
PreToolUse^(Edit|Write|apply_patch|Bash)$Before apply_patch, edits and shell commands that write files. Read-only commands fetch nothing. - Dangerous actions blocked
- Available
PreToolUse - Rules loaded at start
- Available
SessionStart - End-of-session review
- Available
Stop - Review of long sessions
- Not availableNo equivalentCodex has no event before compaction.
- Reminder on every prompt
- Through MCP
Server.instructionsCodex receives the CybeDefend instructions from the MCP server at each session, so no reminder is needed.
What it writes for OpenAI Codex
~/.codex/hooks.json~/.codex/config.toml
And the hook runner in ~/.cybedefend/. Your own hooks stay: re-running the installer only replaces VibeDefend's entries.
Approve the hooks once. Codex 0.131 and later ask you to trust each hook: open Codex, run /hooks and trust the cybedefend entries. Until then the panel shows Installed N, Active 0.
One more sign-in, once: Codex's MCP token cannot call the endpoints the hooks use. The installer also sets hooks = true in ~/.codex/config.toml for you.
Something off? vibedefend status gives a read-only report, and vibedefend doctor repairs what it can.