Skip to content
monkeychenPublic

About

把微信公众号文章下载为多种格式并在应用内浏览;支持直接订阅公众号,每日自动更新公众号文章至本地,同时提供CLI 供 AI agent 调用。

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

47 stars

Watchers

0 watching

Forks

Latest commit

 

History

673 Commits

Folders and files

wx-kit · 微信百宝箱

下载微信公众号文章,保存为可阅读、可检索、可继续创作的本地资料;同一应用同时提供 GUI 与纯 JSON CLI。

License Electron Node Status

这是什么

wx-kit 是一个本地优先的微信公众号文章下载器:

  • 粘贴一个或多个文章链接,下载为 Markdown、HTML、PDF、封面和元信息;
  • 自动保存正文图片,默认同时下载文章内视频;
  • 在本地文库中阅读、搜索、分组、删除和导出素材;
  • 可把文库文章同步为 Astro 站点内容;
  • GUI 适合日常使用,CLI 输出纯 JSON,适合 AI agent 和脚本调用。

当前能力边界(v0.12.2)

  • 视频入口(v0.12.2 新增):含视频的文章下载后,视频位置有可点的入口——微信文章 在线播放(当次直链,时效如实标注)+ 永久有效的「在微信里打开」兜底,播放失效自动 降级为跳转按钮;墨问笔记的视频号嵌入不再静默消失,原地给出视频号页跳转链接。
  • 选题工作台(v0.12.0 起):把本地素材变成可解释的「今天写什么」——选文章 → 最多 三张写明理由、材料依据与起笔结构的候选卡,每条判断可回溯、失败不伪装;GUI 输入素材 人工选篇(筛选为主搜索为辅、SSE 流式、可取消、历史回看),CLI wx-kit topics analyze / topics brief 输出纯 JSON 供 agent 消费;
  • 多厂商 AI 设置(BYOK):智谱/千问/DeepSeek/Kimi/MiniMax/OpenAI/Google + 自定义, Key 经系统加密落盘、绝不进日志;正文出机边界明示;
  • Windows 正式支持:阅读器图片/封面本地协议修复;非 macOS 平台不挂默认菜单栏; 设置页与选题页随窗口宽度自适应铺满(候选卡保持 3 列);
  • 墨问能力(v0.11.x 延续):下载页「墨问笔记」tab(搜作者/关键词/按链接); 订阅页墨问作者订阅;阅读器内联引用卡片;统一诊断日志 main.log(脱敏、滚动);
  • 降级项(微信侧,与 v0.10.6 一致):微信读书列表接口仍被服务端按账号限制, 订阅每次仅返回该号最新一篇;「按公众号批量下载」入口保持移除。

当前界面

以下截图取自默认窗口宽度(约 1080px)。设置页与选题页的自适应在宽窗口才体现(默认 宽度下与截图一致),Windows 的菜单栏差异只出现在 Windows/Linux。功能界面自 v0.12.0 起未变:下载页双 tab、订阅页平台切换、文库、阅读器延续既有形态。

URL 下载与历史 本地文库
URL 下载完成并写入下载历史 真实文章进入本地文库
选题:从文库选素材 选题:已选素材待分析
选稿弹层:筛选为主、搜索为辅 输入素材已选,可寻找选题
Markdown 阅读器 有效设置
在应用内阅读本地 Markdown 正文 分类化的设置页

下载

各版本安装包累计下载数

下载 v0.12.2 Windows 下载 mac Apple Silicon 下载 mac Intel 下载

v0.12.2 直链(未签名,macOS 需 xattr -cr,Windows 遇 SmartScreen 选「仍要运行」):

平台 安装包 文件 大小 下载量
Windows x64 ⬇ 下载 wx-kit.Setup.0.12.2.exe 111 MB 0 次
macOS Apple Silicon ⬇ 下载 wx-kit-0.12.2-arm64.dmg 135 MB 0 次
macOS Intel ⬇ 下载 wx-kit-0.12.2.dmg 139 MB 0 次

