md2wechat-skillSAFE
面向 AI Agent 的微信公众号创作与发布 CLI:Markdown 排版、AI 配图、预览与草稿创建;支持由浏览器 Agent 保存知乎、CSDN、头条未发布草稿。
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
md2wechat
面向 AI Agent 的微信公众号创作与发布 CLI
写 Markdown,生成公众号排版,制作封面和文章配图,预览校验后推送草稿箱。
支持 Claude Code、Codex、WorkBuddy、Kimi Work、Hermes Agent、OpenClaw 等 Agent 通过 JSON discovery 稳定调用。
[](https://golang.org) [](LICENSE) [](https://github.com/geekjourneyx/md2wechat-skill/releases) [](#agent-工作流) [](#专业-api)
排版效果 · 快速开始 · 专业 API · 联系我 / 获取 API Key · 文档
接入有疑问?关注公众号「极客杰尼」,发消息「API咨询」;也可以直接发邮件到 [email protected]。查看联系方式与二维码
[!TIP] v3.8.0 高级排版升级:83 个推荐场景对应 59 个推荐语法;新增 `cover-reveal`、`expand`,`gallery` 进入推荐目录,并扩展 12 种品牌图形符号与动效。 新互动模块默认完整静态展示;显式 first-layer 仅为点击候选,微信内效果仍待验证。布局指南 · 版本化安装这个项目解决什么问题
md2wechat 把公众号发布流程拆成一组可验证的 CLI 命令:
排版效果
先看文章排出来的样子,再选择使用方式。
07be609bd842OBSERVED · 2026-10-12Install
Commands as the repository documents them. They are shown, not run.
npm install -g @geekjourneyx/[email protected]
npm install -g @geekjourneyx/[email protected]
npm install -g @geekjourneyx/[email protected] --registry=https://registry.npmjs.org/
npm install -g @geekjourneyx/[email protected]
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| codex | mentioned | |
| copilot | mentioned | |
| openclaw | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: md2wechat description: Convert Markdown to WeChat Official Account HTML. Use this whenever the user wants WeChat article formatting, article preview, WeChat draft upload, image generation for articles, cover or infographic generation, image-post creation, writer-style drafting, title suggestions, AI trace removal, or current discovery of supported providers, themes, prompts, and layout modules. Also use for unpublished Zhihu, CSDN, Toutiao, or Tencent Cloud Developer Community drafts through a browser. Use for product introductions, encyclopedia articles or entry drafts, and writing tailored to platforms or search targets. --- # md2wechat Use this skill to operate the `md2wechat` CLI. Keep the skill focused on execution decisions. For full command tutorials, installation details, and FAQ-level explanations, refer users to the project docs instead of expanding this runtime protocol. ## Intent Routing Choose the command family before taking any publish or generation action: - Standard article HTML, article preview, metadata inspection, or WeChat article draft: use `inspect`, `preview`, and `convert`. - Unpublished Zhihu, CSDN, Toutiao, or Tencent Cloud Developer Community draft: run `md2wechat skills read md2wechat references/sync/workflow.md --json` for the current CLI's embedded workflow; the CLI prepares content and the Agent operates the browser. - Image-first post, image note, image-text note, `newspic`, or multi-image post: use `create_image_post`, not `convert --draft`. - Article cover or article infographic: prefer `generate_cover` or `generate_infographic` over raw `generate_image` when a bundled preset fits. - Host-agent image generation request with no provider configured: use image plan mode (`--plan --json`) to get prompt intent, then hand it to the host image-generation tool if one is available outside md2wechat. - WeChat title candidates for an existing article: use `title suggest <article.md> --json`; it emits a host-Agent AI request and does not choose or write the final title. - Product introductions, encyclopedia articles or entry drafts, and platform/search-directed writing: read `md2wechat skills read md2wechat references/writing/workflow.md --json` and follow it as the host Agent. Prefer this route over `advise` or `write` for these requests; skip it for formatting-only tasks. - Existing article or draft, user asks what to improve next: run `md2wechat advise <article.md> --json`; treat it as recommendation-only and keep `inspect --json data.readiness.targets/blockers` as the publish gate. - Writing in a creator style or removing AI traces: use `write` or `humanize`. - Provider, theme, prompt, or layout uncertainty: run discovery first. Do not guess from memory or repository files. Treat `convert --draft` and `create_image_post` as different publish targets, not interchangeable variants. ## Discovery First Use CLI discovery as the source of truth, but keep it scoped to the next decision. Do not run the full catalog for tasks that do not need provider, theme, prompt, or layout selection. Use `capabilities` for aggregate routing facts, resource `list` for lightweight selection fields, `show` for one full resource definition, and `render` for materialized prompt/layout output. JSON stdout is compact; use `jq` only when a human needs formatted output. Run the smallest useful discovery set: - Article formatting with no theme or modules chosen: ```bash md2wechat themes list --json md2wechat layout list --json ``` - A named theme, provider, prompt, or layout module: ```bash md2wechat themes show <name> --json md2wechat providers show <name> --json md2wechat prompts show <name> --kind <kind> --json md2wechat layout show <name> --json ``` - Image generation or image-preset selection: ```bash md2wechat providers list --json md2wechat prompts list --kind image --json ``` - Subject-reference (image-to-image) capability before using `--subject-reference`: ```bash md2wechat providers show minimax --json ``` Read `supports_subject_reference` on the provider and on each entry of `supported_models`. Only the `minimax` provider and its `image-01` model accept `--subject-reference`, and the reference must be a publicly reachable `http(s)` portrait image URL; inline data URLs and local paths are rejected. Unsupported provider/model combinations fail immediately with `CONFIG_INVALID`, so do not retry them as generation failures. - Title suggestion prompt selection: ```bash md2wechat prompts list --kind title --json md2wechat prompts show wechat-title-expert --kind title --json ``` - Draft, upload, API local-readiness, or configuration troubleshooting: ```bash md2wechat doctor --json md2wechat config show --format json md2wechat config wechat-accounts --json ``` `doctor` readiness is local configuration attemptability. `config wechat-accounts` is local-only and never prints WeChat secrets. Use `inspect --json` for article-specific target readiness. - Unknown CLI version, changed behavior, or capability uncertainty: ```bash md2wechat version --json md2wechat capabilities --json md2wechat skills list --json md2wechat skills read md2wechat --json ``` `md2wechat skills read md2wechat --json` reads the SOP embedded in the current CLI binary. Prefer it when the installed external skill, README, or repository checkout may be stale relative to the executable on `PATH`. For simple local actions such as `preview`, `humanize`, or a user-specified command with explicit flags, do not run unrelated provider, theme, prompt, or layout discovery. Inspect specific resources only when the task needs them: ```bash md2wechat providers show <name> --json md2wechat themes show <name> --json md2wechat prompts show <name> --kind <kind> --json md2wechat layout show <name> --json ``` Use CLI output as the source of truth for currently available modes, providers, themes, prompts, and layout modules. ## Configuration Bo
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (6 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (20)
publicDNSDoHEndpoint = "https://1.1.1.1/dns-query"
for _, bad := range []string{"../../etc/passwd", "/etc/passwd", "..", "", "references/../../x", `..\x`} {"../../README.md",
"../../docs/README.md",
"../../docs/LAYOUT.md",
"../../docs/DISCOVERY.md",
"../../docs/FAQ.md",
{"http://127.0.0.1:3000/", "http://127.0.0.1:3000/api/convert"},MD2WechatBaseURL: "http://127.0.0.1:1",
{"literal private IP", "http://10.0.0.2/image.png", nil},rawURL: "https://198.18.0.86/file.png",
When the user says "帮我排版这篇文章" without naming a theme or module, run discovery first, then use `layout list`, `layout show`, and `layout render` as primitives. The CLI does not parse `~/.config/md2wech
4. Add `--upload`, `--draft`, `--cover`, or `--cover-media-id` only when the user explicitly asks for upload or draft creation.
4. Add `--upload`, `--draft`, `--cover`, or `--cover-media-id` only when the user explicitly asks for upload or draft creation.
`doctor` 是本地只读诊断命令。它检查 config load、默认转换模式、API key/base presence、默认主题兼容性、layout catalog、WeChat 草稿凭证。它不做 live auth、不上传图片、不创建草稿。
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v3.8.0/install.sh | bash
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v3.8.0/install.sh | bash
3. 如果以上两种都不适合,再运行:curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v3.8.0/install.sh | bash
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v3.8.0/install.sh | bash
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v3.8.0/install.sh | bash
Gates applied: no_behavioural_pass.
07be609bd842full audit observations/trust-audit/skill/geekjourneyx__md2wechat-skill.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 07be609bd842 | SAFE | B | 89 | first audit |
Questions
What does the md2wechat-skill skill do?
面向 AI Agent 的微信公众号创作与发布 CLI:Markdown 排版、AI 配图、预览与草稿创建;支持由浏览器 Agent 保存知乎、CSDN、头条未发布草稿。
Is md2wechat-skill safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can md2wechat-skill access on my machine?
The audit observed that it reaches the network 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 md2wechat-skill work with?
Its documentation mentions claude-code, codex, copilot and 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 (07be609bd842), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.