Products Open source

azet-guard

Runtime guardrails for AI coding agents. azet-guard plugs into Claude Code hooks and checks every tool call while the agent works: it stops destructive commands, keeps API keys out of the model and asks you before risky moves.

Version 0.1.0 · free and open source under Apache-2.0 · Python 3.11 or later, standard library only. No network calls: nothing leaves your machine.

What it does today

  • Stops catastrophic commands

    Commands such as rm -rf ~, disk wipes and sending .env over the network are refused before they run. Writes into .git/, ~/.ssh/ and /etc/ are refused too.

  • Keeps secrets out of the model

    An API key in a command line is refused, keys in command output are redacted before the agent sees them, and a key pasted into a prompt adds a note telling the agent not to repeat it.

  • Asks before risky moves

    curl … | sh, force-pushing main, reading .env or SSH keys, dumping the environment and git add .env stop and wait for your answer.

  • Catches “all tests pass” when no test ran

    If the agent is about to finish with that claim and no test command ran in the turn, it is sent back once to run them.

  • Flags prompt injection

    Text such as “ignore previous instructions” in a fetched page or a file is flagged, so the agent treats it as data.

  • Audit log

    Every decision is written to an append-only log, ~/.azet-guard/audit.jsonl (mode 600), with secrets redacted before anything is written. azet-guard log prints the latest ones.

Install. pipx install azet-guard or uv tool install azet-guard, then azet-guard install for all your Claude Code projects (~/.claude/settings.json) or azet-guard install --project . for one repository (.claude/settings.json, which you can commit to share with your team). Restart Claude Code, or open /hooks, so the hooks load. azet-guard doctor shows where it is installed and which policy applies; azet-guard uninstall removes only its own entries and keeps your other hooks.

Policy. The defaults work as installed. You can tune them in ~/.azet-guard/policy.toml or, for a team, in .azet-guard.toml in the repository: switch rules off, change a rule between deny, ask and warn, add your own command patterns, or set mode = "monitor" to log what it would do without blocking anything. azet-guard check "<command>" shows what it would do with any command.

Secrets it recognises. AWS access keys, GitHub tokens, Anthropic and OpenAI keys, Stripe keys, Slack tokens, Google API keys, private key blocks and JWTs.

Limits

  • A guardrail, not a sandbox. The rules are regular expressions, and a determined agent can obfuscate a command. Use it together with Claude Code permissions and, for untrusted work, a container.
  • Secrets with a recognisable prefix. Plain passwords and custom tokens are not detected unless you add a rule.
  • The test check looks for a test command. It does not judge whether those tests cover your change.
  • It fails open. If azet-guard itself crashes, your session keeps working and the error goes to the audit log. A policy file that does not parse fails loudly instead.
  • Claude Code only, for now. Adapters for Codex CLI and Cursor, and a team dashboard with shared policies, audit search and SSO, are on the roadmap. To try the team version early, write to hello@azet.io.

Security

Report a vulnerability privately, through GitHub’s private vulnerability reporting (the Report a vulnerability button under the repository’s Security tab) or by email to hello@azet.io. A bypass of a deny rule, a secret that reaches the model or the audit log unredacted, or a crash that disables the hooks all count. The security policy says what to include and when we reply. The project meets the OpenSSF Best Practices passing criteria (self-certified, October 2026).

The repository is checked by the OpenSSF Scorecard, and its tests run in CI on Python 3.11, 3.12 and 3.13 for every push and pull request.

At a glance

StatusReleased · version 0.1.0 · free
Made byAZET LLC
Works withClaude Code, through its hooks
RequiresPython 3.11 or later; no other dependencies
Installpipx install azet-guard · uv tool install azet-guard
LicenseApache-2.0
Source and releasesGitHub · Release v0.1.0 · PyPI
Your dataNo network calls. The audit log stays on your machine.
Security reportsSecurity policy · private vulnerability reporting on GitHub
Helphello@azet.io

Put guardrails on your coding agent.

View on GitHub

Free and open source · Apache-2.0 · pipx install azet-guard