Apache 2.0 · self-hosted · zero-dependency

Notify & approve your AI agents,
from your phone.

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 ✅"
What it does

The ambient layer between your agents and you

Three primitives you compose into any agent or script. Nothing to expose, nothing to babysit.

📣

Notify

Fire-and-forget pings — “the migration finished”, “the build failed”, “deploy #128 shipped.”

🚦

Approve

The agent blocks on request_approval until you tap Approve or Deny. The answer is the decision.

📋

Audit

Every notify and approval is logged locally — who approved what, and when. Your record, on your box.

🏠

Self-host in a minute

Outbound-only (long-poll) — no public webhook, no inbound port. Runs behind NAT, on a laptop, next to a build.

🤖

Any agent

An MCP server for any MCP client, a CLI for any script, and hooks for Claude Code. Claude, Cursor, local models.

🪶

Tiny & open

Core + CLI are zero-dependency (just Node). Apache 2.0. Read the whole thing in one sitting.

How it works

The prompt is the policy. The hook is the seatbelt.

Tell the agent when to check in — and hard-gate the actions that must never slip past a human.

  • Tell it in plain language. “Before any prod deploy or destructive action, call request_approval and wait.”
  • Lock the crown jewels. A Claude Code PreToolUse hook gates a command deterministically — even if the model forgets to ask.
  • Decide from anywhere. The request lands on your phone with the command + context. Tap Approve; work resumes.
# 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.

Works with

Your agents. Your channels. Your box.

Bridge any agent to any channel — swap claude -p for ollama run and it’s the same tool.

Claude Code MCP clients Cursor Local models (Ollama) Any CLI / script Telegram Slack — soon Email / SMS — soon