Agent skill

Telegram E2E Userbot

by openclaw in openclaw/openclaw

Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich…

MITAuto-check passedTesting & QA

Install Telegram E2E Userbot

skills CLI
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openclaw/openclaw telegram-e2e-userbot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/telegram-e2e-userbot .claude/skills/telegram-e2e-userbot && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
telegram-e2e-userbot
GitHub stars
392k
Token cost
~1.8k tokens
SKILL.md length
876 words
Files
52 (incl. scripts)
Skills in repo
93
Repo updated
First seen
Licence
MIT

At a glance

Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich…

  • Works in 4 steps: Prepare → Select the proof → Check readiness and run → …
  • Tasks that involve End-to-end testing
  • SKILL.md covers 1. Prepare, 2. Select the proof, 3. Check readiness and run and 4. Judge and clean up
  • Runs JavaScript scripts from its folder; calls node, bunx and npx

What it does

Telegram E2E Userbot is an agent skill from openclaw/openclaw. Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich content.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 54 other files, including scripts (for example `agents/openai.yaml`, `features/README.md` and `features/basic-turns.md`).

It sits in Testing & QA, covering End-to-end testing. It works with Telegram. The repository describes itself as: The AI that really does things. Any OS. Any Platform. The lobster way. 🦞. The licence is MIT.

When your agent uses it

  • Tasks that involve End-to-end testing

Example prompts

  • “/telegram-e2e-userbot”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Prepare
  2. Select the proof
  3. Check readiness and run
  4. Judge and clean up

What it can do on your machine

