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)
================================================================================