Skip to content

runkids/veto

Repository files navigation

veto

Human-in-the-loop confirmation for AI Agents

"I let my AI run terraform destroy.
Because I can stop it with one touch."

Veto Demo

License Release Downloads Rust


npm install? No. yaml config? No. Just:

curl -fsSL https://raw.githubusercontent.com/runkids/veto/main/install.sh | bash
veto setup claude

Your AI now asks before it destroys.


Why

Your AI agent runs as you. It doesn't need sudo to rm -rf ~/Documents.

veto sits between your AI and the terminal. Dangerous command? Touch ID. Catastrophic command? Blocked. Safe command? Passes through silently.

It's a seatbelt — not a sandbox.


Touch ID · PIN · TOTP · Telegram


How does it work?
+-----------+     +-----------+     +-----------+
| AI Agent  |---->| veto gate |---->| Terminal  |
+-----------+     +-----+-----+     +-----------+
                        |
                  +-----v-----+
                  | Risk Check|
                  +-----+-----+
                        |
        +---------------+---------------+
        |               |               |
        v               v               v
   +--------+      +--------+      +--------+
   |  Low   |      |  High  |      |Critical|
   | [pass] |      |[auth]  |      |[block] |
   +--------+      +--------+      +--------+

veto setup claude adds a PreToolUse hook to ~/.claude/settings.json. Every command Claude Code tries to run goes through veto first.


Getting Started · Cookbook · Reference · Troubleshooting


Works with Claude Code
Runs on macOS (x86/ARM) · Linux (x86/ARM)

Built with Rust.

About

🔑 Human-in-the-loop confirmation for AI Agents. Let your AI deploy, delete, push — with your fingerprint.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors