Live survey304 models · 14 providers · 22,792 auditsAudited grill-with-docs · SAFE →What changedHow we verifyllms.txt

Agent skill · Audited from source

baoyu-post-to-wechat

skill · jimliu/baoyu-skillsMIT licenceAudited 31 Oct 2026 · source ae9966d431c4

★ 27,093pushed 50 days agoversion 1.118.2
✕BLOCKGrade D · 69/100 · 10 findings · ae9966d
27,093repo stars · whole jimliu/baoyu-skills

Is it safe? No — BLOCK, grade D (69/100). We read this skill's source at commit ae9966d431c4 and observed filesystem, network and shell access and no hard-coded secrets. The audit raised 10 findings, 2 critical or high. What it does: Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP. Supports article posting (文章) with HTML, markdown, or plain text input, and image-text posting (贴图, formerly 图文) with multiple images. Markdown…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “baoyu-post-to-wechat (jimliu/baoyu-skills)”. Retrieved 31 Oct 2026. https://modelsatlas.com/skills/jimliu/baoyu-post-to-wechat

Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 2 critical or high findings, starting with “Prompt injection” in SKILL.md:170. Do not install it without reading them.

Trust audit

Audit 0.4.1 · source read 31 Oct 2026

Trust score69/100✕BLOCK D
1 critical1 high0 medium8 low0 info

BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 721 of 17,602 audited skills.

What the source does

  • FilesystemDeclared1 observation
  • NetworkDeclared5 observations
  • ShellDeclared5 observations
  • DependenciesNot pinnedSome versions float
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS0
L1 Static sourceSecrets, path traversal, supply chain, hidden codePASS8
L2 InstructionsPrompt injection, authority framing, hidden directivesFAIL2
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: critical finding, no behavioural pass, undeclared transfer.

Findings (10)

CRITICALPrompt injectionprompt.transfer_instruction · SKILL.md:170
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
**`remote-api` method**: WeChat's "公众号设置 → IP 白名单" often limits API access to one or two fixed IPs. If your local machine's IP is not on that list but a cloud server's is, use `remote-api`: all markdo
Why
an instruction to move sensitive data to an outside destination
Fix
remove; a skill never needs the user's secrets off the machine
HIGHPrompt injectionprompt.credential_read · SKILL.md:274
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
| Access token error | Verify credentials valid and not expired |
Why
asks the agent to read credentials
Fix
—
LOWFilesystem / pathfs.credential_store · scripts/wechat-extend-config.test.ts:163
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
"remote_publish_identity_file: /home/me/.ssh/id_ed25519",
Why
touches a credential store
Fix
—
LOWFilesystem / pathfs.credential_store · scripts/wechat-extend-config.test.ts:164
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
"remote_publish_known_hosts_file: /home/me/.ssh/known_hosts",
Why
touches a credential store
Fix
—
LOWFilesystem / pathfs.credential_store · scripts/wechat-extend-config.test.ts:178
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
assert.equal(resolved.remote_publish_identity_file, "/home/me/.ssh/id_ed25519");
Why
touches a credential store
Fix
—
LOWFilesystem / pathfs.credential_store · scripts/wechat-extend-config.test.ts:179
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
assert.equal(resolved.remote_publish_known_hosts_file, "/home/me/.ssh/known_hosts");
Why
touches a credential store
Fix
—
LOWFilesystem / pathfs.credential_store · scripts/wechat-remote-publish.test.ts:39
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
identityFile: "/home/me/.ssh/id_ed25519",
Why
touches a credential store
Fix
—
LOWNetwork egressnet.raw_ip · scripts/wechat-http.test.ts:37
F-04 Network egressCWE-200 · CWE-319Layer L1
const baseUrl = `http://127.0.0.1:${address.port}`;
Why
No further detail recorded for this rule.
Fix
—
LOWNetwork egressnet.raw_ip · scripts/wechat-socks-http.test.ts:38
F-04 Network egressCWE-200 · CWE-319Layer L1
return { baseUrl: `http://127.0.0.1:${port}`, port, received };
Why
No further detail recorded for this rule.
Fix
—
LOWSupply chainsupply.unpinned · scripts/package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
@jsquash/webp, baoyu-chrome-cdp, baoyu-md, jimp, socks
Why
5 dependency range(s) float
Fix
pin exact versions or ship a lockfile

Audit 0.4.1 · source sha ae9966d431c4 · 31 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publisherjimliu GitHub userOwner of the repository this skill is read from
  • Source folderjimliu/baoyu-skills/skills/baoyu-post-to-wechatThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdictae9966d431c4A new audit runs when the source changes
  • Repository statusNot archivedLast push 50 days ago
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP. Supports article posting (文章) with HTML, markdown, or plain text input, and image-text posting (贴图, formerly 图文) with multiple images. Markdown…

---
name: baoyu-post-to-wechat
description: Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP. Supports article posting (文章) with HTML, markdown, or plain text input, and image-text posting (贴图, formerly 图文) with multiple images. Markdown article workflows default to converting ordinary external links into bottom citations for WeChat-friendly output. Use when user mentions "发布公众号", "post to wechat", "微信公众号", or "贴图/图文/文章".
version: 1.118.2
metadata:
  openclaw:
    homepage: https://github.com/JimLiu/baoyu-skills#baoyu-post-to-wechat
    requires:
      anyBins:
        - bun
        - npx
---

# Post to WeChat Official Account

## User Input Tools

When this skill prompts the user, follow this tool-selection rule (priority order):

1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.
2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.
3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.

Concrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.

## Language

Respond in the user's language. If they write in Chinese, reply in Chinese; if English, English. Keep technical tokens (paths, flags, field names) in English.

## Script Directory

`{baseDir}` = this SKILL.md's directory. Resolve `${BUN_X}`: prefer `bun`; else `npx -y bun`; else suggest `brew install oven-sh/bun/bun`.

| Script | Purpose |
|--------|---------|
| `scripts/wechat-browser.ts` | Image-text posts (图文) |
| `scripts/wechat-article.ts` | Article posting via browser (文章) |
| `scripts/wechat-api.ts` | Article posting via API (文章) |
| `scripts/md-to-wechat.ts` | Markdown → WeChat-ready HTML with image placeholders |
| `scripts/check-permissions.ts` | Verify environment & permissions |

## Preferences (EXTEND.md)

Check these paths in order; first hit wins:

| Path | Scope |
|------|-------|
| `.baoyu-skills/baoyu-post-to-wechat/EXTEND.md` | Project |
| `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-wechat/EXTEND.md` | XDG |
| `$HOME/.baoyu-skills/baoyu-post-to-wechat/EXTEND.md` | User home |

Found → read, parse, apply. Not found → run first-time setup (`references/config/first-time-setup.md`) before anything else.

**Minimum keys** (case-insensitive, accept `1/0` or `true/false`):

| Key | Default | Mapping |
|-----|---------|---------|
| `default_author` | empty | Fallback for `author` when CLI/frontmatter not provided |
| `need_open_comment` | `1` | `articles[].need_open_comment` in `draft/add` |
| `only_fans_can_comment` | `0` | `articles[].only_fans_can_comment` in `draft/add` |

**Recommended EXTEND.md**:

```md
default_theme: default
default_color: blue
default_publish_method: browser
default_author: 宝玉
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile

# Remote API publishing (optional) — only set if WeChat's IP allowlist
# excludes your local machine. See "Remote API Method" below.
# remote_publish_host: server.example.com
# remote_publish_user: deploy
# remote_publish_port: 22
# remote_publish_identity_file: ~/.ssh/id_ed25519
# remote_publish_known_hosts_file: ~/.ssh/known_hosts
# remote_publish_strict_host_key_checking: accept-new
# remote_publish_connect_timeout: 10
# remote_publish_proxy_jump: bastion.example.com
```

Raw `ssh` / `scp` options are intentionally not supported; only the typed keys above are honored. Authentication is SSH key only (no passwords).

**Theme options**: default, grace, simple, modern. **Color presets**: blue, green, vermilion, yellow, purple, sky, rose, olive, black, gray, pink, red, orange (or hex).

**Value priority**: CLI args → frontmatter → EXTEND.md (account-level → global) → skill defaults.

## Multi-Account Support

EXTEND.md supports an `accounts:` block for managing multiple Official Accounts. With 2+ entries, the workflow inserts a Step 0.5 to prompt for account selection (or auto-selects based on `default: true` or `--account <alias>`).

Full details — compatibility rules, per-account keys, credential resolution, per-account Chrome profiles, CLI usage — in `references/multi-account.md`.

## Pre-flight Check (Optional)

Before first use, suggest the environment check (user can skip):

```bash
${BUN_X} {baseDir}/scripts/check-permissions.ts
```

Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, API credentials, Chrome conflicts.

| Check fails | Fix |
|-------------|-----|
| Chrome | Install Chrome or set `WECHAT_BROWSER_CHROME_PATH` |
| Profile dir | Shared profile at `baoyu-skills/chrome-profile` |
| Bun runtime | `brew install oven-sh/bun/bun` or `npm install -g bun` |
| Accessibility (macOS) | System Settings → Privacy & Security → Accessibility → enable terminal app |
| Clipboard copy | Ensure Swift/AppKit (macOS: `xcode-select --install`) |
| Paste keystroke (Linux) | Install `xdotool` (X11) or `ydotool` (Wayland) |
| API credentials | Follow guided setup in Step 2, or set in `.baoyu-skills/.env` |

## Image-Text Posting (图文)

Short posts with multiple images (up to 9):

```bash
${BUN_X} {baseDir}/scripts/wechat-browser.ts --markdown article.md --images ./images/
${BUN_X} {baseDir}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img.png --submit
```

Details: `references/image-text-posting.md`.

## Article Posting Workflow (文章)

```
- [ ] Step 0: Load preferences (EXTEND.md)
- [ ] Step 0.5: Resolve account (multi-account only — see references/multi-account.md)
- [ ] Step 1: Determine input type
- [ ] Step 2: Select method and configure credentials
- [ ] Step 3: Resolve theme/color and validate metadata
- [ ] Step 4: Publish to WeChat
- [ ] Step 5: Report com

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit ae9966d

git clone https://github.com/jimliu/baoyu-skills
git -C baoyu-skills checkout ae9966d431c4

The author documents no install command, so this uses the repository directly. Our verdict covers commit ae9966d431c4 only.

Works in which agents?

What its own text says, not a test

AgentStatusMore
OpenClawMentioned in its text, not testedSkills for OpenClaw · About OpenClaw
“Mentioned” means the skill’s text names the agent. We have not run it there.

Audit history

Every audit, every source change

  1. ✕BLOCK D 69 / 100

    first audit · source ae9966d431c4

README badge

For maintainers · shows the latest audit

ModelsAtlas: BLOCK DMODELSATLASBLOCK · D
[![ModelsAtlas: BLOCK D](https://modelsatlas.com/skills/jimliu/baoyu-post-to-wechat/badge.svg)](https://modelsatlas.com/skills/jimliu/baoyu-post-to-wechat/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

Similar skills

baoyu-slide-deck✓SAFE

jimliu/baoyu-skills

Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck",…

★ 27kGrade B
baoyu-translate✓SAFE

jimliu/baoyu-skills

This skill should be used when the user asks to "translate", "翻译", "精翻", "translate article", "translate to Chinese", "translate to English", "改成中文", "改成英文", "convert to Chinese", "localize", "本地化", "refined…

★ 27kGrade B
baoyu-post-to-weibo✓SAFE

jimliu/baoyu-skills

Posts content to Weibo (微博). Supports regular posts with text, images, and videos, and headline articles (头条文章) with Markdown input via Chrome CDP. Use when user asks to "post to Weibo", "发微博", "发布微博", "publish to…

★ 27kGrade B
baoyu-post-to-x✓SAFE

jimliu/baoyu-skills

Posts content and articles to X (Twitter). Supports regular posts with images/videos and X Articles (long-form Markdown). In Codex, honor explicit requests for the Codex Chrome plugin/@chrome by using the Chrome…

★ 27kGrade B
baoyu-markdown-to-html✓SAFE

jimliu/baoyu-skills

Converts Markdown to styled HTML with WeChat-compatible themes. Supports code highlighting, math, Mermaid (rendered to PNG via headless Chrome), PlantUML, footnotes, alerts, infographics, and optional bottom citations…

★ 27kGrade B
baoyu-infographic✓SAFE

jimliu/baoyu-skills

Generate professional infographics with 21 layout types and 22 visual styles. Analyzes content, recommends layout×style combinations, and generates publication-ready infographics. Use when user asks to create…

★ 27kGrade B

Add this badge to your README

[![ModelsAtlas: BLOCK D](https://modelsatlas.com/skills/jimliu/baoyu-post-to-wechat/badge.svg)](https://modelsatlas.com/skills/jimliu/baoyu-post-to-wechat/)

Questions about baoyu-post-to-wechat

Is baoyu-post-to-wechat safe to install?
No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What can baoyu-post-to-wechat access on my machine?
The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: none found.
Which assistants does baoyu-post-to-wechat work with?
Its documentation mentions openclaw. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (ae9966d431c4), read on 2026-10-31. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.