godozo is a tiny, self-hostable relay. Your agents ping you when something needs attention and pause for your approval before doing anything risky. You tap Approve on your phone; the agent continues.
# the agent blocks until you tap Approve on your phone godozo gate --title "deploy to prod?" --detail "$CMD" && ./deploy.sh # or just get pinged when a long job finishes godozo notify "nightly build passed ✅"
Three primitives you compose into any agent or script. Nothing to expose, nothing to babysit.
Fire-and-forget pings — “the migration finished”, “the build failed”, “deploy #128 shipped.”
The agent blocks on request_approval until you tap Approve or Deny. The answer is the decision.
Every notify and approval is logged locally — who approved what, and when. Your record, on your box.
Outbound-only (long-poll) — no public webhook, no inbound port. Runs behind NAT, on a laptop, next to a build.
An MCP server for any MCP client, a CLI for any script, and hooks for Claude Code. Claude, Cursor, local models.
Core + CLI are zero-dependency (just Node). Apache 2.0. Read the whole thing in one sitting.
Tell the agent when to check in — and hard-gate the actions that must never slip past a human.
request_approval and wait.”PreToolUse hook gates a command deterministically — even if the model forgets to ask.# CLAUDE.md — the policy Before any prod deploy or destructive action, call godozo request_approval and WAIT for the answer. # settings.json — the seatbelt "PreToolUse": [{ "matcher": "Bash(docker compose*prod*up*)", "hooks": [{ "type": "command", "command": "godozo gate" }] }]
godozo — from go + どうぞ dōzo (“please, go ahead”). A green light for your agents.
Bridge any agent to any channel — swap claude -p for ollama run and it’s the same tool.