weixin-send
Analysis
This is a coherent WeChat messaging fallback, but it bypasses normal OpenClaw messaging controls and uses local WeChat bot tokens to send outbound messages, so it needs careful review before installation.
Findings (4)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
本 skill 通过直接调用微信 ilink API 绕过这一限制,实现**从任意 session/脚本主动向微信用户发消息**。 ... - 不经过 OpenClaw 通道框架,不触发 session 日志
The documented workflow intentionally bypasses the normal OpenClaw channel framework and session logging, allowing direct message sending from any session or script.
"schedule": { "kind": "cron", "expr": "0 9 * * *", "tz": "Asia/Shanghai" },
...
"运行命令发送提醒:python3 ~/.openclaw/workspace/skills/weixin-send/send.py send ..."The documentation shows how to configure scheduled background sends. This is user-directed and aligned with the skill purpose, but it creates ongoing outbound messaging if the user installs such a schedule.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
ACCOUNTS_DIR = Path.home() / ".openclaw" / "openclaw-weixin" / "accounts"
...
token = acct["token"]
...
"Authorization": f"Bearer {token}"The script loads a local WeChat bot account token and uses it as a bearer credential to send messages, even though the registry metadata declares no primary credential or required config path.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
base_url = acct.get("baseUrl", "https://ilinkai.weixin.qq.com")
...
url = f"{base_url.rstrip('/')}/ilink/bot/sendmessage"The message body, target user ID, context token, and bearer token are sent to the configured provider endpoint, defaulting to WeChat's ilink API. This is expected for the skill, but users should understand the data boundary.
