Skip to content

Dev Guard

Runtime authorization for coding-agent actions

Coding agents can modify repositories, install packages, run shell commands, and change infrastructure. Static permissions and IDE trust prompts do not evaluate whether this specific proposed action should execute now.

Dev Guard evaluates coding-agent actions before execution—comparing requested scope to proposed scope, binding patches, and returning ALLOW, REQUIRE_APPROVAL, or BLOCK with signed evidence.

Requested scope vs proposed scope

Hold or block when the agent expands beyond the files or paths the operator requested.

Patch hash binding

Bind evaluation and approvals to a hash of the proposed patch so the authorized change cannot drift.

Protected paths

Require approval or block writes under sensitive directories (auth, secrets, infrastructure).

File deletion

Treat destructive deletes as consequential by default.

Dependency changes

Evaluate package installs and lockfile mutations before they land.

Shell commands

Authorize or block shell execution based on command class and risk policy.

Git operations

Gate commit, push, force-push, and branch mutations.

Infrastructure operations

Evaluate infra-as-code applies and production deploys before they run.

Action schema and scope example

CONCEPTUAL ACTION SCHEMACoding-agent action metadata
{
  "action": "apply_patch",
  "requested_scope": ["src/auth/login.ts"],
  "proposed_paths": [
    "src/auth/login.ts",
    "src/database/schema.ts"
  ],
  "patch_hash": "sha256:…",
  "contains_deletion": false,
  "dependency_change": false,
  "shell_command": null
}
CONCEPTUAL ACTION SCHEMAScope expansion → REQUIRE_APPROVAL
Requested:  src/auth/login.ts
Proposed:   src/auth/login.ts
            src/database/schema.ts

Decision:   REQUIRE_APPROVAL
Reason:     The proposed change expands beyond the requested file scope.

Decision examples

ALLOW

In-scope patch

Agent applies a patch only to the requested file with no deletions or dependency changes.

REQUIRE_APPROVAL

Scope expansion

Agent proposes edits outside the requested path set, or touches a protected directory.

BLOCK

Prohibited operation

Policy forbids force-push to main, production deploy from an unapproved branch, or deletion of protected paths.

Integration status

Do not treat planned adapters as live. Labels match product reality.

IntegrationStatusNote
Runtime Evaluate APIAvailableHTTP API for pre-execution decisions.
Python SDKAvailablepip install bobsentry
TypeScript SDKAvailablenpm install @bobsentry/sdk
Dev Guard core evaluationDesign-partner previewCoding-agent action schemas and scope checks.
IDE adaptersPlannedNot released. Do not assume universal IDE enforcement.
LIVE API EXAMPLEPython SDK
# pip install bobsentry
from bobsentry import RuntimeClient

client = RuntimeClient(api_key=os.environ["BOBSENTRY_API_KEY"])
result = client.evaluate(action="apply_patch", metadata={...})
# BobSentry returns the decision; your integration must honor it.
PLANNED ADAPTERIDE adapter (not released)
// Planned: editor/agent adapter hooks
// Status: PLANNED ADAPTER — design-partner discussions only
// IDE integrations are not publicly available.

Design-partner CTA

If you have a pre-execution hook for coding-agent actions, we want to hear from you.

By contacting us you agree we may use your message to respond. See our Privacy page.