Skip to content

Repository files navigation

文章同步助手 (Wechatsync)

开源免费的跨平台文章同步工具 | Chrome 浏览器扩展 | 自媒体内容分发神器

一键同步微信公众号文章到知乎、头条、掘金、小红书、CSDN 等 29+ 平台,支持 WordPress 等自建博客,告别重复复制粘贴。

🔥 支持 Anthropic MCP 协议,可在 Claude Desktop / Claude Code 中通过 AI 一键发布文章

工作原理

文章同步助手不是爬虫,不模拟登录,不经过任何第三方服务器。

它是一个 Chrome 浏览器扩展,工作方式与浏览器本身一致:

  1. 使用你自己的登录态:你在浏览器里正常登录各平台账号,扩展直接使用浏览器中已有的 Cookie,无需额外授权,无需输入密码
  2. 调用平台官方接口:发布文章时,扩展调用的是各平台 Web 编辑器使用的同一套官方 API,与你手动在网页上发布完全等价
  3. 数据不离开你的设备:所有请求直接从你的浏览器发往各平台,没有中间服务器,没有数据上传,源代码完全开源可审计
  4. 草稿优先:默认将文章同步为草稿,发布前由你人工确认,不会自动发布
你的浏览器(已登录各平台)
    ↓  扩展读取 Cookie
    ↓  调用平台官方 Web API
各平台(知乎 / 掘金 / 头条 / ...)

功能特性

  • 一键批量发布: 微信公众号文章同步到知乎、掘金、头条、CSDN、简书、微博、小红书、抖音等 29+ 自媒体平台
  • 网页转 Markdown: 任意网页智能提取正文,自动过滤广告噪音,图片本地化,打包为 Markdown + 图片 ZIP 压缩包
  • 自建站支持: WordPress、Typecho、博客园 (MetaWeblog API)
  • 智能提取: 自动从网页提取文章标题、内容、封面图(基于 Safari 阅读模式)
  • 图片自动上传: 自动转存文章图片到目标平台,无需手动处理
  • 草稿模式: 同步后保存为草稿,方便二次编辑后发布
  • 同平台多账号: 在扩展内保存多套登录 Cookie,同一篇文章可同步到不同平台的多个账号
  • AI 集成: 支持 Anthropic MCP / Claude Code Skill / OpenClaw,多种方式接入 AI 工作流

同平台多账号

  1. 在目标平台网页登录第一个账号
  2. 打开扩展「设置 → 多账号登录态」,填写账号名称并保存当前登录态
  3. 在平台网页切换到其他账号,重复上述操作
  4. 同步文章时,可以像选择普通平台一样同时勾选多个账号

多账号 Cookie 仅保存在 chrome.storage.local。同步时扩展会备份当前会话,串行切换到目标账号,完成后在 finally 阶段恢复原会话。扩展不保存平台密码。由于切换期间同域网页也能观察到临时会话,建议同步时不要在目标平台网页同时进行编辑操作。

多 Chrome 用户资料 + 多客户端 Bridge(推荐用于 5 个以上账号)

这种方式不切换 Cookie:每个 Chrome 用户资料拥有独立的浏览器登录态,并各自运行一个扩展客户端;所有客户端同时连接同一个本地 Bridge。

  1. 在 Chrome 中创建多个本地用户资料(不要求登录多个 Google/Chrome 账号)
  2. 在每个用户资料中加载同一份扩展,并分别登录目标平台账号
  3. 打开扩展「设置 → 同步桥接」,为每个用户资料设置唯一名称,例如“知乎-账号A”
  4. 每个用户资料都启用同步桥接,并连接 ws://localhost:9527
  5. 在终端运行 wechatsync bridge 并保持运行,让所有用户资料稳定连接
  6. 另开终端运行 wechatsync clients 查看已连接用户资料
  7. 运行 wechatsync platforms --auth 获取 clientId::platformId 形式的账号 ID
# 精确发送到两个不同 Chrome 用户资料中的知乎账号
wechatsync sync article.md -p '<client-a>::zhihu,<client-b>::zhihu'

# 自动发送到所有已登录的知乎账号(仍然只保存为草稿)
wechatsync sync article.md -p zhihu --all-accounts

# 正式公开发布建议始终启用安全模式(会要求输入 PUBLISH 二次确认)
wechatsync sync article.md -p '<client-a>::zhihu' --publish --safe

Bridge 会使用每个扩展注册的独立本地 Token 路由请求,因此多用户资料不需要共享同一个 Token,也不会通过 Bridge 复制平台 Cookie。只有一个用户资料连接时,原来的 zhihujuejin 等普通平台 ID 仍可直接使用。

--publish 只允许用于明确声明 direct_publish 能力的平台。当前代码已接通知乎、掘金、CSDN、开源中国、WordPress、Typecho 和 MetaWeblog;其他平台仍只保存草稿。四个公开平台适配器都会先完整保存草稿,再最多调用一次最终发布流程;发布后只读校验标题和作者,未立即公开时返回 submitted 并转入只读复查。CMS 则把正式发布标志传给对应接口。CSDN 和开源中国已通过自动化回归,但仍需在实际登录账号上完成草稿和单账号正式发布验收。

掘金正式发布建议为 Markdown 提供分类 ID 和标签 ID,避免平台因分类或标签缺失拒绝最终提交:

---
title: 文章标题
summary: 不超过 100 字的摘要
category: "6809637771511070734"
tags: ["7467857238494020000"]
---

也可使用 --category <id> --tags <id1,id2> 覆盖 front matter。分类和标签参数为平台 ID,不是显示名称。

CSDN 正式发布至少需要一个标签;开源中国可选传入分类 ID。可在 Campaign 配置的 platforms.csdnplatforms.oschina 中分别设置。

安全正式发布

完整规则、限制和风险边界见 docs/safe-publish-mode.md

正式发布状态、审核状态和公开页面验证规则见 docs/publish-status-verification.md

正式发布具有账号和内容风险,推荐在 --publish 后同时使用 --safe。安全模式默认执行以下保护:

  • 发布前和每个账号实际执行前再次检查登录身份,并将首次确认的目标 ID 与平台账号用户名锁定
  • 同账号相同文章默认禁止重复发布;同一平台的多个账号默认禁止发布相同文章;不同平台之间允许正常分发
  • 每账号滚动 24 小时最多正式发布 2 篇,同账号两次发布至少间隔 30 分钟
  • 多账号严格串行执行,账号之间默认等待 30 分钟
  • 任一账号失败后默认立即熔断;可用 --continue-on-error 让后续目标继续执行,失败目标始终不自动重试
  • 平台最终发布失败时尽量保留并显示已经创建的草稿链接

首次操作先运行单账号安全预检。--dry-run 会连接 Bridge、确认账号身份并检查安全策略,但不会上传图片、创建草稿或正式发布:

node packages/cli/dist/index.js sync article.md \
  -p '<client-a>::zhihu' \
  --publish \
  --safe \
  --dry-run

同一篇文章选择多个账号时,默认预检不通过:

node packages/cli/dist/index.js sync article.md \
  -p '<client-a>::zhihu,<client-b>::zhihu' \
  --publish \
  --safe \
  --dry-run

只有在人工确认确实需要跨账号发布相同内容后,才显式解除该项保护。下面的命令会正式公开发布,非交互环境还必须传入 --yes

node packages/cli/dist/index.js sync article.md \
  -p '<client-a>::zhihu,<client-b>::zhihu' \
  --publish \
  --safe \
  --allow-cross-account-duplicate \
  --account-delay 30 \
  --yes

可调参数:

--daily-limit <count>       每账号滚动 24 小时发布上限,默认 2
--min-interval <minutes>    同账号最小发布间隔,默认 30 分钟
--account-delay <minutes>   多账号顺序发布间隔,默认 30 分钟
--continue-on-error         关闭级联熔断,单个目标失败后继续后续目标;不重试失败目标
--allow-republish           显式允许同账号重复发布相同文章
--state-dir <path>          安全状态目录,默认 .wechatsync

