开源免费的跨平台文章同步工具 | Chrome 浏览器扩展 | 自媒体内容分发神器
一键同步微信公众号文章到知乎、头条、掘金、小红书、CSDN 等 29+ 平台,支持 WordPress 等自建博客,告别重复复制粘贴。
🔥 支持 Anthropic MCP 协议,可在 Claude Desktop / Claude Code 中通过 AI 一键发布文章
文章同步助手不是爬虫,不模拟登录,不经过任何第三方服务器。
它是一个 Chrome 浏览器扩展,工作方式与浏览器本身一致:
- 使用你自己的登录态:你在浏览器里正常登录各平台账号,扩展直接使用浏览器中已有的 Cookie,无需额外授权,无需输入密码
- 调用平台官方接口:发布文章时,扩展调用的是各平台 Web 编辑器使用的同一套官方 API,与你手动在网页上发布完全等价
- 数据不离开你的设备:所有请求直接从你的浏览器发往各平台,没有中间服务器,没有数据上传,源代码完全开源可审计
- 草稿优先:默认将文章同步为草稿,发布前由你人工确认,不会自动发布
你的浏览器(已登录各平台)
↓ 扩展读取 Cookie
↓ 调用平台官方 Web API
各平台(知乎 / 掘金 / 头条 / ...)
- 一键批量发布: 微信公众号文章同步到知乎、掘金、头条、CSDN、简书、微博、小红书、抖音等 29+ 自媒体平台
- 网页转 Markdown: 任意网页智能提取正文,自动过滤广告噪音,图片本地化,打包为 Markdown + 图片 ZIP 压缩包
- 自建站支持: WordPress、Typecho、博客园 (MetaWeblog API)
- 智能提取: 自动从网页提取文章标题、内容、封面图(基于 Safari 阅读模式)
- 图片自动上传: 自动转存文章图片到目标平台,无需手动处理
- 草稿模式: 同步后保存为草稿,方便二次编辑后发布
- 同平台多账号: 在扩展内保存多套登录 Cookie,同一篇文章可同步到不同平台的多个账号
- AI 集成: 支持 Anthropic MCP / Claude Code Skill / OpenClaw,多种方式接入 AI 工作流
- 在目标平台网页登录第一个账号
- 打开扩展「设置 → 多账号登录态」,填写账号名称并保存当前登录态
- 在平台网页切换到其他账号,重复上述操作
- 同步文章时,可以像选择普通平台一样同时勾选多个账号
多账号 Cookie 仅保存在 chrome.storage.local。同步时扩展会备份当前会话,串行切换到目标账号,完成后在 finally 阶段恢复原会话。扩展不保存平台密码。由于切换期间同域网页也能观察到临时会话,建议同步时不要在目标平台网页同时进行编辑操作。
这种方式不切换 Cookie:每个 Chrome 用户资料拥有独立的浏览器登录态,并各自运行一个扩展客户端;所有客户端同时连接同一个本地 Bridge。
- 在 Chrome 中创建多个本地用户资料(不要求登录多个 Google/Chrome 账号)
- 在每个用户资料中加载同一份扩展,并分别登录目标平台账号
- 打开扩展「设置 → 同步桥接」,为每个用户资料设置唯一名称,例如“知乎-账号A”
- 每个用户资料都启用同步桥接,并连接
ws://localhost:9527 - 在终端运行
wechatsync bridge并保持运行,让所有用户资料稳定连接 - 另开终端运行
wechatsync clients查看已连接用户资料 - 运行
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 --safeBridge 会使用每个扩展注册的独立本地 Token 路由请求,因此多用户资料不需要共享同一个 Token,也不会通过 Bridge 复制平台 Cookie。只有一个用户资料连接时,原来的 zhihu、juejin 等普通平台 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.csdn 和 platforms.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 会发现所有已连接 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 声明为准;保存草稿不能算作公开发布成功。
完整设计和测试说明:
docs/multi-account-multi-platform-campaign-development.mddocs/multi-account-multi-platform-campaign-test.mddocs/campaign.config.example.json
验证码、登录失效、身份不匹配、限流和审核拒绝会生成“待人工处理”记录。该记录明确携带 retryPublish: false,Worker 会阻止任务而不是自动重发。
推荐: Chrome 网上应用店 (自动更新)
手动安装: 下载 最新 Release 解压后加载到 Chrome 扩展
支持 Chrome / Edge / 360 / QQ 等 Chromium 内核浏览器
| 平台 | ID | 类型 | 状态 |
|---|---|---|---|
| 微信公众号 | weixin | 主流自媒体 | ✅ |
| 知乎 | zhihu | 主流自媒体 | ✅ |
| 微博 | 主流自媒体 | ✅ | |
| 小红书 | 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 下载 |
最简单的使用方式,无需配置 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 中直接用自然语言操作:
/plugin marketplace add wechatsync
/plugin install wechatsync然后直接说"把这篇文章同步到掘金和知乎"即可。
通过 ClawHub 技能市场一键安装:
clawhub install lljxx1/wechatsync详细文档见 packages/cli/README.md
通过 Anthropic MCP 协议,可以在 Claude Code 或 Claude Desktop 中使用 AI 同步公众号文章到多个平台。
- 构建项目:
pnpm build - 在 Chrome 扩展设置中启用「MCP 连接」,并设置 Token
- 在
~/.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:
- article-syncjs - 网页端 SDK
- API 文档
// 拉起同步任务框
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 目录。
- 🆕 文章识别和提取更准确,支持更多网页
- 🆕 CLI/MCP 同步 HTML 文件时自动保留排版样式
- 🆕 同步对话框增加使用提示
- 🔧 修复部分网页悬浮按钮显示异常
- 🆕 新增抖音图文
- 🆕 统一同步对话框和悬浮按钮
- 🔧 修复 CLI 同步格式异常
- 🔧 改善 CLI/MCP 桥接重连稳定性
- 🆕 新增什么值得买、网易号平台
- 🆕 简书支持 Markdown 格式发布
- 🔧 重新适配简书、一点号、搜狐号
- 🆕 新增东方财富
- 🆕 新增悬浮同步按钮
- 🔧 代码块提取兼容性提升
- 🆕 新增 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: 如何同步文章到多个平台?
- 安装 Chrome 浏览器扩展
- 登录各平台账号(知乎、掘金、头条等)
- 打开要同步的文章页面
- 点击扩展图标,选择目标平台,一键同步
GPL-3.0
10 个左右的合规账号推荐使用“一个账号一个隔离 Chrome 用户资料 + 多客户端 Bridge + 稳定逻辑网络组”。网络组只是运维分组,不是轮换代理、指纹伪装或风控绕过手段;系统不会保存 IP、SOCKS/HTTP 代理地址或代理凭据。
Campaign 配置可在 safety 中设置 defaultNetworkGroup、platformIntervalMinutes、networkGroupIntervalMinutes、freezeOnIntervention 和 accounts。未配置时使用 default-network。首次安全正式发布会固定账号身份和网络组;后续网络组不一致会在发布前阻止。同平台、同网络组任务按照计划时间串行,正式写入的 maxAttempts 始终为 1。
CAPTCHA、安全验证或审核拒绝只会冻结受影响的 clientId::platformId,不会级联冻结其他账号。人工处理平台验证后运行:
wechatsync safety status --state-dir .wechatsync
wechatsync safety unfreeze 'clientId::platformId' --state-dir .wechatsync解冻不会自动重发;下一次正式发布仍应先运行 Dry-run。