图中数字是每个版本自发布至今的累计下载数(GitHub Releases API 的 asset.download_count, 只计安装包不含 blockmap),不是按天增量——GitHub 不提供下载量时间序列,图只能到版本粒度。 老版本数字高于新版本是正常的(有人从收藏的旧 release 链接取包),不代表最新版不受欢迎。

快速开始

开发运行

npm install
npm run dev

# CLI 下载一篇或多篇文章
npx electron . download \
  --url "https://mp.weixin.qq.com/s/XXX" \
  --formats md,html,meta

默认文库位于 ~/Documents/wx-kit/,可在设置页修改。

macOS:Homebrew

brew install --cask monkeychen/wx-kit/wx-kit
xattr -cr /Applications/wx-kit.app

未签名应用带 quarantine 时,Gatekeeper 可能连 CLI 一并拦截,因此安装后需要执行 xattr -cr。升级前先刷新本地配方:

brew update && brew upgrade --cask wx-kit
xattr -cr /Applications/wx-kit.app

macOS / Linux:npm

# 国内网络可先指定 Electron 镜像
export ELECTRON_MIRROR=https://cdn.npmmirror.com/binaries/electron/
npm install -g @simiam/wx-kit
wx-kit --version

官方 npm latest 仍按渠道规约维护;包名带 scope,但安装后的命令仍是 wx-kit。

下载安装包

仓库上方的「下载」一节有各平台直链、文件大小与实时下载量,也可前往 GitHub Releases 挑选历史版本。

当前安装包未签名、未公证。macOS 首次打开时需在“系统设置 → 隐私与安全性”中允许,或执行上面的 xattr -cr;Windows 遇到 SmartScreen 时选择“更多信息 → 仍要运行”。

当前可用 CLI

开发期在命令前使用 npx electron .;全局安装后直接使用 wx-kit。

目标 命令
下载文章 wx-kit download --url <URL> [--url <URL> ...] [--formats md,html,pdf,meta] [--out <目录>]
从文件批量下载 wx-kit download --urls-file <文件> [--no-video]
查看文库 wx-kit library list
搜索文库 wx-kit library search <关键词> [--account <公众号>]
导出创作素材 wx-kit library export --ids <id,id>
删除文章 wx-kit library remove --ids <id,id>
重建文库索引 wx-kit library rebuild
同步到 Astro 站点 wx-kit site sync ...
查看或修改有效设置 wx-kit settings get [键] / wx-kit settings set <键> <值>
检查更新 wx-kit update --check
查看版本或帮助 wx-kit --version / wx-kit --help

微信读书后端相关命令(v0.10.0 起复活):

目标 命令
扫码登录微信读书 wx-kit login(终端打印二维码)
从文章链接识别公众号 wx-kit search --url <该号任意一篇文章链接>
检查订阅更新 wx-kit subscription check-now [--accounts a,b]
查自动下载了什么(M56) wx-kit subscription list(输出 recentLog 含逐篇明细)
按发表日期查本地订阅文章(M55) wx-kit subscription digest --date <日期>

墨问笔记相关命令(v0.11.0 起,需 mocli 认证):

目标 命令
下载笔记(单篇/按作者批量) wx-kit mowen import <note-id|URL> [--expand-refs] / wx-kit mowen import --uid <uid>
搜索/订阅墨问作者 wx-kit mowen subscribe --keyword <名字>(先看候选)→ 带 --uid 确认
检查墨问订阅更新 wx-kit mowen check-now [--uid <uid>]
查墨问订阅列表 wx-kit mowen list
搜用户/列清单/搜笔记 wx-kit mowen search-user / list-user / list-mine / search
刷新下载后查今天(M55) wx-kit subscription digest --date today --download
登录态迁移 wx-kit session export/import
请求保护 wx-kit protection status/pause/resume

CLI 契约:stdout 只输出 JSON,stderr 输出进度;退出码 0 表示成功,1 表示业务失败,2 表示用法错误或需先登录。完整参数和示例见 agent/wx-kit-skill/。