身份锁定和发布历史保存在 .wechatsync/publish-state.json,文件权限为 0600,不会保存 Cookie、Token 或平台密码。删除该文件会同时清除身份锁定和本地防重复历史,因此不建议把它作为日常“解锁”方式。安全模式只能降低误发、串号和过快发布的风险,不能保证平台不会限流或限制账号。

持久化发布队列

长时间定时或多账号任务建议使用 SQLite 持久化队列,而不是让一次 sync 命令在终端内等待。完整说明见 docs/publish-queue-worker.md。队列功能需要 Node.js 22.5 或更高版本。

# 安全的首次测试:只做预检,不实际发布
wechatsync enqueue article.md \
  -p '<client-a>::zhihu' \
  --publish --safe --dry-run --yes

# 执行下一个到期任务
wechatsync worker --once

# 创建正式定时任务
wechatsync schedule article.md \
  -p '<client-a>::zhihu' \
  --at '2026-08-04 10:00' \
  --publish --safe --yes

# 队列管理
wechatsync queue list
wechatsync queue show <job-id>
wechatsync queue pause <job-id>
wechatsync queue resume <job-id>
wechatsync queue cancel <job-id>

任务按目标拆分,默认零自动重试发布;源文件在入队后变化或 Worker 异常中断导致执行结果未知时,任务会进入 blocked,避免未经确认地重复发布。已提交/审核中的文章会进入持久化只读复查,复查可重试查询,但绝不重试发布。

一篇文章发布到所有平台和账号(Campaign)

Campaign 会发现所有已连接 Chrome 用户资料中的已登录账号,按平台用户 ID 去重,固定目标清单,并为每个目标创建持久化任务:

# 所有已登录平台和账号保存草稿
wechatsync campaign create article.md

# 只选择知乎和掘金,但包含这两个平台的所有已登录账号
wechatsync campaign create article.md -p zhihu,juejin

# 正式发布。默认只要存在不支持正式发布的平台就中止预检
wechatsync campaign create article.md --publish --safe --yes --config campaign.config.json

# 支持正式发布的平台公开发布,其余平台只保存草稿
wechatsync campaign create article.md --publish --safe --yes --unsupported draft

# 使用平台级分类、标签、摘要和封面配置
wechatsync campaign create article.md --config docs/campaign.config.example.json

wechatsync campaign list
wechatsync campaign show <campaign-id>
wechatsync campaign cancel <campaign-id>

“一次发布”表示一次创建全部目标任务,底层仍由安全队列受控串行执行,不会在同一秒向所有账号并发请求。正式发布能力当前以适配器的 direct_publish 声明为准;保存草稿不能算作公开发布成功。

完整设计和测试说明:

验证码、登录失效、身份不匹配、限流和审核拒绝会生成“待人工处理”记录。该记录明确携带 retryPublish: false,Worker 会阻止任务而不是自动重发。

安装方式

Chrome 浏览器扩展安装

推荐: Chrome 网上应用店 (自动更新)

手动安装: 下载 最新 Release 解压后加载到 Chrome 扩展

支持 Chrome / Edge / 360 / QQ 等 Chromium 内核浏览器

支持 29+ 主流平台

平台 ID 类型 状态
微信公众号 weixin 主流自媒体
知乎 zhihu 主流自媒体
微博 weibo 主流自媒体
小红书 xiaohongshu 主流自媒体
掘金 juejin 技术社区
CSDN csdn 技术社区
简书 jianshu 通用
头条号 toutiao 通用 ✅ 草稿模式
抖音图文 douyin 主流自媒体 ✅ 🆕
B站专栏 bilibili 通用
百家号 baijiahao 通用
语雀 yuque 技术社区
豆瓣 douban 通用
搜狐号 sohu 通用
雪球 xueqiu 财经
人人都是产品经理 woshipm 产品
大鱼号 dayu 通用
一点号 yidian 通用
51CTO 51cto 技术社区
慕课网 imooc 技术社区
开源中国 oschina 技术社区
SegmentFault segmentfault 技术社区
博客园 cnblogs 技术社区
搜狐焦点 sohufocus 房产
X (Twitter) x 海外
东方财富 eastmoney 财经
什么值得买 smzdm 通用
网易号 netease 通用
WordPress wordpress 建站/CMS
Typecho typecho 建站/CMS
Hexo zip-download 建站/CMS ✅ 通过 Markdown 下载
Hugo zip-download 建站/CMS ✅ 通过 Markdown 下载

