Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add howdeploy/deploychan_mcp --skill telegram-custom-emoji-mosaicgit clone --depth 1 https://github.com/howdeploy/deploychan_mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/howdeploy/deploychan_mcp/telegram-custom-emoji-mosaic)<a href="https://agentmods.dev/skills/howdeploy/deploychan_mcp/telegram-custom-emoji-mosaic"><img src="https://agentmods.dev/badge/skills/howdeploy/deploychan_mcp/telegram-custom-emoji-mosaic/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/howdeploy/deploychan_mcp/telegram-custom-emoji-mosaic"><img src="https://agentmods.dev/badge/skills/howdeploy/deploychan_mcp/telegram-custom-emoji-mosaic.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Excessive Agency · line 53 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00056 | $0.01409 |
| Opus 5 | $0.00028 | $0.00705 |
| Sonnet 5 | $0.00011 | $0.00282 |
| Haiku 4.5 | $0.00006 | $0.00141 |
Grade A, and why
Telegram Custom Emoji Mosaic scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Telegram Custom Emoji Mosaic
Overview
This skill turns a single image into a genuine Telegram mosaic assembled from Premium
custom emoji. The agent slices the picture, publishes the tiles as a real
custom_emoji sticker set through the Bot API, and sends the reassembled picture as one
message the user can forward or paste straight into a channel post.
Input: PNG, JPEG or WEBP. Output: a Telegram message plus a shareable pack link.
Requirements
- Telegram Bot API token (read at runtime from the environment)
- Telegram Premium on the bot owner's account — without it custom emoji cannot be sent
ffmpeg- Python 3 with
requests
The user must have opened a dialog with the bot beforehand. A bot cannot write first.
The main principle
The finished result is a real message made of custom emoji. Not a ZIP, not a preview, not a set of files. The WEBP tiles are an intermediate artifact and nothing more. A run that produces tiles but no sent message is a failed run, and must be reported as failed.
The skill does not add blur, side bars, a background, or noticeable crop without asking. When the proportions nearly match a suitable grid, only a minimal symmetric crop of a few pixels is allowed.
Grid selection — do not force a square
The skill analyses the image's proportions and picks a grid of up to 100 custom emoji. It does not push every picture into a 10×10 square. It chooses the row and column counts that preserve the original composition most accurately.
| Source shape | Grid | Emoji used |
|---|---|---|
| square | 10×10 | 100 |
| vertical 4:5 | 8×10 | 80 |
| horizontal ≈ 14:6 | 14×6 | 84 |
Search for the columns × rows <= 100 pair that minimises the aspect-ratio error against
the source, then build the canvas at columns*100 × rows*100 so every tile lands exactly
on a 100×100 boundary.
Telegram limits — all of them bind at once
- Maximum 100 custom emoji in a single message. This is the hard ceiling on grid size.
- Up to 50 emoji may be passed when the set is first created; the rest are added with
addStickerToSet. - The emoji-pack size limit does not lift the 100-per-message limit. They are separate constraints and both apply.
- Every static custom emoji must be exactly 100×100 px.
- The bot owner needs Telegram Premium.
- The user must have started a dialog with the bot first.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 143 lines · 56 tokens per session scan A d18170a25119
Telegram Custom Emoji Mosaic is a skill published in the GitHub repository howdeploy/deploychan_mcp (11 stars, last pushed today), licensed MIT. It adds 56 tokens to every session and 1,409 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
moq
Build live video, audio, and real-time data apps with Media over QUIC (MoQ). Use when adding live streaming, conferencing, voice AI, or real-time pub/sub to an app; when integrating the @moq/ npm packages, moq- Rust crates, or the Python/Kotlin/Swift/Go/C bindings; or when running a moq-relay server or a gateway…
tiktok-transcribe
A workflow that downloads TikTok videos, turns their audio into text with speech-recognition software, and saves the result as a Markdown file.
pytdbot
Write Telegram bots and userbots with Pytdbot (async TDLib wrapper with high-level helpers; not the Telegram Bot API). Use when the user works with Pytdbot, TDLib, or pytdbot.Client.
atlas-cloud-media
Generate Atlas Cloud images and videos through its asynchronous media API with schema-first model selection and credential-safe polling.
bilibili-transcribe
A workflow that downloads videos from Bilibili, a Chinese video-sharing site, transcribes their speech, and saves the result as Markdown text. It accepts Bilibili links or BV video identifiers and tries available subtitles before audio transcription.
douyin-transcribe
A workflow for downloading Douyin videos, converting their speech to text with SenseVoice-Small, and saving the result as a Markdown file. Douyin is the Chinese short-video platform also known internationally as TikTok’s Chinese counterpart.