WeChat macOS Proxy

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: wechat-macos-proxy Version: 1.1.1 The skill implements WeChat automation on macOS using high-risk GUI control and screen capture capabilities via the `peekaboo` utility and AppleScript. While the scripts (wechat_proxy.sh, config.sh) appear to function as described for messaging, chat reading, and history export, the requirement for Screen Recording and Accessibility permissions to access a private messaging app constitutes a significant security risk. No evidence of intentional malice or data exfiltration was found, but the bundle includes unusual maintenance scripts (check_feedback.sh, weekly_feedback_report.sh) that use the clawhub CLI to monitor the skill's status on the platform.

Findings (0)

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.

What this means

A mistaken or over-eager agent action could send private or bulk messages from the user's WeChat account, including to groups or customers.

Why it was flagged

The script immediately sends messages through the active WeChat GUI and batch mode deliberately spaces sends to avoid platform risk controls, without an approval or verification step.

Skill content
peekaboo type "$message" --app "$WECHAT_APP_NAME" 2>/dev/null
...
peekaboo press return --app "$WECHAT_APP_NAME" 2>/dev/null
...
# 间隔避免触发风控
sleep 2
Recommendation

Add explicit user confirmation before every send or batch, show the resolved recipient and message, provide a dry-run mode, and avoid framing throttling as a way to bypass platform controls.

What this means

A crafted contact name or argument containing path separators could make the skill create directories or write export files outside the intended /tmp/wechat_proxy area.

Why it was flagged

The contact name is used directly as part of a filesystem path for exports, with no sanitization or canonical path check.

Skill content
local export_dir="$TEMP_DIR/export/$contact_name"
mkdir -p "$export_dir"
local md_file="$export_dir/${contact_name}_${timestamp}.md"
cat > "$md_file" << EOF
Recommendation

Sanitize contact names before using them in paths, replace slashes/control characters, and verify the canonical export path stays inside the intended export directory.

What this means

These permissions let the automation view the screen and drive UI actions with the user's existing WeChat identity.

Why it was flagged

The documented setup asks the user to grant broad macOS screen-capture and accessibility permissions so the tool can operate the user's logged-in WeChat session.

Skill content
# 添加 peekaboo 并开启屏幕录制权限
...
# 添加终端并开启辅助功能权限
Recommendation

Only grant these permissions if you trust the skill and its dependencies; revoke them when not needed and prefer a dedicated, low-risk WeChat account for automation.

What this means

Private chats, message text, and possibly other visible desktop content can remain on disk after reads, exports, checks, or listening.

Why it was flagged

Screenshots and logs are written under /tmp, and the screenshot helper captures the full screen rather than only a minimized chat region.

Skill content
TEMP_DIR="/tmp/wechat_proxy"
LOG_FILE="$TEMP_DIR/wechat_proxy.log"
...
peekaboo image --mode screen --path "$output_path"
...
screencapture -x "$output_path"
Recommendation

Use a private per-user directory with restrictive permissions, limit screenshots to the WeChat window/chat area, avoid logging message contents, and add automatic cleanup or retention settings.

What this means

If started and forgotten, the listener may keep monitoring WeChat and creating screenshots longer than intended.

Why it was flagged

Listen mode creates a PID file and runs a continuous monitoring loop until the stop command removes the PID file.

Skill content
echo $$ > "$TEMP_DIR/listener.pid"
...
while [ -f "$TEMP_DIR/listener.pid" ]; do
...
sleep 1
done
Recommendation

Use listen mode only when needed, run the provided stop command afterward, and consider adding a maximum runtime or inactivity timeout.

What this means

The safety of the automation depends partly on the installed peekaboo package and its updates.

Why it was flagged

The skill depends on external Homebrew packages, including a third-party tap, which is expected for the stated GUI automation but is not pinned in the artifacts.

Skill content
brew install steipete/tap/peekaboo jq
Recommendation

Install dependencies from trusted sources, review the peekaboo project/tap before granting permissions, and consider pinning known-good versions.