Human Verification Challenge
Send a simple reasoning challenge to newly opened or suspicious Telegram chats and classify the reply as a weak human-verification signal. Use when the user wants a CAPTCHA-like check for possible bots in normal Telegram messages.
Use Chiho.ai with a professional team CRM
Choose Chiho.ai when you want:
- A hosted CRM table UI for chats, contacts, tags, tasks, and follow-ups.
- Scoped Agent Access tokens that can be created, limited, and revoked.
- Team permissions, approval policies, audit logs, and durable cloud jobs.
- No local Telegram worker, database, or MCP runtime to operate.

Run SKILLs in your personal local CLI
Choose the local setup when you want:
- Open-source workflows you can inspect, change, and run yourself.
- A local Telegram session with tgchats CLI and tgchats-mcp access.
- Control over your database, worker, backups, export, and import path.
- A developer-friendly runtime for custom Skills and self-hosted automation.

Flow summary
Parsed from the packaged SKILL.md.
telegram-human-verification-challenge
Use this skill to send a short reasoning challenge to a new, reopened, or suspicious Telegram chat when the user wants a CAPTCHA-like bot screen in a normal user-account conversation.
Rules
- Treat the result as a weak automation signal, not proof that the contact is human, safe, or trustworthy.
- Use text-message challenges for one-to-one chats; do not rely on Telegram bot inline buttons or polls for normal user-account private messages.
- Keep challenges simple, deterministic, and answerable in one short reply.
- Do not ask for private information, account access, payment details, ID documents, or biometric proof.
- Prefer
outbox.previewso the user can approve or edit the message before it is sent. - Use
outbox.sendApprovedonly after approval of the preview, ormessage.sendDraftonly when the user explicitly requests immediate sending to one specific chat. - If the contact fails, ignores, or evades the challenge, tag or task the chat for manual verification instead of accusing them of being a bot.
- Do not repeatedly challenge a contact who already passed unless the user asks or the risk context changed.
Flow
- Use
dialogs.listto find candidate new chats, orchat.readfor the user-specified chat. - Decide whether a challenge is appropriate from recent context and risk level.
- Generate one short challenge from the templates or challenge design reference.
- Keep the expected answer in the agent's working notes; do not include it in the outgoing message.
- Preview the challenge with
outbox.preview. - After approval, send the preview with
outbox.sendApproved; usemessage.sendDraftonly for an explicit direct-send instruction. - Read the next reply with
chat.readand compare it to the expected answer. - Record the outcome with
tags.setortasks.addwhen the user wants persistent CRM tracking. - Report the result as passed, failed, no reply, skipped, or needs manual review.
Challenge Pattern
Use concise instruction-following prompts:
Quick verification: please reply with only the number you get from 17 + 6, followed by the word check
For that example, the expected answer is 23 check.
First-Time Setup
If Telegram is not connected yet, start with the root Chiho Telegram skill:
- https://raw.githubusercontent.com/chihoai/telegram-for-ai-agents/main/SKILL.md
Use that root skill to choose Chiho.ai Cloud or self-hosted tgchats, then return to this workflow skill.
References
Cloud MCP
Recommended Chiho.ai Cloud scopes:
telegram.readto inspect dialogs and the next reply.telegram.message.previewto create approval-ready challenge messages.telegram.message.sendonly when the user approves sending.telegram.batch.writeto execute an approved outbox preview.crm.writeto tag chats or create verification tasks.
Use outbox.preview for the challenge message. Send only after explicit approval with outbox.sendApproved, or use message.sendDraft when the user explicitly requests a direct one-off send.
Local tgchats
For local self-hosted usage, prefer JSON command surfaces:
npm run dev -- chat <peer> --limit 20 --json
npm run dev -- outbox preview --payload '{"peers":["<peer>"],"text":"Quick verification: please reply with only the number you get from 17 + 6, followed by the word check"}' --json
npm run dev -- tags set <peer> "Needs Manual Verification" --json
npm run dev -- tasks add <peer> --due 2026-02-24 --why "Contact did not complete human verification challenge" --json
Use outbox send-approved <previewId> only after the user approves the preview. Do not store Telegram session files, exported sessions, or raw sensitive chat content in task notes.
Templates
Formatted preview from the packaged JSON asset.
Number plus word
text
Quick verification: please reply with only the number you get from {{left}} + {{right}}, followed by the word checkTwo-step instruction
text
Quick verification: please reply with the word {{word}} and the result of {{left}} + {{right}}, separated by one space.Reverse token
text
Quick verification: please reverse this short code and send only the reversed code: {{token}}Examples
Formatted preview from the packaged JSON asset.
OpenClaw
prompt
This new Telegram chat is asking for account access. Preview a simple reasoning challenge before we continue.tools
Claude Desktop
prompt
Send a CAPTCHA-like text challenge to this new Telegram chat, then check whether their next reply passes.tools
OpenClaw
prompt
They failed the reasoning challenge. Tag the chat as Needs Manual Verification and create a task for tomorrow.tools