Solution · Free trial

    Your security guidelines, in every coding agent.
    Steered at the edit.
    Enforced at the pull request.

    More code, from more people who never read your security guidelines. Konvu maps them into Controls from your standards and your code. Your coding agent gets the right one at the edit, and a PR check confirms it held before merge.

    Free trial. SOC 2 Type II. Code never stored by Konvu or model providers, never used for training. GitHub access: read code and metadata, write pull request comments.

    Who writes code has changed. The guidelines did not move.

    More code, from more people

    Engineers ship more with coding agents. PMs, designers, and support engineers open pull requests too.

    The guidelines exist

    Every read scoped to the caller's organization. Role changes admin-only. Refunds keep their approval step. All of it in wikis, threat models, and the AppSec team's heads.

    Nobody writing the code reads them

    A new engineer skims them once. A PM prompting Claude Code never sees them. The agent does not know they exist.

    Review cannot close the gap

    Review capacity is flat while change volume grows. Violations surface late, from a reviewer who happened to look, or the next pentest.

    Where it sits

    One map of your Controls, used in every coding session and every pull request

    Konvu maps your Controls ahead of time. A hook on each developer machine matches every edit locally and steers the agent when one applies. A PR check reviews the change against the same Controls before merge.

    Step 1 · Mapped from your standards and code

    Konvu writes down the rules your application already relies on

    Start with what you have: security standards, a threat model, pentest reports, written policies. Konvu reads them with the repository, maps assets, actors, trust boundaries, and controls, and writes each rule down as a Control linked to its source. A claim that does not point at real code is dropped.

    Download the Guardrails datasheet (PDF) →
    Control org-scoped-reads on acme/web, active, broken access control on Report. Condition, mapped by Konvu: every read on Report must be scoped by the organization_id of the session principal, never by an identifier from request input. Binds api/reports/** and require_org_scope in api/middleware/auth.py. Derived from the org-isolation boundary in the threat model, finding KONVU-2331 reproduced on 2026-06-14, and the fix in a41c2ef. Steered at the edit, enforced at the PR.
    Step 2 · Review, edit, add your own

    You edit them, reject them, and add your own

    Edit the Controls that read wrong, reject the ones you disagree with, and add the rules only your team knows, in plain language: no new route without the session middleware, every change under billing keeps the approval step. Where the code gets a control wrong, correct the Control once and every agent gets the corrected version. The rules stay yours.

    Terminal running konvu guardrails show acme/web. Four active Controls with their sources: org-scoped-reads from code, the threat model and KONVU-2331; admin-only-role-changes from api/admin/roles.py; refund-keeps-approval from billing/refunds.py; no-new-public-routes, a custom appsec rule. Then konvu guardrails add acme/web "webhooks use the signing helper" adds the custom rule webhooks-signed, checked from the next pull request.
    Step 3 · Steered in the coding agent

    The agent gets the guideline at the edit. The person prompting never has to read it.

    A local hook matches each edit against your Controls, with no model and no network call. When an edit touches one, the hook stops it once and gives the agent the Control, the lines it is based on, and a request to say how the change follows it. Claude Code, Codex, or Cursor. Senior engineer, new hire, PM, or unattended agent: same guidance at the same moment.

    Why coding agents miss business-logic vulnerabilities →
    A coding agent session. The agent is about to write api/reports/export.py for a bulk report export, and the Konvu hook stops the edit once with guidance for org-scoped-reads: every read on Report is scoped to the session organization, from KONVU-2331, reproduced and fixed in a41c2ef. The agent reads api/middleware/auth.py, scopes the export query to the session organization, writes the file again, and the edit is allowed. Claude Code, Codex, Cursor, through a local hook with no model on the edit path.
    Step 4 · Enforced at the pull request

    Every pull request checked. Every finding decided.

    A PR check reviews every pull request against the same Controls, including code written by hand. Make it required and a failing check blocks the merge. Leave it optional and it reports. Hooks and CI are independent. A broken Control gets fixed. New access no Control covers yet is allowed, which records it as a new Control, or denied. The decision lands on the pull request.

    Checks on acme/web pull request #482, which adds GET /api/reports/export. konvu / guardrails fails with 1 finding: it breaks org-scoped-reads by reading Report without org scope, introduced in 2f8d1c3, derived from KONVU-2331 (reproduced). The same bug on a new route. 13 Controls hold and the verdict is recorded on the pull request. CI mode is report-only, so the finding is added for review.
    Step 5 · See what held

    Every Control shows where it steered and what it caught

    The dashboard shows each Control, how often it steered a coding agent and on which developer machine, and which pull requests the check caught and got fixed.

    prevent · control detail

    Rolled out once for every developer, and out of the agent's reach.

    One managed setting

    Add Guardrails to your coding agent's managed settings once. Every developer's next session picks it up. Nothing goes into your repositories.

    An open-source plugin

    Read exactly what runs on your machines: the hooks and a pinned, checksum-verified binary. If it fails, the agent carries on as if it were not installed.

    The agent cannot turn it off

    The agent cannot edit the Controls or the hook settings. You revoke one machine, or the whole rollout, in one action.

    Prompts stay on the machine

    The hook reads the prompt locally and calls no model. Reports say which guidance fired, on which file, session, and machine, and whether the edit was stopped.

    Fixed once, stays fixed

    Every bug you already paid to fix becomes a rule

    A pentest finding, or an exploit Konvu reproduced, becomes a Control with the fix commit as its evidence. The same bug cannot come back in a new endpoint, whoever writes it.

    Timeline for KONVU-2331, GET /api/reports/:id reads Report without org scope. 2026-06-14: exploit reproduced by Konvu, a cross-tenant read. a41c2ef: fix merged, reads scoped to the session organization. 2026-06-15: Control org-scoped-reads active, steered and checked on every change. PR #482: GET /api/reports/export, the same bug on a new route, caught in CI before merge with a finding on the pull request.

    Alongside your agents. Instead of a rules file.

    A SECURITY.md or AGENTS.md

    Advice the agent may ignore. It loads into every session, goes stale, and nothing checks it was followed.

    SAST custom rules

    Semgrep and CodeQL can express a missing tenant check, if someone writes the rule per service and keeps it current. Konvu maps it and keeps it current.

    An AI reviewer

    Reviews each diff cold, without your threat model or the Controls your code already relies on. The Guardrails PR check reviews against your mapped Controls and records every decision.

    Your scanner stays

    Scanners find dangerous calls and known patterns. Guardrails checks that your guidelines hold. Run both.

    Start with one repository

    Konvu maps its Controls with evidence. Add your own, and every change is steered and checked from then on.

    Free trial. SOC 2 Type II. Code never stored by Konvu or model providers, never used for training. GitHub access: read code and metadata, write pull request comments.

    Frequently asked questions