digest 以 library.json.publishTime 按北京时间筛选,默认(包括 today)纯本地、无需登录。 仅今天允许显式 --download,会刷新最新 cover、下载缺失文章并重读文库,不受自动检查时间或自动下载设置影响; 非今天加该选项会在联网前返回 DOWNLOAD_TODAY_ONLY(退出码 2)。清单只代表本地保存内容,无法保证捕获 两次刷新间被 cover 覆盖的文章。无法确定发表时间时保留正文并告警,日报不将其归入任意日期, 通过 unknownPublishTimeCount 报告所选账号范围内的未知日期条目数;失败详情见 failures。

安装包内的 CLI

macOS 直接调用应用包内的可执行文件,不能使用 open -a,因为它不会可靠透传 stdout 和退出码:

/Applications/wx-kit.app/Contents/MacOS/wx-kit download \
  --url "https://mp.weixin.qq.com/s/XXX" \
  --formats md,meta \
  --out ~/Documents/wx-kit

Windows 默认路径:

& "$env:LOCALAPPDATA\Programs\wx-kit\wx-kit.exe" download --url "..." --formats md,meta --out . > result.json 2> progress.log

Electron 在 Windows 是 GUI 子系统程序,stdout 不会回贴当前控制台;请重定向到文件,agent 集成优先使用 macOS 或 Linux。

功能说明

下载与保真

  • 支持普通图文、文字消息、视频消息、图片消息等当前已适配的页面类型;
  • 图片和视频会在解析文章的同一次流程中本地化,带时效签名的媒体 URL 不写入文库;
  • --no-video 可以关闭视频下载,适合控制流量和磁盘占用;
  • 未识别页面类型或媒体下载失败会写入 warnings,不会把可疑结果静默当成完全正常。

本地文库与素材供给

文库使用文件系统和 JSON 索引,不依赖数据库。library export 返回每篇文章的 contentPath,下游 agent 可以直接读取 Markdown 正文继续做分析或写作。GUI 也支持多选后“导出为素材”。

站点同步

site sync 会把文库文章生成到 Astro 站点的 content/posts/<日期>-<slug>/ 中。目标目录已存在时不会覆盖,避免误伤已发布内容;wx-kit 只生成内容,不代替站点预览和发布。

架构

Electron
├── Renderer:React GUI,只通过 preload 暴露的 API 调主进程
├── Main:IPC、CLI 分流、本地协议和 Electron 服务
├── CLI:Commander,stdout 为 JSON
└── Core:GUI 与 CLI 共用的解析、下载、文库和导出逻辑
  • electron/cli-dispatch.ts 通过 CLI_COMMANDS 白名单判断是否进入 CLI;
  • src/core/ 不依赖 React 或 renderer;
  • src/renderer/ 不直接导入 core,只调用 window.api;
  • 私有公众号后台实现目前保留在源码中,但产品入口与执行路径已停用。

开发验证

npm test
npm run lint
npm run typecheck
npm run test:e2e
npm run test:e2e:live-download
npm run build

本地 GUI e2e 覆盖当前有效界面与 fixture 下载闭环;test:e2e:live-download 使用隔离文库执行真实微信公众号文章 URL 的下载、历史、文库和阅读器验收。真实链路测试会访问微信,只在里程碑或发版验收时运行,不能用 fixture 结果代替。

项目状态

  • 最新已发布版本:v0.12.2(视频入口 + 依赖安全升级,见 docs/releases/v0.12.2.md);GitHub Release 与 brew tap 为必做渠道(npm @simiam/wx-kit 仍按可选渠道规约维护);
  • 下一版候选与完整发布史统一维护在 ROADMAP.md,README 不再复制一份容易漂移的版本史。

需求、设计与开发约定分别见 docs/、ROADMAP.md 和 AGENTS.md。

用户手册

想看「下载一篇文章该按哪个按钮、订阅怎么配、文库怎么用」——直接看 docs/USER_MANUAL.md(随版本同步更新,面向真人用户的 上手教程,含 GUI 截图与配套插画)。

命令行(CLI)面向 AI agent 的速查表在 agent/wx-kit-skill/references/commands.md,不在用户手册范围。

License

Apache-2.0

About

把微信公众号文章下载为多种格式并在应用内浏览;支持直接订阅公众号,每日自动更新公众号文章至本地,同时提供CLI 供 AI agent 调用。

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

47 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages