ping-me ⏰
Set one-shot reminders through natural language. The reminder fires once, delivers to the user's current chat channel, then auto-deletes.
Response flow: Call the script first, then confirm with one short sentence. Keep it concise — no preamble, no time calculations, just the confirmation.
How It Works
User says something like:
- - "Remind me in 30 minutes to take a break"
- "提醒我明天下午3点交作业"
- "3分後にお風呂に入ることを思い出させて"
- "rappelle-moi dans 2 heures de rappeler Marie"
You parse the time and message, then call the script SILENTLY.
Channel & Delivery Target
The script auto-detects which channel the user is chatting from.
- - You do NOT need to pass
--channel unless the user explicitly asks for a different channel - Only pass
--channel when the user explicitly says "remind me on telegram" / "发到飞书" / etc.
Delivery target (--to)
Some channels (e.g. QQ Bot) require a full delivery target for announce mode. The script resolves --to automatically from:
- 1.
$OPENCLAW_TO environment variable (if gateway sets it) - INLINECODE5 (extracts target from session key format)
- INLINECODE6 →
"to" field (user-configured)
If reminders fail with "requires target" error, the user needs to configure their target once:
CODEBLOCK0
You can also pass --to explicitly when calling the script.
Commands
Set a reminder
CODEBLOCK1
Time formats:
| User says | You pass as INLINECODE9 |
|---|
| "3分钟后" / "in 3 minutes" | INLINECODE10 |
| "30分钟后" / "in 30 minutes" |
30m |
| "2小时后" / "in 2 hours" |
2h |
| "明天" / "tomorrow" |
1d |
| "明天下午3点" / "tomorrow at 3pm" | ISO 8601:
2026-03-11T15:00 (no tz offset needed, script uses configured tz) |
| "周五晚上8点" / "Friday 8pm" | ISO 8601 with calculated date |
IMPORTANT: For relative times (N分钟后, N小时后, in N minutes/hours), ALWAYS use the short form (3m, 2h, 1d). Do NOT convert to ISO timestamp.
Options:
- -
--channel <ch> — override delivery channel (only when user explicitly requests) - INLINECODE19 — override delivery target (e.g.
qqbot:c2c:<openid>) - INLINECODE21 — override timezone for this reminder
- INLINECODE22 — custom emoji prefix
Examples:
CODEBLOCK2
List active reminders
CODEBLOCK3
Cancel a reminder
CODEBLOCK4
View / change settings
CODEBLOCK5
Your Job (Agent Instructions)
Creating Reminders
- 1. Detect reminder intent in any language
- Extract time and message
- For relative times → use short form (
3m, 2h, 1d). For absolute times → ISO 8601 without tz offset - Do NOT pass
--channel or --to unless user explicitly requests a specific channel, or the script fails without it - Call
ping-me.sh with the parsed arguments - After the script succeeds, confirm with one short sentence in the user's language
Response Style
Keep responses concise. Call the script first, then confirm briefly:
- - "⏰ Got it, pinging you in 30 minutes to take a break."
- "⏰ 好的,3分钟后提醒你洗澡。"
- "⏰ 已设置,明天下午3点提醒你交作业。"
- "⏰ 3分後にリマインドします。"
No need to explain time conversion or timezone logic to the user — just confirm the reminder.
Listing & Cancelling
- - "what reminders do I have" / "我有哪些提醒" → run INLINECODE29
- "cancel reminder X" / "取消提醒" → run
ping-me-cancel.sh <id> (get ID from list first)
Changing Settings (Interactive)
When user wants to change settings, use ping-me-config.sh:
- - "change timezone to Tokyo" / "改时区到东京" → INLINECODE32
- "默认发到飞书" / "send reminders to feishu by default" → INLINECODE33
- "设置QQ投递目标" → INLINECODE34
- "show my settings" / "看看设置" → run without args
- "reset settings" / "重置设置" → INLINECODE35
After changing settings, confirm with ONE sentence.
First-Time Setup Hint
If the first reminder fails with a "requires target" or "multiple channels" error, guide the user to configure:
- 1. Default channel: INLINECODE36
- Delivery target: INLINECODE37
The user's openid can be found in their QQ Bot session key or gateway logs.
Notes
- - Reminders auto-delete after firing (
--delete-after-run) - Channel auto-detection:
$OPENCLAW_CHANNEL → config → empty - Delivery target auto-detection:
$OPENCLAW_TO → session key extraction → config → empty - Timezone auto-detection: config.tz → system tz → UTC
- No API keys or external services needed
- Settings stored in INLINECODE41
ping-me ⏰
通过自然语言设置一次性提醒。提醒触发一次后,会投递到用户当前的聊天频道,然后自动删除。
响应流程:先调用脚本,然后用一句简短的话确认。保持简洁——不要前言,不要计算时间,只需确认。
工作原理
用户可以说类似这样的话:
- - Remind me in 30 minutes to take a break
- 提醒我明天下午3点交作业
- 3分後にお風呂に入ることを思い出させて
- rappelle-moi dans 2 heures de rappeler Marie
你需要解析出时间和消息,然后静默调用脚本。
频道与投递目标
脚本会自动检测用户正在聊天的频道。
- - 除非用户明确要求不同的频道,否则你不需要传递 --channel
- 只有当用户明确说在 Telegram 上提醒我/发到飞书等时,才传递 --channel
投递目标(--to)
某些频道(如 QQ 机器人)在公告模式下需要完整的投递目标。脚本会从以下来源自动解析 --to:
- 1. $OPENCLAWTO 环境变量(如果网关设置了)
- $OPENCLAWSESSION_KEY(从会话密钥格式中提取目标)
- config.json → to 字段(用户配置)
如果提醒因需要目标错误而失败,用户需要配置一次目标:
bash
bash {baseDir}/scripts/ping-me-config.sh --set to=qqbot:c2c:
你也可以在调用脚本时显式传递 --to。
命令
设置提醒
bash
bash {baseDir}/scripts/ping-me.sh [选项] <时间> <消息>
时间格式:
| 用户说 | 你传递为 <时间> |
|---|
| 3分钟后 / in 3 minutes | 3m |
| 30分钟后 / in 30 minutes |
30m |
| 2小时后 / in 2 hours | 2h |
| 明天 / tomorrow | 1d |
| 明天下午3点 / tomorrow at 3pm | ISO 8601: 2026-03-11T15:00(无需时区偏移,脚本使用配置的时区) |
| 周五晚上8点 / Friday 8pm | 带计算日期的 ISO 8601 |
重要:对于相对时间(N分钟后、N小时后、in N minutes/hours),始终使用简短形式(3m、2h、1d)。不要转换为 ISO 时间戳。
选项:
- - --channel — 覆盖投递频道(仅当用户明确要求时)
- --to — 覆盖投递目标(例如 qqbot:c2c:)
- --tz — 覆盖此提醒的时区
- --emoji — 自定义表情符号前缀
示例:
bash
bash {baseDir}/scripts/ping-me.sh 30m Take a break
bash {baseDir}/scripts/ping-me.sh 2h Team meeting
bash {baseDir}/scripts/ping-me.sh 2026-03-11T15:00 Submit homework
bash {baseDir}/scripts/ping-me.sh --channel telegram 1d Renew subscription
列出活跃提醒
bash
bash {baseDir}/scripts/ping-me-list.sh
取消提醒
bash
bash {baseDir}/scripts/ping-me-cancel.sh <任务ID>
查看/更改设置
bash
bash {baseDir}/scripts/ping-me-config.sh # 显示设置
bash {baseDir}/scripts/ping-me-config.sh --set tz=Asia/Tokyo # 更改时区
bash {baseDir}/scripts/ping-me-config.sh --set channel=qqbot # 更改默认频道
bash {baseDir}/scripts/ping-me-config.sh --set to=qqbot:c2c: # 设置投递目标
bash {baseDir}/scripts/ping-me-config.sh --set emoji=🔔 # 更改表情符号
bash {baseDir}/scripts/ping-me-config.sh --set lang=zh # 更改语言
bash {baseDir}/scripts/ping-me-config.sh --reset # 重置为默认值
你的任务(代理指令)
创建提醒
- 1. 检测任何语言中的提醒意图
- 提取时间和消息
- 对于相对时间 → 使用简短形式(3m、2h、1d)。对于绝对时间 → 使用不带时区偏移的 ISO 8601
- 除非用户明确要求特定频道,或者脚本在没有它的情况下失败,否则不要传递 --channel 或 --to
- 使用解析后的参数调用 ping-me.sh
- 脚本成功后,用用户语言的一句简短的话确认
响应风格
保持响应简洁。先调用脚本,然后简要确认:
- - ⏰ Got it, pinging you in 30 minutes to take a break.
- ⏰ 好的,3分钟后提醒你洗澡。
- ⏰ 已设置,明天下午3点提醒你交作业。
- ⏰ 3分後にリマインドします。
无需向用户解释时间转换或时区逻辑——只需确认提醒。
列出与取消
- - what reminders do I have / 我有哪些提醒 → 运行 ping-me-list.sh
- cancel reminder X / 取消提醒 → 运行 ping-me-cancel.sh (先从列表中获取 ID)
更改设置(交互式)
当用户想要更改设置时,使用 ping-me-config.sh:
- - change timezone to Tokyo / 改时区到东京 → --set tz=Asia/Tokyo
- 默认发到飞书 / send reminders to feishu by default → --set channel=feishu
- 设置QQ投递目标 → --set to=qqbot:c2c:
- show my settings / 看看设置 → 不带参数运行
- reset settings / 重置设置 → --reset
更改设置后,用一句话确认。
首次设置提示
如果第一个提醒因需要目标或多个频道错误而失败,引导用户配置:
- 1. 默认频道:ping-me-config.sh --set channel=qqbot
- 投递目标:ping-me-config.sh --set to=qqbot:c2c:
用户的 openid 可以在其 QQ 机器人会话密钥或网关日志中找到。
备注
- - 提醒触发后自动删除(--delete-after-run)
- 频道自动检测:$OPENCLAWCHANNEL → 配置 → 空
- 投递目标自动检测:$OPENCLAWTO → 会话密钥提取 → 配置 → 空
- 时区自动检测:config.tz → 系统时区 → UTC
- 无需 API 密钥或外部服务
- 设置存储在 {baseDir}/config.json 中