Process Inbox
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
Implement support for a new Telegram Bot API version in this package.
$ npx skills add phptg/bot-api --skill bot-api-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install phptg/bot-api bot-api-update --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/phptg/bot-api.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/bot-api-update .claude/skills/bot-api-update && 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 "bot-api-update" agent skill from https://github.com/phptg/bot-api/tree/master/.claude/skills/bot-api-update into .claude/skills/bot-api-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bot-api-update", 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/phptg/bot-api/tree/master/.claude/skills/bot-api-updateType 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 phptg/bot-api --skill bot-api-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install phptg/bot-api bot-api-update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phptg/bot-api.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/bot-api-update .agents/skills/bot-api-update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bot-api-update" agent skill from https://github.com/phptg/bot-api/tree/master/.claude/skills/bot-api-update into .agents/skills/bot-api-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bot-api-update", 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 phptg/bot-api --skill bot-api-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install phptg/bot-api bot-api-update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phptg/bot-api.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/bot-api-update .cursor/skills/bot-api-update && 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 "bot-api-update" agent skill from https://github.com/phptg/bot-api/tree/master/.claude/skills/bot-api-update into .cursor/skills/bot-api-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bot-api-update", 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/phptg/bot-api.git --path .claude/skills/bot-api-update--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 phptg/bot-api --skill bot-api-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install phptg/bot-api bot-api-update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phptg/bot-api.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/bot-api-update .gemini/skills/bot-api-update && 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 "bot-api-update" agent skill from https://github.com/phptg/bot-api/tree/master/.claude/skills/bot-api-update into .gemini/skills/bot-api-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bot-api-update", 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 phptg/bot-api bot-api-updateInstalls 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 phptg/bot-api --skill bot-api-update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/phptg/bot-api.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/bot-api-update .github/skills/bot-api-update && 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 "bot-api-update" agent skill from https://github.com/phptg/bot-api/tree/master/.claude/skills/bot-api-update into .github/skills/bot-api-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bot-api-update", 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 phptg/bot-api --skill bot-api-update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install phptg/bot-api bot-api-update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phptg/bot-api.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/bot-api-update .opencode/skills/bot-api-update && 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 "bot-api-update" agent skill from https://github.com/phptg/bot-api/tree/master/.claude/skills/bot-api-update into .opencode/skills/bot-api-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bot-api-update", 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.
bot-api-updateImplement support for a new Telegram Bot API version in this package.
Bot API Update is an agent skill from phptg/bot-api. Implement support for a new Telegram Bot API version in this package. Use when asked to update the library to a new Bot API version.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/telegram_page_to_md.py`).
It works with Telegram. The repository describes itself as: PHP library to interact with Telegram Bot API. The licence is BSD-3-Clause.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 407a2d0. 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 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
gitcomposercurlpython3ghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
core.telegram.orgFrom 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.
Bot API Update loads about 2.1k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 1,017 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 phptg/bot-api at commit 407a2d0, republished under its BSD-3-Clause licence (© phptg). 1,017 words, ~2,075 tokens.
.claude/skills/bot-api-update/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Port a new Telegram Bot API release into this package, end to end.
Read AGENTS.md before writing any code — it holds the layout, class shapes, test patterns and
changelog rules the resulting diff is judged by. When in doubt, open a class added by the previous
Bot API commit (git log --oneline --grep='Telegram Bot API') and copy its shape.
Copy the shape only, never the location: older commits still put new classes into the legacy
subdirectories (src/Method/UpdatingMessage/DeleteEphemeralMessage.php,
src/Type/Payment/BotSubscriptionUpdated.php). Where a file goes is decided by AGENTS.md alone —
every new type lands in src/Type, every new method in src/Method.
git status --porcelain # must be empty
git branch --show-current
git fetch originA dirty working tree stops the skill: report it and ask the user what to do.
If the current branch is already a Bot API branch (apiXY) started from the current
origin/master tip, stay on it and continue from wherever it left off — do not switch, do not
create a new branch, and skip to the first unfinished item of runtime/bot-api-update/plan.md.
Otherwise take the fresh master tip; the branch itself is created in step 3, once the target
version is known:
git switch master
git pull --ff-only origin masterEverything this skill downloads or generates lives in runtime/bot-api-update/ — runtime/ is
fully gitignored, and the own subdirectory keeps these files apart from the other tools' output.
mkdir -p runtime/bot-api-update
curl -fsS -o runtime/bot-api-update/api-changelog.html https://core.telegram.org/bots/api-changelog
curl -fsS -o runtime/bot-api-update/api.html https://core.telegram.org/bots/api
python3 .claude/skills/bot-api-update/scripts/telegram_page_to_md.py \
runtime/bot-api-update/api-changelog.html runtime/bot-api-update/api-changelog.md
python3 .claude/skills/bot-api-update/scripts/telegram_page_to_md.py \
runtime/bot-api-update/api.html runtime/bot-api-update/api.mdapi-changelog.md says what changed; api.md (the full reference, several thousand lines — grep
it, never read it whole) gives the exact field names, types and optionality needed to write the
classes. Each type and method is a #### <Name> heading followed by one | field | type | description line per field, so sed -n '/^#### Foo$/,/^#### /p' prints exactly one definition.
#### <date> block in
runtime/bot-api-update/api-changelog.md, whose first line is **Bot API X.Y**.README.md that reads
✔️ Telegram Bot API X.Y (<date>) is **fully supported**.If they match, the work is already done: tell the user that the package is up to date with Bot API X.Y and stop — no branch, no plan, no commits.
If the package is behind by more than one release, cover every missing release in this run, oldest first, in one plan.
Otherwise create the branch, named like the previous ones (api102 for 10.2, api10 for 10.0,
api96 for 9.6 — api + the version digits without the dot):
git switch -c api103Put the plan in runtime/bot-api-update/plan.md (gitignored — it is a working document, never
committed).
Split it as finely as it can reasonably be split. Rules for slicing:
CHANGELOG.md line).ValueProcessor and ObjectFactory registration = one item; each
implementation of that interface is its own item.Close the plan with these fixed items:
README.md.CHANGELOG.md entries.composer cs-fix + composer rector (step 7).Item template:
## Bot API 10.3
- [ ] 1. Add `EphemeralMessageParameters` type
Changelog: Added the class EphemeralMessageParameters ...
Files: src/Type/EphemeralMessageParameters.php, tests/Type/EphemeralMessageParametersTest.php
Changelog entry: New: Add `EphemeralMessageParameters` type.Cross-check the finished plan against the changelog bullets: every bullet of the target version must be traceable to at least one item, including "Supported ...", "Replaced ..." and "Renamed ..." bullets, which are easy to miss.
The CHANGELOG.md entries reference a PR that does not exist yet: this skill never pushes the
branch and never opens a pull request — the user does that themselves once the work is reviewed.
Only the number is needed here, and it is the next free issue/PR number:
gh issue list --state all --limit 1 --json number
gh pr list --state all --limit 1 --json numberTake the larger number, add 1, and confirm that number with the user in step 5.
Show the user the plan (summary plus the item list) and the PR number you intend to use, and ask
for confirmation or corrections. Do not start implementing before they answer. Apply whatever they
change to runtime/bot-api-update/plan.md first.
For each item, in order:
AGENTS.md (backward compatibility is preserved; new
constructor parameters go last with a default).vendor/bin/phpunit --filter=<TestClass>.git add <files>
git commit -m "Add EphemeralMessageParameters type"[x] in runtime/bot-api-update/plan.md.Never git add -A — runtime/ is ignored, but stray files are not worth the risk. Never commit
anything under runtime/.
If an item turns out to be wrong or to need splitting, update runtime/bot-api-update/plan.md and
tell the user what changed, then continue.
composer cs-fix
composer rector
composer testReview the diff these tools produce before committing it — rector occasionally rewrites something
in a way that conflicts with the project style. Commit as Apply cs-fix and rector.
Report all four results to the user, honestly, with the actual output of anything that fails.
src/. Confirm every [ ] in runtime/bot-api-update/plan.md is now
[x].composer testXDEBUG_MODE=coverage vendor/bin/phpunit --coverage-text # or `composer coverage` for HTMLNo code coverage driver available (the usual case in this environment —
neither Xdebug nor PCOV is installed), say so plainly instead of claiming coverage. Then fall
back to a manual check: every class added or changed in this branch
(git diff --stat master...HEAD -- src) has a corresponding test that exercises the new code,
including every new facade method in src/TelegramBotApi.php. Tell the user that CI
(Coveralls) gives the authoritative number.composer psalm
composer dependency-analyserFinish with a short summary: version ported, number of commits, what each verification step returned, and anything left open. Leave the branch local and unpushed — say that pushing it and opening the PR is up to the user.
© phptg, BSD-3-Clause. 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 1 other file (scripts) in .claude/skills/bot-api-update of phptg/bot-api.
Open the folder on GitHubat commit 407a2d0
Bot API Update 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 |
|---|---|---|---|---|---|---|
| Bot API Update this skillphptg/bot-api | 130 | — | ~2.1k | Automated safety check: Pass | BSD-3-Clause | |
| Process Inboxtelegramdesktop/tdesktop | 33k | 2 repos | ~4.5k | Automated safety check: Pass | GPL-3.0 | |
| Perform Tasktelegramdesktop/tdesktop | 33k | 2 repos | ~3k | Automated safety check: Pass | GPL-3.0 | |
| Custom Mode Creator for claude-memthedotmack/claude-mem | 97k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Continuetelegramdesktop/tdesktop | 33k | 2 repos | ~9.4k | Automated safety check: Pass | GPL-3.0 | |
| Rebasetelegramdesktop/tdesktop | 33k | 1 repos | ~3.7k | Automated safety check: Pass | GPL-3.0 |
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
telegramdesktop/tdesktop
Resolve, start or resume, implement, review, test, and publish exactly one existing ai-tdesktop task by short slug or full dated id, including rare blocked retries and split-required results.
thedotmack/claude-mem
Walks you through creating, installing and verifying a custom claude-mem mode, including note types, tags and optional Telegram alerts for chosen memories.
telegramdesktop/tdesktop
Continue autonomous Telegram Desktop development from the shared ai-tdesktop repository.
telegramdesktop/tdesktop
Drive an intent-aware rebase of the current checkout, resolving every conflict by reading the history behind both sides instead of by making the markers disappear.
op7418/Claude-to-IM-skill
Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.
Works with
Implement support for a new Telegram Bot API version in this package. Bot API Update is an agent skill from phptg/bot-api. Implement support for a new Telegram Bot API version in this package.
Bot API Update fits situations like: asked to update the library to a new Bot API version.
Run `npx skills add phptg/bot-api --skill bot-api-update -a claude-code`. Or copy the skill folder (.claude/skills/bot-api-update in phptg/bot-api) into .claude/skills/bot-api-update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add phptg/bot-api --skill bot-api-update -a codex`. Or copy the skill folder (.claude/skills/bot-api-update in phptg/bot-api) into .agents/skills/bot-api-update 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 phptg/bot-api --skill bot-api-update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bot-api-update, .gemini/skills/bot-api-update, .github/skills/bot-api-update and .opencode/skills/bot-api-update in your project.
Going by SKILL.md and its folder, Bot API Update needs Python for the scripts in its folder and the command-line tools its instructions call (git, composer, curl, python3 and gh). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: core.telegram.org; the agent is likely to contact it when it follows the instructions. 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.
Bot API Update is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.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 Bot API Update: Process Inbox (telegramdesktop/tdesktop, 33k stars), Perform Task (telegramdesktop/tdesktop, 33k stars), Custom Mode Creator for claude-mem (thedotmack/claude-mem, 97k stars) and Continue (telegramdesktop/tdesktop, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
phptg (a GitHub organization) maintains it in phptg/bot-api, which has 130 GitHub stars. The repository was last updated on September 25, 2026.
Source: phptg/bot-api on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.