AwaitHuman lets your AI agents ask you for help via Telegram. Three steps to get started:
Sign in at app.awaithuman.com/login with your Google account.
You'll need two things:
Generate a key from the dashboard. Then use it to send your first task:
curl -X POST https://api.awaithuman.com/api/v1/tasks \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"yes_no","title":"Deploy?","description":"All tests pass."}'
/api/v1/tasks
Create a new task. The human will be notified on Telegram.
{
"type": "pick_one", // pick_one | yes_no | review | do_for_me
"title": "Which logo?", // shown in Telegram notification
"description": "Details...",// full context for the human
"options": ["A", "B", "C"], // required for pick_one
"image_urls": [], // optional public image URLs
"max_reminders": 3, // default 3
"reminder_interval_minutes": 30 // default 30
}
{ "task_id": "abc123", "status": "sent" }
/api/v1/tasks/{task_id}
Get task status and result. Poll this until status is completed or timed_out.
{
"task_id": "abc123",
"status": "completed",
"result": {
"choice": "A", // for pick_one, yes_no, review
"text": "feedback", // for review (feedback) or do_for_me
"image_urls": [] // for do_for_me with images
}
}
/api/v1/tasks
List all tasks. Optional query param: ?status=pending
/api/v1/tasks/{task_id}/cancel
Cancel a pending task.
For AI coding tools like Claude Code or Cursor, use the AwaitHuman MCP server.
Your agent gets three tools: create_task,
get_task_result, and
wait_for_task.
{
"mcpServers": {
"awaithuman": {
"command": "uvx",
"args": ["awaithuman-mcp"],
"env": {
"AWAITHUMAN_API_KEY": "sk_live_YOUR_KEY",
"AWAITHUMAN_API_URL": "https://api.awaithuman.com/api/v1"
}
}
}
}
Present options as Telegram inline buttons. Requires options array.
Result: {"choice": "Option A"}
Two buttons: Yes and No.
Result: {"choice": "yes"} or {"choice": "no"}
Three buttons: Approve, Reject, Feedback. Feedback prompts a text reply.
Result: {"choice": "feedback", "text": "Make it bolder"}
Free-form. Human replies with text, images, or taps "Can't do this".
Result: {"text": "Done, the email is hello@example.com"}