@geekjourneyx/md2wechat
v2.0.7
Published
Install the md2wechat CLI from the matching GitHub Release bundle.
Downloads
342
Readme
用 Markdown 写公众号文章,像发朋友圈一样简单
快速开始 • Coding Agent • Obsidian / Claudian • OpenClaw • 功能介绍 • 使用说明 • 常见问题
立即开始
如果你第一次接触 md2wechat,先按这个顺序走:
- 如果你是 mac 用户,优先用 Homebrew 安装 CLI:
brew install geekjourneyx/tap/md2wechat - 如果你已经有稳定可用的 Node/npm 环境,也可以直接全局安装 CLI:
npm install -g @geekjourneyx/md2wechat - 如果你已经有稳定可用的 Go 环境,也可以选
go install github.com/geekjourneyx/md2wechat-skill/cmd/[email protected] - 想直接安装 CLI:看 安装指南
- 想申请 API 服务或咨询:扫描文末公众号二维码联系,备注「API咨询」
- 想先看支持的主题 / 图片 prompt / provider:执行 discovery 命令
- 想在 Claude Code / Codex / OpenCode 等 Coding Agent 里使用:先安装 CLI,再执行
npx skills add - 想在 Obsidian 的 Claudian 插件里使用:先安装 CLI,再执行
npx skills add,然后看 Obsidian / Claudian 指南
# 查看当前实例支持什么
md2wechat capabilities --json
md2wechat themes list --json
md2wechat prompts list --kind image --json
md2wechat providers list --json
# 任选一种方式先安装 CLI,再在 Coding Agent 中安装 skill
npm install -g @geekjourneyx/md2wechat
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bash
# 安装 skill
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat直接发给 Agent
如果你不想自己组织命令,可以直接把下面的话发给 Claude Code / Codex / OpenCode 等 Agent:
请帮我安装 md2wechat 并验证可用。按这个顺序执行:
1. 运行:curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bash
2. 运行:npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat
3. 运行:export PATH="$HOME/.local/bin:$PATH"
4. 运行:md2wechat version --json
5. 运行:md2wechat config init
6. 运行:md2wechat capabilities --json
如果某一步失败,请直接告诉我失败原因和下一步修复命令,不要省略命令。如果你在 OpenClaw 里使用,可以直接发:
请帮我安装 OpenClaw 版 md2wechat,并验证 CLI 和 skill 都可用。按这个顺序执行:
1. 运行:curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install-openclaw.sh | bash
2. 运行:export PATH="$HOME/.local/bin:$PATH"
3. 运行:md2wechat version --json
4. 运行:md2wechat config init
5. 运行:md2wechat capabilities --json
6. 如果我已经装过 skill,再检查:~/.openclaw/skills/md2wechat/ 是否存在,并确认 `command -v md2wechat` 有输出
如果某一步失败,请直接告诉我失败原因和下一步修复命令,不要省略命令。先看这里
convert默认走API模式,需要你自己的md2wechat.cnAPI Key;如需咨询或申请测试,扫描文末公众号二维码联系,备注「API咨询」AI模式不需要md2wechat.cnAPI Key,但当前 CLI 返回的是AI request / prompt,需要由 Claude Code / Codex / OpenAI 等外部模型继续完成 HTML- 主题、图片 prompt、provider 不要靠猜,先执行
md2wechat themes list --json、md2wechat prompts list --kind image --json、md2wechat providers list --json- 安装、配置和校验入口分别看:安装指南 / 配置指南 / 能力发现
5分钟快速上手
第一步:安装工具
推荐先看 安装指南。如果你只想快速开始:
- mac 用户:优先使用 Homebrew
- 已有 Node/npm 环境:可以直接用 NPM 全局安装
- 已有 Go 环境:也可以使用
go install - 其他环境:优先使用固定版本
install.sh
brew install geekjourneyx/tap/md2wechat如果你更常用 Node/npm,也可以直接安装:
npm install -g @geekjourneyx/md2wechatNPM 包不会在本地重新编译 Go 项目。它会下载与包版本同号的 GitHub Release 二进制,并校验同一个 checksums.txt,因此和 Homebrew / install.sh 复用同一套发布产物。
当前 npm 安装目标矩阵:
- macOS:
amd64/arm64 - Linux:
amd64/arm64 - Windows:
amd64
如果你的 npm 默认走 https://registry.npmmirror.com,而刚发布的新版本还没同步过去,可能会出现 tarball 404。这种情况下先改用官方源安装:
npm install -g @geekjourneyx/md2wechat --registry=https://registry.npmjs.org/如果你不用 Homebrew,或者想走固定版本 release + checksum 路径,再用安装脚本:
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bash默认会安装到用户级目录:
- macOS / Linux:
~/.local/bin/md2wechat - Windows: 当前用户目录或
C:\Program Files\md2wechat\md2wechat.exe
如果脚本执行完后当前终端仍然提示 command not found: md2wechat,先执行:
export PATH="$HOME/.local/bin:$PATH"
md2wechat version --jsonWindows PowerShell:
$env:MD2WECHAT_RELEASE_BASE_URL = "https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7"
iex ((New-Object System.Net.WebClient).DownloadString("$env:MD2WECHAT_RELEASE_BASE_URL/install.ps1"))如果你主要在 Claude Code / Codex / OpenCode 等 Coding Agent 中使用,推荐先安装 CLI,再安装 skill。mac 用户优先用 Homebrew:
brew install geekjourneyx/tap/md2wechat如果你已经有 Go 环境,也可以改成:
go install github.com/geekjourneyx/md2wechat-skill/cmd/[email protected]然后安装 skill:
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat如果你要直接发给 Agent,建议把这句也带上:
如果 install.sh 执行完后当前终端仍然提示 command not found: md2wechat,请继续执行:
export PATH="$HOME/.local/bin:$PATH"
md2wechat version --json手动下载 release 资产时,请同时校验 checksums.txt。主路径应始终指向固定版本的 release,不要使用 latest 或 main 作为安装入口。
第二步:配置微信(只需一次)
md2wechat config init用记事本打开生成的配置文件(会显示路径),填入两个信息:
| 配置项 | 是什么 | 在哪获取 | |--------|--------|----------| | AppID | 公众号唯一标识 | 微信开发者平台 → 开发接口管理 | | Secret | API 密钥 | 同上,需要管理员权限 |
第一次接微信开发,建议直接看:
里面单独讲清楚了:
- AppID / AppSecret 去哪里拿
- IP 白名单怎么配
- 为什么白名单没配时会报错
- 配好后怎么一步步验证
第三步:开始使用
# 1. 用 Markdown 写好文章(假设文件叫 article.md)
# 2. 先确认系统最终会怎么理解这篇文章
md2wechat inspect article.md
# 3. 生成本地 HTML 预览文件
md2wechat preview article.md
# 4. 需要时再预览 convert 输出或创建草稿
md2wechat convert article.md --preview
md2wechat convert article.md --draft --cover cover.jpg小贴士:
inspect负责解释最终 metadata / readiness,preview负责本地确认视觉结果;它们都不会触发上传或草稿副作用。
这是什么?
md2wechat 是一个让你的微信公众号写作更高效的神器。
一句话理解:用 Markdown 写文章 → 一键转换 → 自动发到微信草稿箱
适合谁用?
| 你是 | 痛点 | md2wechat 帮你 | |------|------|---------------| | 内容创作者 | 微信编辑器太难用,排版花时间 | Markdown 写作,自动排版 | | 产品经理 | 要发公告,但不会 HTML | 不用学代码,一行命令搞定 | | 程序员 | 习惯 Markdown,讨厌微信编辑器 | 保持你的写作习惯 | | AI 用户 | 用 AI 生成内容,但要手动复制粘贴 | AI 生成 → 微信草稿,无缝衔接 |
站点入口
- 国际站: md2wechat.com
- 国内站 / API 主站: md2wechat.cn
- GitHub 项目: geekjourneyx/md2wechat-skill
关于作者
这个项目由 geekjourneyx 维护。
- 独立开发者 / AI Builder / AI 科技领域博主
- 持续打磨面向 AI Agent 的 CLI、API 与自动化工作流
- 相关项目和长期方向可见 GitHub 主页: github.com/geekjourneyx/geekjourneyx
核心功能
flowchart LR
A[用 Markdown 写文章] --> B{选择模式}
B -->|API 模式| C[调用 md2wechat.cn API]
C --> D[获取 HTML]
B -->|AI 模式| E[生成 AI request]
E --> F[由 Claude 等继续生成 HTML]
D --> G[预览效果]
F --> G
G --> H{满意吗}
H -->|不满意| B
H -->|满意| I[上传图片]
I --> J[发送到微信草稿箱]
J --> K[完成]
classDef nodeA fill:#e3f2fd,stroke:#2196f3,color:#0d47a1
classDef nodeE fill:#fff3e0,stroke:#ff9800,color:#e65100
classDef nodeJ fill:#e8f5e9,stroke:#4caf50,color:#1b5e20
classDef nodeK fill:#c8e6c9,stroke:#4caf50,color:#1b5e20
class A nodeA
class E nodeE
class J nodeJ
class K nodeK五大核心功能
| 功能 | 命令 | 说明 | 适合谁 |
|------|------|------|--------|
| Markdown 转换 | convert | 将 Markdown 转换为微信格式 HTML | 所有用户 |
| 风格写作 | write | 用创作者风格辅助写作,自动生成文章和封面提示词 | 写作小白、内容创作者 |
| AI 去痕 | humanize | 去除 AI 生成痕迹,让文章听起来更自然、像人写的 | AI 写作用户 |
| 小绿书 | create_image_post | 创建图片消息(小绿书),最多 20 张图片 | 图片内容创作者 |
| 草稿推送 | convert --draft | 一键发送到微信草稿箱 | 需要频繁发布的用户 |
write 与 convert 的区别:
| 对比项 | write 命令 | convert 命令 |
|--------|-------------|---------------|
| 输入 | 一个想法/观点/片段 | 完整的 Markdown 文件 |
| 输出 | 结构化提示词(AI 处理后生成文章) | 微信格式 HTML |
| 用途 | 从零开始创作 | 格式转换已有内容 |
| 封面 | 自动生成封面提示词 | 需要手动指定封面图 |
简单理解:
write= 帮你写文章(从想法到完整文章)convert= 帮你排版(从 Markdown 到微信格式)
两种转换模式
| 模式 | 适合谁 | 特点 | 样式 | |------|--------|------|------| | API 模式 | 追求稳定、快速 | 调用 md2wechat.cn API,秒级响应 | 简洁专业 | | AI 模式 | 追求精美排版 | 生成 AI request / prompt,样式更丰富 | 秋日暖光 / 春日清新 / 深海静谧 |
完整工作流程
flowchart LR
A1[Markdown 写作] --> A2[插入图片]
A2 --> B1{选择模式}
B1 -->|API| B2[md2wechat.cn]
B1 -->|AI| B3[生成 AI request]
B2 --> B4[HTML 生成]
B3 --> B4[由 Claude 等继续生成 HTML]
B4 --> C1[预览效果]
C1 --> C2{满意吗}
C2 -->|调整| B1
C2 -->|OK| C3[上传图片]
C3 --> C4[发送草稿]
C4 --> C5[完成]
classDef write fill:#e3f2fd,stroke:#2196f3,color:#0d47a1
classDef ai fill:#fff3e0,stroke:#ff9800,color:#e65100
classDef done fill:#e8f5e9,stroke:#4caf50,color:#1b5e20
classDef success fill:#c8e6c9,stroke:#4caf50,color:#1b5e20
class A1,A2 write
class B3 ai
class C4,C5 done使用方法
基础命令
# 先检查最终标题/摘要/发布风险
md2wechat inspect article.md
# 生成本地预览 HTML(输出文件路径)
md2wechat preview article.md
# 预览转换效果(不发送)
md2wechat convert article.md --preview
# 转换并保存为 HTML 文件
md2wechat convert article.md -o output.html
# 使用 AI 模式生成精美排版
md2wechat convert article.md --mode ai --theme autumn-warm --preview
# 显式覆盖标题、作者、摘要
md2wechat convert article.md --title "新标题" --author "作者名" --digest "摘要"文章元数据
convert 的文章元数据优先级如下:
- 标题:
--title->frontmatter.title-> 正文首个 Markdown 标题 ->未命名文章 - 作者:
--author->frontmatter.author - 摘要:
--digest->frontmatter.digest->frontmatter.summary->frontmatter.description
长度限制:
- 标题最多 32 个字符
- 作者最多 16 个字符
- 摘要最多 128 个字符
如果创建草稿时摘要仍为空,草稿层会从正文 HTML 生成一个 120 字符兜底摘要。convert 不会自动移除正文里的一级标题,所以同一个 H1 可能既作为草稿标题来源,也继续出现在文章正文里。
确认层命令
在真正执行 convert / --draft 之前,推荐先走确认层:
# 看系统最终会如何解释这篇文章
md2wechat inspect article.md
# 生成本地预览 HTML 文件
md2wechat preview article.md说明:
inspect会输出最终标题、作者、摘要来源,以及upload/draftreadiness 和风险检查。inspect还会显式暴露一些常见误解,例如TITLE_BODY_MISMATCH、DIGEST_METADATA_ONLY、IMAGE_REPLACEMENT_REQUIRES_UPLOAD_OR_DRAFT。preview第一版会生成一个本地 HTML 文件,不会启动重工作台,也不会触发上传或草稿副作用。preview --mode ai不会伪造最终视觉稿;它会明确标注当前只是 AI request / prompt,页面只作为确认层预览。--title/--author/--digest控制的是微信草稿 metadata;它们不保证直接改变正文里可见的 H1、作者行或摘要段落。- Markdown 图片只有在
--upload或--draft流程中才会被上传并替换为已发布 URL;纯convert --preview只预览正文输出。 --json命令约定 stdout 只输出 JSON,适合 Agent 和脚本直接消费。
Agent 可发现命令
如果你是 Agent、自动化脚本,或者想先确认当前实例支持哪些能力,先执行这些命令:
# 总览当前 CLI 能力、默认模式、可用资源
md2wechat capabilities --json
# 看文章最终 metadata 与 readiness
md2wechat inspect article.md --json
# 查看图片 provider
md2wechat providers list --json
# 查看可用主题
md2wechat themes list --json
# 查看内置 Prompt Catalog
md2wechat prompts list --json
md2wechat prompts list --kind image --json
md2wechat prompts list --kind image --archetype cover --json需要查看具体资源时,可继续用:
md2wechat providers show openrouter --json
md2wechat providers show volcengine --json
md2wechat themes show autumn-warm --json
md2wechat prompts show cover-default --kind image --json
md2wechat prompts show cover-hero --kind image --archetype cover --tag hero --json
md2wechat prompts show infographic-victorian-engraving-banner --kind image --archetype infographic --tag victorian --jsonPrompt 模板也可以直接渲染:
md2wechat prompts render cover-default \
--kind image \
--var article_title='从 0 到 1 做好公众号封面' \
--var article_summary='一份关于封面图策略的实战清单' \
--json详细说明见 docs/DISCOVERY.md。
图片 prompt 的底层统一归类为 kind=image。cover 和 infographic 是主要用途分组,不是两套独立系统。判断某个 preset 能否兼作封面或信息图时,优先看 prompts show --json 返回的 primary_use_case、compatible_use_cases、recommended_aspect_ratios 和 default_aspect_ratio。
风格写作
# 查看所有可用写作风格
md2wechat write --list
# 用 Dan Koe 风格写文章(交互模式)
md2wechat write
# 用指定风格写文章,从观点生成
md2wechat write --style dan-koe
# 润色现有文章
md2wechat write --style dan-koe --input-type fragment article.md
# 生成匹配的封面提示词
md2wechat write --style dan-koe --cover-only
# 同时生成文章和封面
md2wechat write --style dan-koe --cover写作风格说明:
| 风格 | 特点 | 适合内容 | |------|------|----------| | Dan Koe | 深刻但不晦涩,犀利但不刻薄,有哲学深度但接地气 | 个人成长、观点文章、评论 |
如何添加自定义风格:
在 writers/ 目录下创建 YAML 文件即可,格式参考 writers/dan-koe.yaml。
Prompt Catalog
除了 themes/ 和 writers/,项目现在还提供内置 Prompt Catalog,用于承载:
humanize的强度模板write的润色模板- 后续扩展的图片 archetype,例如封面图、信息图、配图
当前内置 prompt kind:
humanizerrefineimage
Prompt 覆盖顺序:
MD2WECHAT_PROMPTS_DIR./prompts~/.config/md2wechat/prompts- 内置 prompt 资产
这意味着纯二进制安装也能用默认 prompt,而用户和平台仍然可以覆盖。
风格写作工作原理
┌─────────────────────────────────────────────────────────────────────┐
│ 风格写作 (write 命令) │
│ │
│ 你只需要提供一个想法 → AI 自动生成符合特定创作者风格的文章 │
│ │
└─────────────────────────────────────────────────────────────────────┘核心概念:
| 概念 | 说明 | 示例 | |------|------|------| | 写作风格 | 特定创作者的写作 DNA,包括语气、结构、用词习惯 | Dan Koe:深刻犀利、接地气 | | 输入类型 | 你提供的内容类型 | 观点、片段、大纲、标题 | | AI 模式 | 返回结构化提示词,由 Claude 等大模型生成内容 | 默认模式 | | 封面提示词 | 根据文章内容自动生成的配图提示 | 匹配写作风格 |
完整工作流程:
flowchart LR
A[你提供想法] --> B{选择写作风格}
B --> C[构建结构化提示词]
C --> D{AI 处理}
D --> E[生成完整文章]
E --> F{需要封面?}
F -->|是| G[生成封面提示词]
F -->|否| H[输出文章]
G --> I[用 AI 生成封面图]
I --> J[上传到微信素材库]
H --> K[转换为微信格式]
J --> K
K --> L[发送到草稿箱]
classDef idea fill:#e3f2fd,stroke:#2196f3,color:#0d47a1
classDef creator fill:#fff3e0,stroke:#ff9800,color:#e65100
classDef ai fill:#f3e5f5,stroke:#9c27b0,color:#4a148c
classDef output fill:#e8f5e9,stroke:#4caf50,color:#1b5e20
class A idea
class B,C creator
class D,E,G,I ai
class H,J,K,L output输入类型说明:
| 输入类型 | 说明 | 示例 |
|----------|------|------|
| idea | 一个观点或想法 | "我觉得自律是个伪命题" |
| fragment | 内容片段,需要润色扩展 | 现有的草稿或未完成的文章 |
| outline | 文章大纲 | 有结构,需要填充内容 |
| title | 仅标题,围绕标题写作 | "自律是个谎言" |
输出说明:
{
"success": true,
"code": "WRITE_AI_REQUEST_READY",
"schema_version": "v1",
"status": "action_required",
"retryable": false,
"data": {
"mode": "ai",
"action": "ai_write_request",
"style": "Dan Koe",
"prompt": "结构化的写作提示词...",
"cover_prompt": "封面提示词..."
}
}重要说明:
write命令默认使用 AI 模式,返回的是结构化提示词,需要由 Claude 等 AI 大模型处理才能生成最终文章。在 Claude Code 中使用时,这个流程是自动的。
从想法到发布的完整流程:
flowchart TB
subgraph Phase1["阶段1:创作"]
A1[你的想法] --> A2[选择写作风格]
A2 --> A3[AI 生成文章]
A3 --> A4[生成封面提示词]
end
subgraph Phase2["🎨 阶段2:制作"]
B1[AI 生成封面图] --> B2[上传到微信素材库]
A4 --> B1
A3 --> B3[保存为 Markdown]
end
subgraph Phase3["📤 阶段3:发布"]
C1[转换为微信格式] --> C2[发送到草稿箱]
B2 --> C1
B3 --> C1
C2 --> C3[在微信编辑器中微调]
C3 --> C4[发布!]
end
classDef phase1 fill:#e3f2fd,stroke:#2196f3,color:#0d47a1
classDef phase2 fill:#fff3e0,stroke:#ff9800,color:#e65100
classDef phase3 fill:#e8f5e9,stroke:#4caf50,color:#1b5e20
class A1,A2,A3,A4 phase1
class B1,B2,B3 phase2
class C1,C2,C3,C4 phase3一条命令完成全流程(在 Claude Code 中):
"用 Dan Koe 风格写一篇关于 AI 时代程序员怎么搞钱的文章,生成封面,并发送到微信草稿箱"Claude 会自动:
- 调用
write命令生成文章和封面提示词 - 用 AI 生成封面图并上传
- 转换为微信格式
- 发送到草稿箱
AI 写作去痕
致谢:AI 写作去痕功能基于 Humanizer-zh 项目,感谢作者 臧师傅 的分享。
什么是 AI 去痕?
AI 生成的文章往往有明显的"AI 味"——公式化的表达、重复的结构、浮夸的词汇。AI 去痕功能可以识别并去除这些痕迹,让文章听起来更像真人写的。
能检测哪些 AI 痕迹?
| 类别 | 检测模式 | 示例 |
|------|----------|------|
| 内容模式 | 过度强调意义、宣传语言、模糊归因 | "标志着"、"凸显了"、"行业报告显示" |
| 语言模式 | AI 词汇、否定排比、三段式 | "此外"、"深入探讨"、"不仅…而且…" |
| 风格模式 | 破折号过度、粗体滥用、表情符号 | 过度使用 ——、大量 **粗体** |
| 填充词 | 填充短语、过度限定、通用结论 | "为了实现这一目标"、"未来一片光明" |
| 协作痕迹 | 对话式填充、知识截止免责声明 | "希望这对您有帮助"、"截至 2024 年" |
三种处理强度:
| 强度 | 命令 | 适合场景 |
|------|------|----------|
| gentle | --intensity gentle | 文章已经比较自然,只处理明显问题 |
| medium | 默认 | 大多数场景,平衡处理 |
| aggressive | --intensity aggressive | AI 味很重的文章,深度改写 |
使用方法:
# 独立使用:去除文章的 AI 痕迹
md2wechat humanize article.md
# 指定强度
md2wechat humanize article.md --intensity aggressive
# 显示修改对比和质量评分
md2wechat humanize article.md --show-changes
# 输出到文件
md2wechat humanize article.md -o output.md与写作风格组合使用:
# 写作 + 去痕:生成文章后自动去除 AI 痕迹
md2wechat write --style dan-koe --humanize
# 指定去痕强度
md2wechat write --style dan-koe --humanize --humanize-intensity aggressive风格优先原则:当与写作风格组合时,会保留风格的核心特征(如 Dan Koe 的破折号),只去除无意的 AI 痕迹。
AI 去痕工作流程:
flowchart LR
A[AI 生成的文章] --> B[识别 AI 痕迹模式]
B --> C{检测到问题}
C --> D[过度强调意义]
C --> E[AI 词汇]
C --> F[三段式结构]
C --> G[填充短语]
C --> H[协作痕迹]
D --> I[重写为自然表达]
E --> I
F --> J[打破公式结构]
G --> I
H --> K[删除客套话]
I --> L[注入真实观点]
J --> L
K --> L
L --> M[变化句子节奏]
M --> N[人性化后的文章]
N --> O{需要评分?}
O -->|是| P[5维度质量评分]
O -->|否| N
P --> Q[输出结果]
classDef ai fill:#ffebee,stroke:#f44336,color:#c62828
classDef problem fill:#fff3e0,stroke:#ff9800,color:#e65100
classDef fix fill:#e3f2fd,stroke:#2196f3,color:#0d47a1
classDef result fill:#e8f5e9,stroke:#4caf50,color:#1b5e20
class A ai
class B,C,D,E,F,G,H problem
class I,J,K,L,M fix
class N,P,Q result质量评分系统:
去除 AI 痕迹后,会给出 5 维度评分(总分 50):
| 维度 | 说明 | 评分标准 | |------|------|----------| | 直接性 | 是否直截了当 | 10 分:直击要点;1 分:充满铺垫 | | 节奏 | 句子长度是否变化 | 10 分:长短交错;1 分:机械重复 | | 信任度 | 是否尊重读者 | 10 分:简洁明了;1 分:过度解释 | | 真实性 | 听起来像真人吗 | 10 分:自然流畅;1 分:机械生硬 | | 精炼度 | 有无冗余内容 | 10 分:无废话;1 分:大量填充 |
评级标准:
- 45-50 分:优秀,已去除 AI 痕迹
- 35-44 分:良好,仍有改进空间
- 低于 35 分:需要重新修订
去痕效果对比:
| 原文(AI 味) | 去痕后 | |--------------|--------| | 在当今快速发展的科技时代,人工智能技术正以前所未有的速度改变着我们的生活方式 | 这几年,AI 变化太快了 | | 人工智能的重要性不言而喻。它不仅标志着技术进步的新里程碑 | AI 挺重要的,但不是那种玄乎的重要 | | 此外,AI 技术还在改善我们的日常生活质量 | 顺手提一句,AI 确实让生活方便了不少 | | 尽管存在挑战,但人工智能的未来依然光明 | 未来会怎样不好说,有好有坏吧 | | 希望这对您有帮助 | —— |
自然语言使用(在 Claude Code 中):
"去除这篇文章的 AI 痕迹"
"让这篇文章听起来更像人写的"
"用温和强度处理这篇文章"
"用 Dan Koe 风格写一篇文章,然后去除 AI 痕迹"完整发布流程
# 一步到位:转换 + 上传图片 + 发送草稿
md2wechat convert article.md --draft --cover cover.jpg
md2wechat convert article.md --draft --cover-media-id PERMANENT_MEDIA_ID
# 流程说明:
# 1. 将 Markdown 转换为微信格式 HTML
# 2. 如果传了 --cover,则上传封面图片到微信素材库
# 3. 如果传了 --cover-media-id,则直接复用已有封面素材
# 4. 创建草稿并推送到微信后台AI 模式主题选择
| 主题名 | 命令 | 风格 | 适合内容 |
|--------|------|------|----------|
| 秋日暖光 | --theme autumn-warm | 温暖橙色调 | 情感故事、生活随笔 |
| 春日清新 | --theme spring-fresh | 清新绿色调 | 旅行日记、自然主题 |
| 深海静谧 | --theme ocean-calm | 专业蓝色调 | 技术文章、商业分析 |
API 模式主题选择
精确主题清单以运行时 discovery 输出为准:
md2wechat themes list --json下面内容主要用于帮助理解主题分组和风格差异。
主题预览
完整主题预览: https://md2wechat.app/theme-gallery
主题分类
基础主题(6 个) - v1.0 内置
| 主题 | 风格 | 适合 |
|------|------|------|
| default | 微信经典,温暖舒适 | 通用内容 |
| bytedance | 科技现代,简洁利落 | 科技资讯 |
| apple | 视觉渐变,精致优雅 | 产品评测 |
| sports | 活力动感,充满能量 | 体育健康 |
| chinese | 古典雅致,书卷气息 | 文化文章 |
| cyber | 未来科技,霓虹光影 | 前沿科技 |
Minimal 系列(8 个) - 干净克制,纯色文字无装饰
| 颜色 | 主题 | 命令 |
|------|------|------|
| 金色 | minimal-gold | --theme minimal-gold |
| 绿色 | minimal-green | --theme minimal-green |
| 蓝色 | minimal-blue | --theme minimal-blue |
| 橙色 | minimal-orange | --theme minimal-orange |
| 红色 | minimal-red | --theme minimal-red |
| 藏青 | minimal-navy | --theme minimal-navy |
| 灰色 | minimal-gray | --theme minimal-gray |
| 天蓝 | minimal-sky | --theme minimal-sky |
Focus 系列(8 个) - 居中对称,标题上下双横线
| 颜色 | 主题 | 命令 |
|------|------|------|
| 金色 | focus-gold | --theme focus-gold |
| 绿色 | focus-green | --theme focus-green |
| 蓝色 | focus-blue | --theme focus-blue |
| 橙色 | focus-orange | --theme focus-orange |
| 红色 | focus-red | --theme focus-red |
| 藏青 | focus-navy | --theme focus-navy |
| 灰色 | focus-gray | --theme focus-gray |
| 天蓝 | focus-sky | --theme focus-sky |
Elegant 系列(8 个) - 层次丰富,左边框递减 + 渐变背景
| 颜色 | 主题 | 命令 |
|------|------|------|
| 金色 | elegant-gold | --theme elegant-gold |
| 绿色 | elegant-green | --theme elegant-green |
| 蓝色 | elegant-blue | --theme elegant-blue |
| 橙色 | elegant-orange | --theme elegant-orange |
| 红色 | elegant-red | --theme elegant-red |
| 藏青 | elegant-navy | --theme elegant-navy |
| 灰色 | elegant-gray | --theme elegant-gray |
| 天蓝 | elegant-sky | --theme elegant-sky |
Bold 系列(8 个) - 视觉冲击,标题满底色 + 圆角投影
| 颜色 | 主题 | 命令 |
|------|------|------|
| 金色 | bold-gold | --theme bold-gold |
| 绿色 | bold-green | --theme bold-green |
| 蓝色 | bold-blue | --theme bold-blue |
| 橙色 | bold-orange | --theme bold-orange |
| 红色 | bold-red | --theme bold-red |
| 藏青 | bold-navy | --theme bold-navy |
| 灰色 | bold-gray | --theme bold-gray |
| 天蓝 | bold-sky | --theme bold-sky |
主题命名规则
<系列>-<颜色>
系列:
minimal - 干净克制
focus - 居中对称
elegant - 层次丰富
bold - 视觉冲击
颜色: gold, green, blue, orange, red, navy, gray, sky使用示例
# 使用 Elegant 金色主题
md2wechat convert article.md --theme elegant-gold --preview
# 使用 Minimal 蓝色主题
md2wechat convert article.md --theme minimal-blue --draft --cover cover.jpg
# 使用 Bold 红色主题(视觉冲击强)
md2wechat convert article.md --theme bold-red提示: 某些 API 主题能力依赖当前 API 域名与服务版本,先看
md2wechat themes list --json的实际输出。
背景类型选择
除了主题,你还可以自定义背景样式:
| 背景类型 | 命令 | 效果 | 适合场景 |
|----------|------|------|----------|
| default | --background-type default | 默认背景(纯色或渐变) | 通用内容 |
| grid | --background-type grid | 网格纹理背景 | 技术文档、笔记类 |
| none | --background-type none | 无背景(透明) | 嵌入式内容 |
使用示例:
# 使用网格背景
md2wechat convert article.md --theme elegant-gold --background-type grid
# 使用无背景(适合复制到其他编辑器)
md2wechat convert article.md --theme minimal-blue --background-type none
# 组合使用
md2wechat convert article.md --theme focus-green --background-type grid --draft --cover cover.jpg默认值是 none。只有在需要显式背景时才传 --background-type default 或 --background-type grid。
配置文件设置:
# ~/.config/md2wechat/config.yaml
api:
background_type: none # default/grid/none图片处理
# 上传单张图片到微信素材库
md2wechat upload_image photo.jpg
# 下载网络图片并上传
md2wechat download_and_upload https://example.com/image.jpg
# AI 生成图片并上传(需要配置 IMAGE_API_KEY)
md2wechat generate_image "A cute cat sitting on a windowsill"
# 用内置封面 preset 生成封面图
md2wechat generate_cover --article article.md
# 用内置信息图 preset 生成信息图
md2wechat generate_infographic --article article.md --preset infographic-comparison
# 生成暗黑票券风中文信息图(推荐 21:9)
md2wechat generate_infographic --article article.md --preset infographic-dark-ticket-cn --aspect 21:9
# 生成手绘 sketchnote 信息图
md2wechat generate_infographic --article article.md --preset infographic-handdrawn-sketchnote
# 生成苹果发布会风格信息图(默认 3:4,也可兼作封面)
md2wechat generate_infographic --article article.md --preset infographic-apple-keynote-premium
# 生成维多利亚黑白版画横幅信息图(也可兼作封面,推荐 21:9)
md2wechat generate_infographic --article article.md --preset infographic-victorian-engraving-banner --aspect 21:9
# 生成 16:9 比例的封面图(推荐,适配公众号封面)
md2wechat generate_image --preset cover-hero --article article.md --size 2560x1440
# 单次覆盖本次调用使用的图片模型
md2wechat generate_infographic --article article.md --preset infographic-comparison --model gemini-3-pro-image-preview公众号封面图建议:使用 16:9 横向比例(2560x1440)作为文章封面,在微信 feed 流和文章列表中显示效果更好。方形图片(2048x2048)在预览时会被裁剪。
AI 图片生成服务配置
支持多种 AI 图片生成服务:
| 服务 | 配置值 | 说明 | 获取方式 |
|------|--------|------|----------|
| ModelScope | modelscope 或 ms | 阿里 ModelScope,免费额度 | modelscope.cn |
| TuZi | tuzi | 国产 API,稳定快速 | tu-zi.com |
| OpenAI | openai | 官方 OpenAI | platform.openai.com |
| OpenRouter | openrouter 或 or | 多模型聚合接口,支持 Gemini / Flux 等 | openrouter.ai |
| Google Gemini | gemini 或 google | 官方 Gemini 图片生成 API | ai.google.dev |
| Volcengine Ark | volcengine 或 volc | 火山引擎 Ark,支持豆包 Seedream 5.0 系列 | 豆包大模型 |
配置方式(环境变量或配置文件):
# 使用 ModelScope(推荐,有免费额度)
export IMAGE_PROVIDER=modelscope
export IMAGE_API_KEY=ms-your-token-here
export IMAGE_API_BASE=https://api-inference.modelscope.cn
export IMAGE_MODEL=Tongyi-MAI/Z-Image-Turbo# config.yaml
api:
image_provider: modelscope
image_key: ms-your-token-here
image_base_url: https://api-inference.modelscope.cn
image_model: Tongyi-MAI/Z-Image-Turbo
image_size: 1024x1024
--model可覆盖当前命令的图片模型;未传时,优先使用IMAGE_MODEL,再回退到api.image_model,最后才是 provider 默认模型。md2wechat providers show <name> --json现在会同时暴露supported_models,适合 Agent 或脚本先确认模型目录再选--model。 如果 Volcengine 返回ModelNotOpen,去 豆包大模型 点击“控制台” -> “开通管理”,勾选Seedream模型完成开通。
ModelScope 特点:
- 有免费额度,适合测试
- 国内服务,访问稳定
- 默认模型
Tongyi-MAI/Z-Image-Turbo生成速度快 - 使用异步 API(task_id + 轮询),约 10-30 秒完成
Markdown 中生成图片
在 Markdown 中使用特殊语法生成图片:
语法格式: 
- 支持中文和英文提示词
- 生成的图片会自动上传到微信素材库
- 需要配置图片生成服务(详见 图片服务配置文档)
在 Claude Code 中使用自然语言:
"帮我在文章开头生成一张产品概念图"
"在第三段后添加一张对比图"
"生成一张可爱的猫"(独立生成,不关联文章)AI 模式详解
什么是 AI 模式?
AI 模式当前会生成用于外部大模型继续处理的排版请求,而不是像 API 模式那样直接在本地返回最终 HTML。
┌─────────────────────────────────────────────────────────────┐
│ AI 模式工作流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 你用 Markdown 写文章 │
│ ↓ │
│ 2. md2wechat 提取文章结构 │
│ ↓ │
│ 3. 构建专业的排版提示词 (Prompt) │
│ ↓ │
│ 4. 输出 AI request / Prompt │
│ ↓ │
│ 5. 在 Claude Code 等环境中继续生成 HTML │
│ │
└─────────────────────────────────────────────────────────────┘AI 模式的优势
| 对比项 | API 模式 | AI 模式 | |--------|----------|----------| | 响应速度 | 秒级 | 需要额外 AI 步骤 | | 排版质量 | 👍 标准规范 | 🌟 精美多样 | | 样式选择 | 2-3 种 | 更灵活 | | 成本 | 低 | 取决于外部 AI | | 适合场景 | 日常文章 | 重要文章、品牌内容 |
在 Claude Code 中使用 AI 模式
如果你使用 Claude Code,AI 模式生成的 request / prompt 可以继续由 Claude 自动接力处理:
# 在 Claude Code 中直接运行
md2wechat convert article.md --mode ai --theme autumn-warm配置说明
配置文件位置
~/.config/md2wechat/config.yaml # 全局配置(推荐)生成示例配置:
md2wechat config init查看当前实际生效配置:
md2wechat config show --format json配置项说明
# 微信公众号配置(必需)
wechat:
appid: "你的AppID"
secret: "你的Secret"
# API 配置
api:
md2wechat_key: "md2wechat.cn 的 API Key" # API 模式需要
md2wechat_base_url: "https://www.md2wechat.cn" # 可改成 https://md2wechat.app
convert_mode: "api" # 配置展示/兼容字段;不传 --mode 时 CLI 仍默认 api
default_theme: "default" # 默认主题
http_timeout: 30 # 超时时间(秒)
# 图片处理配置
image:
compress: true # 自动压缩大图
max_width: 1920 # 最大宽度
max_size_mb: 5 # 最大文件大小(MB)如果你不知道 API 域名在哪里改,就改这里:
- 配置文件:
api.md2wechat_base_url - 环境变量:
MD2WECHAT_BASE_URL
默认主题和默认写作风格已经内置在二进制里。 如果你要覆盖它们,优先级从高到低是:
MD2WECHAT_THEMES_DIR/MD2WECHAT_WRITERS_DIR- 当前项目目录下的
themes//writers/ ~/.config/md2wechat/themes//~/.config/md2wechat/writers/- 二进制内置默认资产
更完整的保姆级说明见:
需要明确一点:
md2wechat convert article.md在未显式传--mode时,始终默认走api- 只有显式传
--mode ai才会走 AI 模式
📁 项目结构
md2wechat-skill/
├── cmd/ # 命令行工具
│ └── md2wechat/ # 主程序
├── internal/ # 核心功能模块
│ ├── converter/ # 转换器(API/AI)
│ ├── draft/ # 草稿服务
│ ├── image/ # 图片处理
│ ├── wechat/ # 微信 API 封装
│ ├── writer/ # 写作助手
│ ├── humanizer/ # AI 去痕
│ └── config/ # 配置管理
├── writers/ # 写作风格配置
│ ├── dan-koe.yaml # Dan Koe 风格
│ └── README.md # 自定义风格指南
├── docs/ # 详细文档
│ ├── USAGE.md # 使用教程
│ ├── FAQ.md # 常见问题
│ └── TROUBLESHOOTING.md # 故障排查
├── examples/ # 示例文章
├── scripts/ # 安装脚本
└── bin/ # 编译好的二进制文件高级安装
方式一:Homebrew(macOS 优先推荐)
如果你在 macOS 上,并且已经装了 Homebrew,优先执行:
brew install geekjourneyx/tap/md2wechat升级:
brew upgrade geekjourneyx/tap/md2wechat方式二:一键安装脚本(其他环境推荐)
Mac/Linux:
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bashWindows PowerShell:
$env:MD2WECHAT_RELEASE_BASE_URL = "https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7"
iex ((New-Object System.Net.WebClient).DownloadString("$env:MD2WECHAT_RELEASE_BASE_URL/install.ps1"))脚本会下载 release 资产并验证
checksums.txt,这是当前推荐路径。
方式二:手动下载 release 资产
如果你需要固定版本或离线安装,请按 安装指南 的 release + checksum 步骤操作。
方式三:从源码编译
git clone https://github.com/geekjourneyx/md2wechat-skill.git
cd md2wechat-skill
make buildCoding Agent 集成
md2wechat 提供了面向 Claude Code / Codex / OpenCode 的 skill 和仓库安装方式,让你在 Coding Agent 中直接使用自然语言完成排版、图片生成和草稿推送。
安装方式
方式一:npx skills add(推荐,通用)
适合 Claude Code / Codex / OpenCode 等支持 skills 安装协议的环境:
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat安装后,直接在 Agent 中调用 md2wechat skill 即可。npx skills add 只安装 skill,不会替你自动安装 CLI runtime。
当前 coding-agent skill 的 runtime 逻辑是:
- 直接依赖
PATH里已安装好的md2wechat - skill 本身不再承担 runtime 查找、缓存 bootstrap 或执行时下载
- 如果
md2wechat不在PATH里,先安装 CLI,再继续使用 skill
skill 不再在正常执行路径中自动下载并执行远程二进制。
推荐直接发给 Coding Agent 的对话脚本:
请先安装 md2wechat CLI,再安装 md2wechat skill,并验证版本和能力发现都正常。
执行:
1. 如果我是 mac 用户,先运行:brew install geekjourneyx/tap/md2wechat
2. 如果我已经有稳定可用的 Go 环境,也可以改成:go install github.com/geekjourneyx/md2wechat-skill/cmd/[email protected]
3. 如果以上两种都不适合,再运行:curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bash
4. 运行:npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat
5. 如果我是通过 install.sh 安装的,再运行:export PATH="$HOME/.local/bin:$PATH"
6. 运行:md2wechat version --json
7. 运行:md2wechat capabilities --json
8. 运行:md2wechat config init
如果失败,请继续排查,不要只停止在报错信息。方式二:Claude Code / Codex 兼容路径
如果你所在的 Agent 环境仍然暴露 Plugin Marketplace 或旧插件入口,也建议继续沿用同一条主路径:
- 先把
md2wechatCLI 安装到PATH - 再通过
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat安装 skill
不要把旧的 plugin 安装入口当成新的主契约;当前仓库文档、skill 和 release 检查都以 CLI + npx skills add 为准。
方式三:Claudian / Obsidian
如果你在 Obsidian 里使用 Claudian,也可以直接复用同一套 skill。
Claudian 官方说明里已经明确:
- 它兼容 Claude Code skill 格式
- 会从
~/.claude/skills/或{vault}/.claude/skills/发现 skill - 支持 slash commands 和 skills
所以对 md2wechat 来说,最稳的路径是:
brew install geekjourneyx/tap/md2wechat
md2wechat version --json
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat如果你不用 Homebrew,再改用固定版本安装脚本:
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"
md2wechat version --json
npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat然后在 Claudian 里:
- 直接输入
/md2wechat - 或直接让 Agent 调用
md2wechatskill
如果 Obsidian 图形界面里仍然找不到 md2wechat,优先去 Claudian:
Settings -> Environment -> Custom variables- 添加:
PATH=/Users/你的用户名/.local/bin:...
保姆级说明见:
方式四:项目内使用
克隆项目后,Skill 自动可用:
git clone https://github.com/geekjourneyx/md2wechat-skill.git
cd md2wechat-skill
# 在 Claude Code 中直接使用方式五:全局安装
将 Skill 复制到全局目录:
# 复制到全局技能目录
cp -r skills/md2wechat ~/.claude/skills/方式六:创建符号链接
ln -s /path/to/md2wechat-skill/skills/md2wechat ~/.claude/skills/md2wechat项目结构
md2wechat-skill/
├── .claude-plugin/ # 插件清单
│ └── marketplace.json # Plugin Marketplace 配置
├── skills/ # coding-agent skill 目录(Claude Code / Codex / OpenCode)
│ └── md2wechat/
│ └── SKILL.md # 技能定义
├── platforms/ # 平台适配层
│ └── openclaw/
│ └── md2wechat/ # OpenClaw 专用 skill 包
│ └── SKILL.md
├── scripts/ # 安装脚本
│ ├── install.sh # CLI 安装脚本
│ └── install-openclaw.sh # OpenClaw 安装脚本
└── themes/ # AI 主题配置
├── autumn-warm.yaml
├── spring-fresh.yaml
└── ocean-calm.yamlObsidian / Claudian 支持
如果你在 Obsidian 里使用 Claudian,md2wechat 现在也能直接接进去。
Claudian 官方 README 说明它:
- 是一个把 Claude Code 嵌入 Obsidian 的插件
- 兼容 Claude Code skill 格式
- 会从
~/.claude/skills/或{vault}/.claude/skills/发现 skills - 支持 slash commands
这意味着:
- 先安装
md2wechatCLI - 再执行
npx skills add ... - 之后你可以在 Claudian 里直接用
/md2wechat或自然语言调用 skill
推荐直接发给 Claudian / Obsidian 用户的脚本:
请帮我在当前电脑上安装 md2wechat,并让 Claudian 可以在 Obsidian 里通过 /md2wechat 使用它。按这个顺序执行:
1. 如果我是 mac 用户,先运行:brew install geekjourneyx/tap/md2wechat
2. 如果我已经有稳定可用的 Go 环境,也可以改成:go install github.com/geekjourneyx/md2wechat-skill/cmd/[email protected]
3. 如果以上两种都不适合,再运行:curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bash
4. 如果我是通过 install.sh 安装的,再运行:export PATH="$HOME/.local/bin:$PATH"
5. 运行:md2wechat version --json
6. 运行:npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat
7. 如果我在 Obsidian 里仍然找不到 md2wechat,请提醒我去 Claudian 的 Settings -> Environment -> Custom variables,把 PATH 补上 ~/.local/bin
8. 最后告诉我如何在 Claudian 里输入 /md2wechat 或直接调用 md2wechat skill
如果某一步失败,请继续排查,不要只返回报错原文。适合谁:
- 已经在 Obsidian 里用 Claudian 写作
- 想在笔记库里直接把 Markdown 转公众号格式
- 想在 Obsidian 里直接生成封面图、信息图或推送草稿
单独文档:
OpenClaw 支持
md2wechat 现已支持 OpenClaw 平台!
OpenClaw 使用独立的 platforms/openclaw/md2wechat/ skill 包,和面向 Claude Code / Codex / OpenCode 的 skills/md2wechat/ 分开维护。OpenClaw 现在也直接依赖已安装到环境路径里的 md2wechat CLI,不再保留 skill 内部 runtime wrapper。
OpenClaw 用户也可以直接从技能页面进入:
什么是 OpenClaw?
OpenClaw 是一个开源的 AI Agent 平台,在你的设备上运行,通过你已经在用的聊天应用(WhatsApp、Telegram、Discord、Slack)来操控 AI 助手。
The AI that actually does things. — 你的助手,你的设备,你的规则。
安装方式
方式一:ClawHub 安装(仅安装 skill 壳)
# 安装 OpenClaw 专用 md2wechat skill 包
npx clawhub@latest install md2wechat当前 ClawHub 路径只会安装 skill 壳到 OpenClaw workspace,不保证自动安装 md2wechat CLI。完整、可验证的安装主线仍建议使用下一种固定版本 installer。
如果你更习惯先从网页进入,再决定是否安装,可以直接打开:
方式二:先安装 CLI(优先 Homebrew)
如果你已经装好了 OpenClaw skill 壳,或者只需要先把 CLI 装到环境里,可以先执行:
brew install geekjourneyx/tap/md2wechat这个方式只安装 md2wechat CLI,不会自动写入 ~/.openclaw/skills/md2wechat/。如果你还没装 skill 壳,请继续执行 npx clawhub@latest install md2wechat,或者直接用下一种一键脚本。
如果你已经有 Go 环境,也可以执行:
go install github.com/geekjourneyx/md2wechat-skill/cmd/[email protected]它同样只安装 CLI,不会自动写入 ~/.openclaw/skills/md2wechat/。
方式三:一键脚本安装
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install-openclaw.sh | bash脚本会按固定版本安装 OpenClaw skill 包与 md2wechat CLI,并校验 checksums.txt。这是当前最完整、最可验证的 OpenClaw 安装路径。
推荐直接发给 OpenClaw / 通用大模型的对话脚本:
请帮我安装 OpenClaw 版 md2wechat,并验证 skill 和 CLI 都可用。
执行:
1. curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install-openclaw.sh | bash
2. 先执行:export PATH="$HOME/.local/bin:$PATH"
3. md2wechat version --json
4. md2wechat config init
5. md2wechat config validate
6. md2wechat capabilities --json
如果失败,请继续排查 ~/.openclaw/skills/md2wechat/ 和 `command -v md2wechat`,不要只返回错误原文。方式四:手动安装
VERSION=2.0.7
# 按你的平台选择对应二进制,这里以 Linux amd64 为例
curl -LO https://github.com/geekjourneyx/md2wechat-skill/releases/download/v${VERSION}/md2wechat-openclaw-skill.tar.gz
curl -LO https://github.com/geekjourneyx/md2wechat-skill/releases/download/v${VERSION}/md2wechat-linux-amd64
curl -LO https://github.com/geekjourneyx/md2wechat-skill/releases/download/v${VERSION}/checksums.txt
sha256sum -c checksums.txt --ignore-missing
mkdir -p ~/.openclaw/skills
mkdir -p ~/.local/bin
mkdir -p /tmp/md2wechat-openclaw
tar -xzf md2wechat-openclaw-skill.tar.gz -C /tmp/md2wechat-openclaw
cp -r /tmp/md2wechat-openclaw/skills/md2wechat ~/.openclaw/skills/
install -m 0755 md2wechat-linux-amd64 ~/.local/bin/md2wechat
export PATH="$HOME/.local/bin:$PATH"手动安装时,请以同一版本 release 提供的 OpenClaw 资产为准,确保 skill 包与 md2wechat CLI 同版本安装。
配置
安装完成后直接初始化 md2wechat 配置:
md2wechat config init
md2wechat config validate默认配置文件:
~/.config/md2wechat/config.yamlClaude Code vs OpenClaw
| 方面 | Claude Code | OpenClaw |
|------|-------------|----------|
| 定位 | 终端 AI 编程助手 | 聊天应用 AI 助手 |
| 仓库内 skill 路径 | skills/md2wechat/ | platforms/openclaw/md2wechat/ |
| 技能目录 | ~/.claude/skills/ | ~/.openclaw/skills/ |
| 安装方式 | /plugin 命令 | clawhub CLI + brew/go install,或 OpenClaw installer |
| 配置方式 | 环境变量 / config.yaml | ~/.config/md2wechat/config.yaml |
| LLM 支持 | Claude | Claude、GPT、DeepSeek 等 |
详细文档:OpenClaw 安装指南
使用示例
示例 1:技术博主
# 写好技术文章
vim my-tech-post.md
# 使用简洁的 API 模式转换
md2wechat convert my-tech-post.md --preview
# 满意后发送草稿
md2wechat convert my-tech-post.md --draft --cover cover.jpg示例 2:产品经理发公告
# 生成 AI 排版请求,再交给 Claude Code 等环境继续处理
md2wechat convert announcement.md --mode ai --theme ocean-calm示例 3:生活方式博主
# 使用春日清新主题
md2wechat convert travel-diary.md --mode ai --theme spring-fresh --preview示例 4:写作小白用观点生成文章
# 交互模式:输入观点,AI 生成文章
md2wechat write
# 指定风格生成
md2wechat write --style dan-koe
# 生成封面提示词
md2wechat write --style dan-koe --cover-only❓ 常见问题
A: 不需要! 只要会用命令行(终端)就可以。如果是 Windows 用户,下载 .exe 文件后,在 CMD 或 PowerShell 中运行命令即可。
A: AI 模式使用 Claude 能力:
- 如果你在 Claude Code 中使用,直接调用内置 AI
- 如果你想自己接入,需要配置 OpenAI 兼容的 API
A: 支持常用语法:
- 标题(# ## ###)
- 列表(无序、有序)
- 粗体、斜体、行内代码
- 代码块(带语法高亮)
- 引用块
- 分割线
- 图片、链接
- 表格
A: 可以!草稿发送后,你可以登录微信公众平台,在草稿箱中继续编辑。
A:
Mac 用户:
- 点击屏幕左上角苹果图标 → 「关于本机」
- 看到
Apple M1/M2/M3/M4→ 下载 Apple Silicon (arm64) 版本 - 看到
Intel→ 下载 Intel (amd64) 版本
Linux 用户:
- 运行
uname -m命令 - 输出
x86_64→ 下载 amd64 版本 - 输出
aarch64→ 下载 arm64 版本
如果下载错了:
- 删除错误的文件,重新下载正确版本即可
- 也可以使用一键安装脚本,会自动检测系统架构
curl -fsSL https://github.com/geekjourneyx/md2wechat-skill/releases/download/v2.0.7/install.sh | bashA: 写作功能可以帮你用特定创作者风格生成文章:
# 查看所有可用风格
md2wechat write --list
# 交互式写作
md2wechat write
# 指定风格写作
md2wechat write --style dan-koe只需输入你的观点或想法,AI 会自动生成符合该风格的文章。
A: 完全可以!写作功能专为小白设计:
- 只需要输入观点:比如"我觉得自律是个伪命题"
- AI 自动扩展:会自动生成结构完整的文章
- 多种风格可选:内置 Dan Koe 等风格,也可以自定义
不需要你会写作技巧,只需要有想法就行。
A: 在 writers/ 目录下创建 YAML 文件:
# 参考内置风格
cat writers/dan-koe.yaml
# 创建自己的风格
vim writers/my-style.yaml详细格式参考 writers/README.md。
A: AI 去痕功能可以去除 AI 生成文章的"AI 味",让文章听起来更像真人写的:
# 基本用法
md2wechat humanize article.md
# 指定强度(gentle/medium/aggressive)
md2wechat humanize article.md --intensity aggressive
# 显示修改对比和质量评分
md2wechat humanize article.md --show-changes与写作风格组合使用:
# 写作 + 去痕
md2wechat write --style dan-koe --humanize致谢:AI 去痕功能基于 Humanizer-zh 项目。
A: 不会。AI 去痕只修改表达方式,不改变核心信息。
它会:
- 删除填充短语和过度强调
- 打破公式化结构
- 变化句子节奏
- 注入真实观点
但会保留原文的核心观点和信息。
A: 不会。当两者组合使用时,遵循风格优先原则:
- 保留写作风格的核心特征(如 Dan Koe 的破折号停顿)
- 只去除无意的 AI 痕迹
- 保持风格的一致性
# 风格优先:保留 Dan Koe 风格,去除 AI 痕迹
md2wechat write --style dan-koe --humanizeA: 这是微信 API 的内容大小限制错误。
微信草稿 API 限制:
- 字符数:< 20,000 字符(中文算 1 个字符)
- 大小:< 1 MB
解决方案:
- 缩短文章内容
- 减少不必要的格式(API 模式的 inline CSS 会增加内容体积)
- 拆分为多篇文章发布
- 使用更简洁的排版主题
注意: API 模式生成的 HTML 包含大量 inline CSS,会使内容体积膨胀约 5-10 倍。长文章建议:
- 使用更简洁的 Markdown 写作
- 删除部分图片或使用外部图片链接
- 手动在微信编辑器中复制粘贴(绕过 API 限制)
来源: 微信公众号 API 文档
A: ModelScope 使用异步 API 模式,通常需要 10-30 秒。
流程:
- 发起请求 → 获取 task_id
- 轮询任务状态(每 5 秒一次)
- 任务完成 → 返回图片 URL
超时设置:
- 默认最大轮询时间:120 秒
- 超时后会返回错误,建议:
- 简化提示词
- 重试一次
- 检查 ModelScope 服务状态
A: ModelScope 是推荐的图片生成服务,有免费额度。
配置步骤:
获取 API Key
- 访问 modelscope.cn
- 登录后创建 Access Token
- 格式类似:
ms-your-token-here
配置环境变量
export IMAGE_PROVIDER=modelscope export IMAGE_API_KEY=ms-your-token-here export IMAGE_API_BASE=https://api-inference.modelscope.cn export IMAGE_MODEL=Tongyi-MAI/Z-Image-Turbo或在配置文件中设置
# ~/.config/md2wechat/config.yaml api: image_provider: modelscope image_key: ms-your-token-here image_base_url: https://api-inference.modelscope.cn image_model: Tongyi-MAI/Z-Image-Turbo image_size: 1024x1024测试
md2wechat generate_image "A golden cat" md2wechat generate_cover --title "AI 文章封面测试" --summary "测试封面 preset"
A: 支持!可以通过管道或 heredoc 传递内容。
使用方式:
# 管道输入
echo "你的想法或内容" | md2wechat write --style dan-koe
# heredoc 输入(适合多行内容)
md2wechat write --style dan-koe --title "文章标题" <<EOF
第一段内容
第二段内容
更多观点...
EOF适用场景:
- 脚本自动化
- 从其他命令输出传递内容
- 在 CI/CD 流程中使用
更多文档
| 文档 | 说明 |
|------|------|
| 文档索引 | docs/ 目录导航 |
| 新手入门指南 | 强烈推荐! 详细的图文教程 |
| 完整使用说明 | 所有命令和选项 |
| 架构说明 | 当前代码边界与主线 |
| OpenClaw 安装指南 | OpenClaw 平台安装配置指南 |
| 图片服务配置 | AI 图片生成服务完整配置指南 |
| 写作功能指南 | 如何使用和自定义写作风格 |
| 写作功能问答 | 写作小白完整指南 |
| AI 去痕指南 | AI 写作去痕完整指南 |
| 常见问题 | 20+ 常见问题解答 |
| 故障排查 | 遇到问题看这里 |
贡献
欢迎提交 Issue 和 Pull Request!
如果你有好的想法或发现了 bug,请随时提 issue。
许可证
打赏 Buy Me A Coffee
如果该项目帮助了您,请作者喝杯咖啡吧。
作者
- 作者:geekjourneyx
- X(Twitter):https://x.com/seekjourney
- 公众号:极客杰尼
如需咨询,扫描公众号二维码联系,备注「API咨询」:
Star History
让公众号写作更简单
Made by geekjourneyx
