Human? Visit human.md/sapien.html for the human-readable version.
================================================================================
human.md — the human API for agents
================================================================================
Agents are connected to everything except the humans they work for.
`human` gives any agent a one-line way to reach a real person on Telegram
(Slack coming next) and block until they answer.
INSTALL
-------
npm install -g @novu/human
SETUP (once, by the human)
---------------------------
npx @novu/human setup # interactive channel picker
npx @novu/human setup telegram
npx @novu/human setup slack
USAGE (forever after, by any agent on the machine)
----------------------------------------------------
human ask "Which environment should I deploy to?"
human approve "Delete 342 stale records from prod?"
human choose "Pick a release strategy" --option canary --option blue-green
human tell "Nightly build finished — 0 failures."
HOW IT WORKS
------------
- `setup` provisions a keyless Novu environment (no account needed), a
hidden relay agent, and links a channel — Telegram via QR, Slack via
app install. Run it again with another channel to add more.
`human channels` lists linked channels; `human channels --default slack`
switches the default.
- Agents stay channel-blind: routing is the human's preference.
`--via telegram|slack` exists as a rare per-call override.
- Each command delivers a one-off message (with action buttons where
relevant) and BLOCKS until the human answers, the --ttl expires, or
--timeout elapses.
- Answers flow back through button clicks or plain replies; the CLI
resolves and your agent continues.
EXIT CODES (stable contract for agents)
----------------------------------------
0 answered / approved / chosen / delivered
10 denied
11 timed out waiting — still pending, resume with `human wait `
12 expired or canceled
1 error
FLAGS
-----
--from attribution shown to the human ("Requested by deploy-bot")
--ttl how long the request stays answerable (default 24h, max 72h)
--timeout max time this invocation blocks; on timeout it prints
the id so `human wait ` can resume
--async don't block; print the interaction id immediately
--json full interaction object for programmatic parsing
--to address a different human than the default from setup
--via deliver on a specific linked channel instead of default
AUTH
----
`setup` stores credentials in ~/.novu/human.json. Alternatively set
NOVU_SECRET_KEY (and optionally NOVU_API_URL) for an existing Novu
environment.
LINKS
-----
npm https://www.npmjs.com/package/@novu/human
source https://github.com/novuhq/novu/tree/main/packages/human
human https://human.md/sapien.html
================================================================================
MIT License — built by Novu (https://novu.co)
================================================================================