| name | qq-notify |
| description | Use only when Codex needs to create a standalone QQ notification or scheduled QQ reminder for the user. This includes requests like "每天早上8点提醒我该起床了". Do not use this skill for normal conversational replies, task answers, status updates, or messages that should be part of the current response. |
QQ Notify
Use this skill only to create an out-of-band notification to QQ, including scheduled reminders.
Do not use it for normal replies. For ordinary answers, status updates, explanations, or task results, respond normally in the current Codex conversation.
Command:
qq-notify "<message>"
The default format is plain text. You may choose the message format explicitly:
qq-notify --text "<message>"
qq-notify --markdown "**Reminder:** message"
qq-notify --format markdown "**Reminder:** message"
--text and --plain-text both send plain text. --markdown sends QQ Markdown and falls back to plain text if QQ Markdown is disabled or unavailable in the bot configuration. QQ_NOTIFY_FORMAT=text|markdown can be used as a default, but command-line flags take precedence.
For scheduled reminders, create a cron file in /etc/cron.d/. This path is mounted from the project ./cron.d directory, so scheduled reminders survive container recreation. The container starts cron automatically.
Example for "每天早上8点提醒我该起床了":
cat >/etc/cron.d/qq-wakeup <<'EOF'
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CODEX_HOME=/codex-home
DATA_DIR=/data
WORKSPACE_DIR=/workspace
QQ_API_BASE=https://api.sgroup.qq.com
0 8 * * * root qq-notify --text "该起床了"
EOF
chmod 0644 /etc/cron.d/qq-wakeup
Cron file names should use only letters, digits, underscores, and hyphens. Avoid dots in file names.
Do not put QQ secrets in cron commands or cron files. qq-notify automatically loads runtime configuration from:
/data/qqbot.env
That file is generated by the bot and contains QQ_APP_ID, QQ_APP_SECRET, proxy settings, DATA_DIR, CODEX_HOME, and WORKSPACE_DIR.
If the runtime env file is moved, set only this non-secret pointer in cron:
QQBOT_RUNTIME_ENV_FILE=/path/to/qqbot.env
Behavior:
- Sends one isolated QQ private message in plain-text or Markdown format.
- Uses the most recent QQ private chat openid recorded by the bot.
- Loads QQ credentials and proxy settings from
/data/qqbot.env.
- Does not attach conversation context.
- Does not replace the normal final answer when the user expects one.
- Cron reminders are container-local. They persist while the container filesystem exists, but may need to be recreated after rebuilding or recreating the container unless stored in a mounted path and installed again.
Appropriate examples:
- The user asks: "完成后通知我一声。"
- The user asks: "每天早上8点提醒我该起床了。"
- A long-running task finishes and the user explicitly requested a QQ notification.
- The user asks Codex to send a standalone reminder/notification.
Inappropriate examples:
- Answering a question.
- Reporting normal command output.
- Sending routine progress updates.
- Any general chat response.