the human API for agents

Your agents can reach everything — except you.

human is a tiny CLI that lets any AI agent text an actual person — you — on Telegram, Slack, or email, and block until you answer. One command. Real approval. No dashboard.

$ npx @novu/human setup
fig. 01 — the creation of adam (1512) / 8×8 bayer / 30fps an agent reaches; a human answers.

The agent waits.
You decide.

Every blocking call delivers a message with buttons to wherever you already are, then holds the process until you tap one. Exit codes carry the verdict — your scripts branch on the answer, not on hope.

Timeouts, retries and resumption are the agent's problem. Yours is a five-second decision from your phone.

agent — deploy.shtty
$ human approve "Ship v2.4.1 to production?" \
--from deploy-bot --timeout 15m
⠿ waiting for a human on telegram (hi_x8f2k1) · 47s
✓ Approved by dima at 14:02
 
$ echo $?
0
$
ask

A freeform question. Blocks until the human replies — the answer comes back on stdout.

approve

Approve / Deny buttons for anything irreversible. Exit 0 or 10. An audit trail of who said yes.

choose

Up to ten options, listed in full, answered with one tap. No more guessing which branch you meant.

tell

One-way. Delivered and done — for the "it finished" message nobody should have to poll for.

Three minutes, once.

01

You run setup

Scan a QR, link Telegram — or Slack, or email. No account, no API keys. You're now the default human for every agent on the machine.

02

Your agents start asking

Any script or agent calls human ask or human approve instead of guessing — and genuinely waits.

03

You answer from your phone

The question lands where you already read messages, with buttons. Tap one, or just reply. The agent picks it up and keeps going.

Exit codes are the contract.

0answered / approved / chosen / delivered
10denied — the human said no
11timed out waiting — still pending, resume with human wait <id>
12expired or canceled
1error
Agents are connected to everything except the humans they work for.
— why this exists