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…
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…
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openclaw/openclaw telegram-e2e-userbot --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "telegram-e2e-userbot" agent skill from https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbot into .claude/skills/telegram-e2e-userbot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-e2e-userbot", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbotType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openclaw/openclaw telegram-e2e-userbot --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/telegram-e2e-userbot .agents/skills/telegram-e2e-userbot && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "telegram-e2e-userbot" agent skill from https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbot into .agents/skills/telegram-e2e-userbot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-e2e-userbot", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openclaw/openclaw telegram-e2e-userbot --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/telegram-e2e-userbot .cursor/skills/telegram-e2e-userbot && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "telegram-e2e-userbot" agent skill from https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbot into .cursor/skills/telegram-e2e-userbot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-e2e-userbot", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/openclaw/openclaw.git --path .agents/skills/telegram-e2e-userbot--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openclaw/openclaw telegram-e2e-userbot --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/telegram-e2e-userbot .gemini/skills/telegram-e2e-userbot && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "telegram-e2e-userbot" agent skill from https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbot into .gemini/skills/telegram-e2e-userbot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-e2e-userbot", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install openclaw/openclaw telegram-e2e-userbotInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/telegram-e2e-userbot .github/skills/telegram-e2e-userbot && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "telegram-e2e-userbot" agent skill from https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbot into .github/skills/telegram-e2e-userbot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-e2e-userbot", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add openclaw/openclaw --skill telegram-e2e-userbot -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openclaw/openclaw telegram-e2e-userbot --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/telegram-e2e-userbot .opencode/skills/telegram-e2e-userbot && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "telegram-e2e-userbot" agent skill from https://github.com/openclaw/openclaw/tree/main/.agents/skills/telegram-e2e-userbot into .opencode/skills/telegram-e2e-userbot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telegram-e2e-userbot", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
telegram-e2e-userbotProve 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.
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.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1eb5970. It shows what the files ask for, not the result of running them.
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.
Ships 9 files in scripts/ (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodebunxnpxFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from openclaw/openclaw at commit 1eb5970, republished under its MIT licence (© openclaw). 876 words, ~1,821 tokens.
.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.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.
Run from the OpenClaw checkout and ref under test, using its repository skill:
TELEGRAM_E2E_SKILL_DIR="${TELEGRAM_E2E_SKILL_DIR:-$PWD/.agents/skills/telegram-e2e-userbot}"
export TELEGRAM_E2E_SKILL_DIRVerify 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:
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.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:
: "${TELEGRAM_GATEWAY_PORT:?set an unused Gateway port}"
: "${TELEGRAM_MOCK_PORT:?set an unused provider port}"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.
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:
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:
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.
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
SKILL.md and 51 other files (scripts) in .agents/skills/telegram-e2e-userbot of openclaw/openclaw.
Open the folder on GitHubat commit 1eb5970
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Telegram E2E Userbot this skillopenclaw/openclaw | 392k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Verify Lemonz80dev/lemon | 132 | — | ~4k | Automated safety check: Notes | MIT | |
| Codex CLI TaskLeoYeAI/openclaw-master-skills | 2.2k | — | ~7.1k | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| Uloop Replay Inputkurotu/VRCQuestTools | 373 | 3 repos | ~615 | Automated safety check: Pass | MIT |
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…
LeoYeAI/openclaw-master-skills
Launch OpenAI Codex CLI async in background with automatic delivery to Telegram/WhatsApp.
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
kurotu/VRCQuestTools
Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.
payloadcms/payload
A skill your agent uses when UI changes are complete and e2e tests need updating.
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.
openclaw/openclaw
Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.
openclaw/openclaw
Feishu document read/write workflows. An agent skill from openclaw/openclaw.
openclaw/openclaw
Review, triage, repair, or land OpenClaw issues and pull requests with current-source evidence and the native maintainer workflow.
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.
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…
Works with
Categories
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.
Telegram E2E Userbot fits situations like: tasks that involve End-to-end testing.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.