CLI 命令行工具

最简单的使用方式,无需配置 MCP,安装即用:

npm install -g @wechatsync/cli

需要先安装 Chrome 扩展并在扩展设置中启用「同步桥接」。新版扩展会把各用户资料自己的本地 Token 注册给 Bridge;WECHATSYNC_TOKEN 仅作为旧版扩展兼容回退项:

# 仅连接旧版扩展时需要:export WECHATSYNC_TOKEN="你的token"

# 同步文章到多个平台
wechatsync sync article.md -p zhihu,juejin,csdn

# 查看平台登录状态
wechatsync platforms --auth

# 查看当前连接的 Chrome 用户资料
wechatsync clients

# 多用户资料时建议在单独终端持续运行 Bridge
wechatsync bridge

# 从浏览器当前页面提取文章
wechatsync extract -o article.md

Claude Code Skill 集成

安装后可在 Claude Code 中直接用自然语言操作:

/plugin marketplace add wechatsync
/plugin install wechatsync

然后直接说"把这篇文章同步到掘金和知乎"即可。

OpenClaw 集成

通过 ClawHub 技能市场一键安装:

clawhub install lljxx1/wechatsync

详细文档见 packages/cli/README.md

Claude Code / Claude Desktop 集成 (Anthropic MCP)

通过 Anthropic MCP 协议,可以在 Claude Code 或 Claude Desktop 中使用 AI 同步公众号文章到多个平台。

配置步骤

  1. 构建项目: pnpm build
  2. 在 Chrome 扩展设置中启用「MCP 连接」,并设置 Token
  3. ~/.claude/claude_desktop_config.json 中添加配置:
{
  "mcpServers": {
    "sync-assistant": {
      "command": "node",
      "args": ["/path/to/Wechatsync/packages/mcp-server/dist/index.js"],
      "env": {
        "MCP_TOKEN": "your-secret-token-here"
      }
    }
  }
}

重要: MCP_TOKEN 必须与 Chrome 扩展中设置的 Token 一致。

使用示例

"帮我把这篇文章同步到知乎和掘金"
"检查下哪些平台已登录"

可用工具

工具 说明
list_platforms 列出所有平台及登录状态
check_auth 检查指定平台登录状态
sync_article 同步文章到指定平台(草稿)
extract_article 从当前浏览器页面提取文章
upload_image_file 上传本地图片到平台

详细文档见 packages/mcp-server/README.md

网页发起同步

如果你是文章编辑器开发者,或有内容库需要同步多个渠道,可以使用 JS SDK:

// 拉起同步任务框
window.syncPost(article)

开发

项目结构

Wechatsync/
├── packages/
│   ├── extension/     # Chrome 扩展 (MV3)
│   ├── mcp-server/    # MCP Server (stdio/SSE)
│   ├── cli/           # 命令行工具
│   └── core/          # 核心逻辑 (共享)

本地开发

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建
pnpm build

然后在 Chrome 中加载 packages/extension/dist 目录。

更新日志

v2.0.9 (2026-03-24)

  • 🆕 文章识别和提取更准确,支持更多网页
  • 🆕 CLI/MCP 同步 HTML 文件时自动保留排版样式
  • 🆕 同步对话框增加使用提示
  • 🔧 修复部分网页悬浮按钮显示异常

v2.0.8 (2026-03-17)

  • 🆕 新增抖音图文
  • 🆕 统一同步对话框和悬浮按钮
  • 🔧 修复 CLI 同步格式异常
  • 🔧 改善 CLI/MCP 桥接重连稳定性

