human-cli

Request decisions, approvals, and notifications from humans via the human CLI over Telegram, Slack, or email.

39.7k|4.4k|Updated Aug 26, 2021
One-click install
npx skills add https://github.com/novuhq/novu --skill human-cli
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: human-cli
Source: https://github.com/novuhq/novu/tree/main/packages/human/src/skills/content/human-cli
Command: npx skills add https://github.com/novuhq/novu --skill human-cli

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @novu/human.

What problem does it solve?

Autonomous agents, background jobs, and CI pipelines often need a real human decision or approval but have no live chat to ask in. This Skill lets an agent reach the actual person it works for through the human CLI to ask questions, get approvals, offer choices, or send one-way notifications over Telegram, Slack, or email.

Core Features & Use Cases

  • Four blocking commands: human ask, human approve, human choose, and human tell deliver requests to a linked human and wait for a response, with structured exit codes (0 answered, 10 denied, 11 timed out, 12 expired) for reliable branching.
  • Async and timeout control: --async, --timeout, --ttl, and human wait <id> let long-running workflows avoid hanging forever and resume pending interactions later.
  • Multi-human routing: human invite links additional people over Slack, Telegram, or email, and --to alice,bob lets any listed human settle a request.
  • Use Case: A nightly deployment script runs human approve "Deploy to production?" before pushing, creating an auditable approval trail even when nobody is watching the terminal.

Quick Start

Ask the human CLI to approve the production deployment by running human approve with a clear question and branching on its exit code.

Frequently Asked Questions about human-cli

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I get human approval in an automated script?

Run human approve with a clear question, such as human approve "Deploy to production?". The command blocks until the human responds and exits 0 on approval or 10 on denial, so you can branch on the exit code in your shell script.

How do I ask a human a question from a background job?

Use human ask followed by your question text; the answer arrives as plain text on stdout. For unattended jobs, add --timeout or --async so the job does not hang forever, then resume later with human wait <id>.

What channels does the human CLI support for notifications?

The human CLI delivers requests over Telegram, Slack, or email, depending on how the human configured it during npx @novu/human setup. You can override delivery per request with the --via flag when the person has multiple linked channels.

Why does the human CLI exit with code 1 saying no human connected?

Exit code 1 with that message means the CLI is not configured on the machine. The actual human must run npx @novu/human setup, or you must set NOVU_SECRET_KEY and HUMAN_TO environment variables in sandboxed environments.

When should I not use the human CLI for approvals?

Skip it when the person is actively watching the chat and can answer your next message directly, or for routine status updates already visible in logs. It is meant for unattended runs, risky irreversible actions, and genuine multi-way decisions.

How do I handle a human request that times out?

On timeout the command exits with code 11 and prints the interaction id, leaving the request pending. Resume waiting later with human wait <id>, check status with human list, or withdraw it using human cancel <id>.