Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Xpersona Agent
Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost. Skill: 总是响应未配对用户的 /start 消息 | Always respond to /start messages from unpaired users Owner: crazypeace Summary: Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost. Tags: l
clawhub skill install kn769hxajq747rnm1pyf9zmtns80cn81:telegram-pairing-customizationOverall rank
#62
Adoption
1.7K downloads
Trust
Unknown
Freshness
Feb 28, 2026
Freshness
Last checked Feb 28, 2026
Best For
总是响应未配对用户的 /start 消息 | Always respond to /start messages from unpaired users is best for general automation workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, CLAWHUB, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost. Skill: 总是响应未配对用户的 /start 消息 | Always respond to /start messages from unpaired users Owner: crazypeace Summary: Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost. Tags: l Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Feb 28, 2026
Vendor
Clawhub
Artifacts
0
Benchmarks
0
Last release
1.0.4
Install & run
clawhub skill install kn769hxajq747rnm1pyf9zmtns80cn81:telegram-pairing-customizationSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Clawhub
Protocol compatibility
OpenClaw
Latest release
1.0.4
Adoption signal
1.7K downloads
Handshake status
UNKNOWN
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
2
Examples
6
Snippets
0
Languages
Unknown
text
if (created) {
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none"
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>")
].join("\n"))
});
}text
if (do) { // <-- 关键修改点
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none"
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>")
].join("\n"))
});
}bash
openclaw gateway restart
bash
bash /root/.openclaw/workspace/skills/telegram-pairing-customization/scripts/apply-pairing-fix.sh
bash
cp /usr/lib/node_modules/openclaw/dist/telegram/bot-message-context.js /usr/lib/node_modules/openclaw/dist/telegram/bot-message-context.js.backup
javascript
if (dmPolicy === "pairing") {
try {
const from = msg.from;
const telegramUserId = from?.id ? String(from.id) : candidate;
const { code, created } = await upsertTelegramPairingRequest({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
});
if (created) { // <-- 关键修改点
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none",
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>"),
].join("\n")),
});
}
}
catch (err) {
logVerbose(`telegram pairing reply failed for chat ${chatId}: ${String(err)}`);
}
}SKILL.md
---
name: telegram-pairing-customization
description: Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost.
---
# Telegram 配对消息持续响应技能
## 概述
此技能描述如何修改 OpenClaw 的 Telegram 配对逻辑,使未批准的用户在配对被批准前,每次发送 `/start` 消息时都能收到配对码回复。
## 何时使用此技能
- 需要让未批准的用户每次发送 `/start` 都收到配对消息(而非仅首次)
- 用户可能错过首次配对消息,需要重新获取配对码
- 提升用户体验,确保用户始终能获得配对指引
## 执行步骤
### 1. 找到需要修改的文件
在你正在运行的代码中搜索下面的代码段
```
if (created) {
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none"
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>")
].join("\n"))
});
}
```
### 2. 实施修改
将条件判断从 `if (created)` 修改为 `if (code)`:
```
if (do) { // <-- 关键修改点
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none"
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>")
].join("\n"))
});
}
```
### 3. 重启服务
修改完成后需要重启 OpenClaw 服务以使更改生效:
```bash
openclaw gateway restart
```
## 一些建议
在寻找需要修改的文件时, 建议先搜索 `Ask the bot owner to approve with:` 可以帮助你先大幅缩小处理范围, 过滤出最有可能的几个文件.
一个建议的起始目录为 /usr/lib/node_modules/openclaw/
## 工作原理
- `upsertTelegramPairingRequest` 函数返回 `{code, created}` 对象
- 当用户首次请求配对时:`created: true`,有配对码
- 当用户再次请求配对时:`created: false`,但仍有相同的配对码(只要配对请求未过期或未被批准)
- 通过检查 `if (code)` 而不是 `if (created)`,确保用户每次请求都能收到有效的配对码
## 验证修改
- 让未配对的用户发送 `/start` 命令
- 确认用户收到配对码消息
- 再次发送 `/start` 命令,确认用户再次收到相同的配对码
## 注意事项
- 修改系统文件前务必备份原始文件
- 修改后的文件在 OpenClaw 更新时可能会被覆盖,需要重新应用修改
- 需要适当的文件系统权限来修改 OpenClaw 的安装文件
- 修改后应测试以确保功能正常
## 故障排除
- 如果修改不生效,请确认是否正确重启了 OpenClaw 服务
- 如果找不到文件路径,请确认 OpenClaw 的实际安装路径
- 如果权限不足,请使用适当的权限提升方法(如 sudo)
- 如需回滚,请使用备份文件替换修改后的文件_meta.json
{
"ownerId": "kn769hxajq747rnm1pyf9zmtns80cn81",
"slug": "telegram-pairing-customization",
"version": "1.0.4",
"publishedAt": 1770523372736
}Editorial read
Docs source
CLAWHUB
Editorial quality
ready
Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost. Skill: 总是响应未配对用户的 /start 消息 | Always respond to /start messages from unpaired users Owner: crazypeace Summary: Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost. Tags: l
Skill: 总是响应未配对用户的 /start 消息 | Always respond to /start messages from unpaired users
Owner: crazypeace
Summary: Modify OpenClaw's Telegram pairing logic so unapproved users receive pairing codes on every /start message before approval. Use when users need to repeatedly access pairing codes after the initial request, ensuring consistent access to pairing instructions even if the initial code was missed or lost.
Tags: latest:1.0.4
Version history:
v1.0.4 | 2026-02-08T04:02:52.736Z | user
v1.0.3 | 2026-02-03T04:11:13.803Z | user
Version 1.0.3
v1.0.2 | 2026-02-03T03:32:26.579Z | user
Version 1.0.2
v1.0.1 | 2026-02-03T02:22:52.636Z | auto
v1.0.0 | 2026-02-02T15:44:39.502Z | user
Archive index:
Archive v1.0.4: 2 files, 2076 bytes
Files: SKILL.md (3924b), _meta.json (149b)
File v1.0.4:SKILL.md
此技能描述如何修改 OpenClaw 的 Telegram 配对逻辑,使未批准的用户在配对被批准前,每次发送 /start 消息时都能收到配对码回复。
/start 都收到配对消息(而非仅首次)在你正在运行的代码中搜索下面的代码段
if (created) {
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none"
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>")
].join("\n"))
});
}
将条件判断从 if (created) 修改为 if (code):
if (do) { // <-- 关键修改点
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none"
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>")
].join("\n"))
});
}
修改完成后需要重启 OpenClaw 服务以使更改生效:
openclaw gateway restart
在寻找需要修改的文件时, 建议先搜索 Ask the bot owner to approve with: 可以帮助你先大幅缩小处理范围, 过滤出最有可能的几个文件.
一个建议的起始目录为 /usr/lib/node_modules/openclaw/
upsertTelegramPairingRequest 函数返回 {code, created} 对象created: true,有配对码created: false,但仍有相同的配对码(只要配对请求未过期或未被批准)if (code) 而不是 if (created),确保用户每次请求都能收到有效的配对码/start 命令/start 命令,确认用户再次收到相同的配对码File v1.0.4:_meta.json
{ "ownerId": "kn769hxajq747rnm1pyf9zmtns80cn81", "slug": "telegram-pairing-customization", "version": "1.0.4", "publishedAt": 1770523372736 }
Archive v1.0.3: 3 files, 3337 bytes
Files: scripts/apply-pairing-fix.sh (1632b), SKILL.md (6044b), _meta.json (149b)
File v1.0.3:SKILL.md
此技能描述如何修改 OpenClaw 的 Telegram 配对逻辑,使未批准的用户在配对被批准前,每次发送 /start 消息时都能收到配对码回复。
/start 都收到配对消息(而非仅首次)运行提供的脚本来自动执行修改:
bash /root/.openclaw/workspace/skills/telegram-pairing-customization/scripts/apply-pairing-fix.sh
脚本将自动完成以下操作:
if (created) 为 if (code)如果需要手动修改,请按以下步骤操作:
在进行任何修改之前,备份原始文件:
cp /usr/lib/node_modules/openclaw/dist/telegram/bot-message-context.js /usr/lib/node_modules/openclaw/dist/telegram/bot-message-context.js.backup
文件路径:/usr/lib/node_modules/openclaw/dist/telegram/bot-message-context.js
找到以下原始代码段:
if (dmPolicy === "pairing") {
try {
const from = msg.from;
const telegramUserId = from?.id ? String(from.id) : candidate;
const { code, created } = await upsertTelegramPairingRequest({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
});
if (created) { // <-- 关键修改点
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none",
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>"),
].join("\n")),
});
}
}
catch (err) {
logVerbose(`telegram pairing reply failed for chat ${chatId}: ${String(err)}`);
}
}
将条件判断从 if (created) 修改为 if (code):
if (dmPolicy === "pairing") {
try {
const from = msg.from;
const telegramUserId = from?.id ? String(from.id) : candidate;
const { code, created } = await upsertTelegramPairingRequest({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
});
if (code) { // Send pairing message if we have a valid code (either newly created or previously created)
logger.info({
chatId: candidate,
username: from?.username,
firstName: from?.first_name,
lastName: from?.last_name,
matchKey: allowMatch.matchKey ?? "none",
matchSource: allowMatch.matchSource ?? "none",
}, "telegram pairing request");
await withTelegramApiErrorLogging({
operation: "sendMessage",
fn: () => bot.api.sendMessage(chatId, [
"OpenClaw: access not configured.",
"",
`Your Telegram user id: ${telegramUserId}`,
"",
`Pairing code: ${code}`,
"",
"Ask the bot owner to approve with:",
formatCliCommand("openclaw pairing approve telegram <code>"),
].join("\n")),
});
}
}
catch (err) {
logVerbose(`telegram pairing reply failed for chat ${chatId}: ${String(err)}`);
}
}
修改完成后需要重启 OpenClaw 服务以使更改生效:
openclaw gateway restart
upsertTelegramPairingRequest 函数返回 {code, created} 对象created: true,有配对码created: false,但仍有相同的配对码(只要配对请求未过期或未被批准)if (code) 而不是 if (created),确保用户每次请求都能收到有效的配对码/start 命令/start 命令,确认用户再次收到相同的配对码File v1.0.3:_meta.json
{ "ownerId": "kn769hxajq747rnm1pyf9zmtns80cn81", "slug": "telegram-pairing-customization", "version": "1.0.3", "publishedAt": 1770091873803 }
Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "CLAWHUB",
"generatedAt": "2026-04-17T05:10:08.224Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceUrl": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.7K downloads",
"href": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceUrl": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.4",
"href": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceUrl": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-08T04:02:52.736Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-crazypeace-telegram-pairing-customization/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "release",
"title": "Release 1.0.4",
"description": "- Removed the automation script apply-pairing-fix.sh; step-by-step manual modification is now required. - Updated instructions to guide users in manually locating and editing the relevant code block for Telegram pairing. - Provided practical tips for searching file locations and verifying the code change. - No changes to underlying pairing logic; usage remains the same.",
"href": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceUrl": "https://clawhub.ai/crazypeace/telegram-pairing-customization",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-08T04:02:52.736Z",
"isPublic": true
}
]Sponsored
Ads related to 总是响应未配对用户的 /start 消息 | Always respond to /start messages from unpaired users and adjacent AI workflows.