v2.0.7 (2026-03-10)

  • 🆕 新增什么值得买、网易号平台
  • 🆕 简书支持 Markdown 格式发布
  • 🔧 重新适配简书、一点号、搜狐号

v2.0.6 (2026-02-25)

  • 🆕 新增东方财富
  • 🆕 新增悬浮同步按钮

v2.0.5 (2025-02-05)

  • 🔧 代码块提取兼容性提升
  • 🆕 新增 Markdown 压缩包下载

完整日志见 更新日志页面

贡献代码

欢迎参与项目开发!

使用场景

  • 自媒体运营者: 公众号文章一键同步到知乎、头条、百家号等多平台,提升内容分发效率
  • 技术博主: 技术博客同步到掘金、CSDN、SegmentFault、开源中国等技术社区
  • 内容创作者: 告别重复复制粘贴,一次编写多处发布,多平台发文不再繁琐
  • AI 写作用户: 配合 Claude / GPT 等 AI 写作工具,AIGC 内容一键发布到多平台
  • 独立博主: WordPress、Typecho 博客文章同步到各大自媒体平台引流

常见问题

Q: 这是什么工具?

文章同步助手是一款开源免费的 Chrome 浏览器扩展,帮助自媒体作者、博主、内容创作者将文章一键同步到多个平台,避免重复复制粘贴,是自媒体运营必备的多平台发文工具。

Q: 支持同步微信公众号文章吗?

支持。可以直接从微信公众号编辑器提取文章,一键同步到知乎、头条、掘金等 29+ 平台。支持公众号文章同步到头条号、公众号同步到知乎、微信文章同步到掘金等各种场景。

Q: 支持 AI 写作工具吗?

支持 Anthropic MCP 协议,可配合 Claude Desktop、Claude Code 等 AI 工具使用,实现 AI 写作、AIGC 内容一键发布。也可以配合 ChatGPT、GPT-4 等工具生成的文章使用。

Q: 数据安全吗?会上传我的账号信息吗?

不会。所有操作在本地浏览器内完成,你的 Cookie、文章内容、账号信息不经过任何第三方服务器。代码完全开源,可自行审计:查看源码

Q: 和微小宝、新媒体管家、简媒、蚁小二有什么区别?

文章同步助手是开源免费的,代码完全公开透明,无需付费订阅。作为浏览器扩展运行,数据本地存储,账号信息不上传,支持 MCP 协议可与 AI 工具集成。

Q: 如何同步文章到多个平台?

  1. 安装 Chrome 浏览器扩展
  2. 登录各平台账号(知乎、掘金、头条等)
  3. 打开要同步的文章页面
  4. 点击扩展图标,选择目标平台,一键同步

Author

fun · 独立开发者 · GitHub · 主页

License

GPL-3.0

十账号安全调度与网络组

10 个左右的合规账号推荐使用“一个账号一个隔离 Chrome 用户资料 + 多客户端 Bridge + 稳定逻辑网络组”。网络组只是运维分组,不是轮换代理、指纹伪装或风控绕过手段;系统不会保存 IP、SOCKS/HTTP 代理地址或代理凭据。

Campaign 配置可在 safety 中设置 defaultNetworkGroupplatformIntervalMinutesnetworkGroupIntervalMinutesfreezeOnInterventionaccounts。未配置时使用 default-network。首次安全正式发布会固定账号身份和网络组;后续网络组不一致会在发布前阻止。同平台、同网络组任务按照计划时间串行,正式写入的 maxAttempts 始终为 1。

CAPTCHA、安全验证或审核拒绝只会冻结受影响的 clientId::platformId,不会级联冻结其他账号。人工处理平台验证后运行:

wechatsync safety status --state-dir .wechatsync
wechatsync safety unfreeze 'clientId::platformId' --state-dir .wechatsync

解冻不会自动重发;下一次正式发布仍应先运行 Dry-run。

About

Modified Wechatsync publishing toolkit

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages