guardrails · git:20260928.73c65f9 · 2026-09-28 · sha256 dcc5859f05e8c8b5

guardrails git:20260928.73c65f9A

Immutable. This exact content never changes and is served at /api/v1/blob/dcc5859f05e8c8b5.

---
name: guardrails
description: How AgentGuards enforces its guardrails in Codex — fully automatic, via hooks, with nothing for you to call. Load this if asked how AgentGuards works, whether you need to screen something yourself, or why no agentguards check_input / authorize_action tools are available.
---

# AgentGuards — enforced by hooks

This plugin has no MCP server, so there is no `check_input`, `authorize_action`
or `health_check` tool — do not look for them, they are not installed.

That is not reduced protection. The hooks in `hooks/hooks.json` enforce
deterministically, on every request, whatever the model does:

- **`UserPromptSubmit`** screens every prompt before you see it.
- **`PreToolUse`** authorizes every shell command before it runs: denied, or
  allowed, or left to Codex's own approval prompt. For a web fetch (`curl`,
  `wget`, or a web-fetching MCP tool) it first checks the URLs, and denies a fetch
  whose URL carries a secret or targets a blocked destination.
- **`PermissionRequest`** rides that approval prompt: it denies what AgentGuards
  rejects and remembers what the user approved for the rest of the session.
- **`PostToolUse`** scans the output of shell commands that fetch (`curl`,
  `wget`, `http`, `fetch`, `aria2c` — also behind `sudo`, `timeout`, `bash -c`,
  `$(...)`) and of web-fetching MCP tools: instructions hidden in a page are
  removed and you get the rest with a note; a page with a visible attack, or
  sensitive values, is withheld or redacted before you read it. It also scans
  `apply_patch` edits for vulnerabilities and secrets.

Nothing here requires you to call a tool, check a decision, or format a block
message — the hook has already acted by the time you see (or don't see) the
result. If a hook blocks something, reply with its message rather than
composing your own.

**One limit, stated plainly:** Codex's built-in web search runs on OpenAI's
servers, not on this machine, so no hook ever sees its results. Content fetched
with a shell command or an MCP fetch tool is screened; built-in web search
results are not.

To check that the guardrails are on, use the `status` skill. To set the API key,
use the `setup` skill.