Read from SKILL.md and the folder at commit 1eb5970. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 9 files in scripts/ (JavaScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • bunx
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use bunx and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Telegram E2E Userbot loads about 1.8k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 876 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from openclaw/openclaw at commit 1eb5970, republished under its MIT licence (© openclaw). 876 words, ~1,821 tokens.

Download SKILL.mdSave it as .claude/skills/telegram-e2e-userbot/SKILL.md (or your agent's skills folder). This skill also uses 51 other files; get the full folder from GitHub.
name
telegram-e2e-userbot
description
Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich content.
metadata.short-description
Telegram E2E via real-user driver
metadata.argument-hint
<message-or-command?>

Telegram E2E (Userbot)

Prove the requested behavior as a dedicated Telegram Test Server user. TDLib records edits, deletions, reactions, and typing that a second bot cannot observe. For visual claims, also inspect actual Telegram client screenshots; a reconstructed chat image or event log is not visual proof.

Each Convex credential contains one SUT bot and an independent authorization for the QA user. The runner owns that lease through readiness, proof, and cleanup. Pool creation, account authorization repair, and credential publication remain owner-only. Reversible test-chat setup with the leased QA user is ordinary proof work; preserve shared fixtures and other runs.

1. Prepare

Run from the OpenClaw checkout and ref under test, using its repository skill:

bash
TELEGRAM_E2E_SKILL_DIR="${TELEGRAM_E2E_SKILL_DIR:-$PWD/.agents/skills/telegram-e2e-userbot}"
export TELEGRAM_E2E_SKILL_DIR

Verify node, uv, and a dependency-ready runtime for the exact ref before leasing a credential. The runner uses built dist/entry.js; --source-gateway uses the repository's development launcher when a dependency-ready source run is appropriate. It runs core and the Telegram plugin from TypeScript source; other plugins, including the model provider, use built output when it exists, so rebuild before claiming their changes. The live run must not implicitly install or build. Only the mock backend needs scripts/e2e/mock-openai-server.mjs.

Convex access can come from either:

  • An existing authenticated CLI with access to the published broker deployment. From qa/convex-credential-broker, discovery tries convex, then bunx --no-install convex, then npx --offline --no --ignore-scripts convex. Each launcher gets one 15-second env --deployment <broker> get lookup for the CI secret. The helper uses the repository's existing broker binding; no local CONVEX_DEPLOYMENT, project-selection file, or dashboard lookup is needed. The secret stays in process memory.
  • Both OPENCLAW_QA_CONVEX_SITE_URL and OPENCLAW_QA_CONVEX_SECRET_CI, supplied privately to the doctor or runner process by the existing credential owner.

Check available launchers, existing authentication, and broker-project access before declaring credentials missing. An authenticated launcher with no CI variable needs broker configuration, not another login. Ask the user for authentication only when no existing launcher can authenticate and the broker pair is unavailable. Do not install or log in on the user's behalf. A timeout or network failure is not evidence that credentials are missing. Bun's --no-install missing-binary error means that launcher is unavailable; discovery continues to the next installed launcher.

The standalone doctor needs no local HTTP listener, Gateway build, or model backend: it checks the leased TDLib user and calls Telegram’s official Test Bot API directly over HTTPS. The full scenario still needs local networking for its Gateway and Test Bot API adapter (including hold/reject controls), plus the mock provider when selected. A passing doctor does not qualify those local services.

For a full scenario on shared hosts, select two unused ports and pass them explicitly; the runner does not read port environment variables:

bash
: "${TELEGRAM_GATEWAY_PORT:?set an unused Gateway port}"
: "${TELEGRAM_MOCK_PORT:?set an unused provider port}"

2. Select the proof

Read the verification map, then only the recipe for the behavior under test. Prefer a DM; use groups for group policy, mentions, commands, topics, or reactions. A generic success turn does not prove formatting, media, timing, or lifecycle behavior.

Extend the harness when its current actions or recorder fields cannot expose the claim. Scenario command actions can inspect the leased TDLib state, private credential file, Test Bot API proxy, and Gateway state. Use the runtime reference for timed scenarios, forums, photo/reply actions, non-default backends, manual operation, or failed-run recovery.

Show full SKILL.md (339 more words)Show less

3. Check readiness and run

The scenario checks its actual user, bot, transport, and selected chat on its own lease before starting the Gateway. DMs do not depend on unrelated groups. Group runs verify bot membership, privacy, and tester text permissions, preserving a suitable selected group or preparing a run-owned one when needed. Readiness from a released lease never qualifies a later run.

For a standalone diagnostic, use:

bash
node "$TELEGRAM_E2E_SKILL_DIR/scripts/telegram-test-doctor.mjs"

Require ok: true, botApiTransport: "direct-https", and botApiProxy: false. The doctor defaults to DM readiness; --chat <target> checks a selected group through the same direct Test Bot API route. It releases its diagnostic lease and does not start product proof. Preserve setup failures and repair their cause before trying again; rotating unchanged credentials to hunt for a pass is not a repair.

Create a durable proof directory outside runner scratch:

bash
TELEGRAM_E2E_PROOF_DIR="$(mktemp -d /tmp/telegram-e2e-proof.XXXXXX)"
node "$TELEGRAM_E2E_SKILL_DIR/scripts/run-mock-sut-user-e2e.mjs" \
  --gateway-port "$TELEGRAM_GATEWAY_PORT" --mock-port "$TELEGRAM_MOCK_PORT" \
  --dm --text 'Please answer with OPENCLAW_E2E_OK only.' \
  --record "$TELEGRAM_E2E_PROOF_DIR/events.ndjson" \
  --output "$TELEGRAM_E2E_PROOF_DIR/summary.json"

The runner owns the lease, proxy, fresh Gateway, provider, user actions, recorder, and teardown. Recording captures facts and rejects probe assertions such as --expect and --any-sut-reply. A send-confirmation timeout can follow an accepted send: preserve observed events and reconcile them, rather than blindly resending.

4. Judge and clean up

Start at the sent action in summary.json; judge only later events from the selected SUT. Use raw TDLib messageId within the same user's chat, not another account's Bot API receipt, to connect edits and deletions. Require a provider request when the path should reach the model; native commands may produce none.

Report the sanitized command, sent action, relevant timeline rows, provider request count, and the claim those facts prove. Inspect test-group.json when setup ran; fixture evidence is not message proof. Keep credentials, identities, and private paths out of shared logs, screenshots, and reports.

Completion requires the claimed Telegram evidence, no runner-owned processes or listeners, released lease, removed credential scratch, and readable proof files. Cancellation or lease loss stops new work and joins owned consumers. Unconfirmed cleanup is a failure: preserve the private recovery state and use the runtime recovery instructions. Keep explicit proof directories until the review or reproduction no longer needs them.

© openclaw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 51 other files (scripts) in .agents/skills/telegram-e2e-userbot of openclaw/openclaw.

  • SKILL.md
  • agents/openai.yaml
  • features/README.md
  • features/basic-turns.md
  • features/delivery-lifecycle.md
  • features/private-yield-reply-policy.md
  • features/reaction-lifecycle.md
  • features/restart-attribution.md
  • features/runtime-reference.md
  • scripts/followup-drain-control-preload.mjs
  • scripts/followup-drain-control-preload.test.mjs
  • scripts/node-test-children.mjs
  • scripts/published-upgrade-artifact.mjs
  • scripts/published-upgrade-scenario.mjs
  • scripts/qa-credential-lease.mjs
  • scripts/qa-credential-lease.test.mjs
  • scripts/reply-policy-checkpoint.mjs
  • scripts/reply-policy-mock.mjs
  • … and 34 more

Open the folder on GitHubat commit 1eb5970

Compare with similar skills

Telegram E2E Userbot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Telegram E2E Userbot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Telegram E2E Userbot this skillopenclaw/openclaw392k—~1.8kAutomated safety check: PassMIT
Verify Lemonz80dev/lemon132—~4kAutomated safety check: NotesMIT
Codex CLI TaskLeoYeAI/openclaw-master-skills2.2k—~7.1kAutomated safety check: PassMIT
Web Application Testinganthropics/skills180k51 repos~966Automated safety check: PassApache-2.0
TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph11211 repos~2.4kAutomated safety check: PassNone
Uloop Replay Inputkurotu/VRCQuestTools3733 repos~615Automated safety check: PassMIT

Similar skills

  • Verify Lemon

    z80dev/lemon

    Verify lemon features against a running (or disposable) instance using the cheapest sufficient tier: DIRECT (attach/RPC + control-plane WS + bus observation, no Telegram), FAKE TELEGRAM (hermetic…

    132 GitHub stars~4k tokensUpdated today
    Testing & QAAuto-check: notes
  • Codex CLI Task

    LeoYeAI/openclaw-master-skills

    Launch OpenAI Codex CLI async in background with automatic delivery to Telegram/WhatsApp.

    2.2k GitHub stars~7.1k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed
  • TDD Workflow

    hellangleZ/burn-in-cceverywhere-ralph

    A skill your agent uses when writing new features, fixing bugs, or refactoring code.

    112 GitHub starsUsed in 11 repos~2.4k tokens
    Testing & QAAuto-check passed
  • Uloop Replay Input

    kurotu/VRCQuestTools

    Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.

    373 GitHub starsUsed in 3 repos~615 tokens
    Testing & QAAuto-check passed
  • Ui4 Convert Tests

    payloadcms/payload

    A skill your agent uses when UI changes are complete and e2e tests need updating.

    45k GitHub stars~3.5k tokensUpdated today
    Testing & QAAuto-check passed

More from openclaw/openclaw

All 93 skills in this repo
  • Openclaw Live Updater

    openclaw/openclaw

    Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.

    392k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Tmux

    openclaw/openclaw

    Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.

    392k GitHub starsUsed in 2 repos~640 tokens
    Auto-check passed
  • Feishu Doc

    openclaw/openclaw

    Feishu document read/write workflows. An agent skill from openclaw/openclaw.

    392k GitHub stars~516 tokensUpdated today
    Auto-check passed
  • Openclaw PR Maintainer

    openclaw/openclaw

    Review, triage, repair, or land OpenClaw issues and pull requests with current-source evidence and the native maintainer workflow.

    392k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Browser Automation

    openclaw/openclaw

    A skill your agent uses when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

    392k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Clawsweeper

    openclaw/openclaw

    A skill your agent uses for all ClawSweeper work: OpenClaw issue/PR sweep reports, repair jobs, cloud fix PRs, @clawsweeper maintainer mention commands, trusted ClawSweeper-reviewed…

    392k GitHub stars~3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Telegram E2E Userbot

What does Telegram E2E Userbot do?

Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich…. Telegram E2E Userbot is an agent skill from openclaw/openclaw. Prove user-visible OpenClaw Telegram behavior on Telegram's Test Server with Convex-leased team credentials; drive real-user turns and record messages, edits, deletions, reactions, typing, or rich content.

When should I use Telegram E2E Userbot?

Telegram E2E Userbot fits situations like: tasks that involve End-to-end testing.

How do I install Telegram E2E Userbot in Claude Code?

Run `npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a claude-code`. Or copy the skill folder (.agents/skills/telegram-e2e-userbot in openclaw/openclaw) into .claude/skills/telegram-e2e-userbot in your project. Claude Code loads it when a task matches its description.

How do I install Telegram E2E Userbot in Codex?

Run `npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a codex`. Or copy the skill folder (.agents/skills/telegram-e2e-userbot in openclaw/openclaw) into .agents/skills/telegram-e2e-userbot in your project. Codex loads it when a task matches its description.

Can I use Telegram E2E Userbot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/telegram-e2e-userbot, .gemini/skills/telegram-e2e-userbot, .github/skills/telegram-e2e-userbot and .opencode/skills/telegram-e2e-userbot in your project.

What does Telegram E2E Userbot need to run?

Going by SKILL.md and its folder, Telegram E2E Userbot needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, bunx and npx). Our summary lists: Node.js.

Does Telegram E2E Userbot access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Telegram E2E Userbot safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Telegram E2E Userbot use?

Telegram E2E Userbot is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Telegram E2E Userbot use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Telegram E2E Userbot?

Skills that share tags, products or a category with Telegram E2E Userbot: Verify Lemon (z80dev/lemon, 132 stars), Codex CLI Task (LeoYeAI/openclaw-master-skills, 2.2k stars), Web Application Testing (anthropics/skills, 180k stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Telegram E2E Userbot?

openclaw (a GitHub organization) maintains it in openclaw/openclaw, which has 391,610 GitHub stars. The repository holds 93 skills in this directory. The repository was last updated on October 8, 2026.

Source: openclaw/openclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.