科技前沿 Skill推荐推荐写作开源

Harper:离线语法检查器,内容永不上传

📅 2026-07-31

Harper 是 Automattic(WordPress 母公司)开源的英语语法检查器,GitHub 上 14k Stars、540 forks,Apache-2.0 协议,Rust 编写,2023 年 10 月创建,2026 年 7 月刚发布 v2.7.0。它瞄准的是 Grammarly 和 LanguageTool 留下的空档:Grammarly 把所有输入上传到服务器,未发布的稿子、内部文档全都过了一遍别人的手;LanguageTool 功能全面,但要先下载约 16GB 的 n-gram 数据集,内存占用以 GB 计。Harper 的全部检查在本地完成,不联网、不上传,一条命令跑完一份文档。

三个核心亮点

毫秒级响应,资源占用小到可以塞进浏览器。 实测数据:一份 137KB 的英文文档,harper-cli 从启动到输出结果耗时 0.83 秒;进程峰值内存约 210MB,已包含完整词典加载。项目自述内存占用不到 LanguageTool 的 1/50。它轻到可以直接编译成 WebAssembly,writewithharper.com 就是跑在浏览器里的网页版,打开即用,不需要安装任何东西。

确定性规则引擎,每条检查都可解释。 Harper 不是 LLM,没有概率和幻觉。它是一套声明式规则引擎,规则文件叫 Weir,每条检查都有名字、类型和优先级:Spelling、Grammar、Punctuation、Redundancy、Word Choice。检查结果不是模棱两可的「建议」,而是带规则名的确定性判定。这意味着它不会今天说对、明天说错,也意味着它能进自动化流程。

生态覆盖完整。 VS Code、Neovim、Helix、Emacs、Zed 都有官方集成,Obsidian 有独立插件,另有 harper.js(WASM 绑定)、harper-ls(LSP 服务)和 harper-cli 三个可编程入口。项目更新节奏稳定,v2.7.0 于 2026 年 7 月发布,GitHub 上 700 多个 open issues,维护者响应活跃,属于持续演进中的项目。

白物集的实际用法

白物集每天 10:30 自动出稿,发布前跑三道质量门控:排除词扫描、标题字数检查、中英文空格检查。这三道都是规则脚本,几秒跑完,但英文语法一直是盲区——AI 生成的英文术语、英文摘要里的拼写错误,只能靠人眼扫。

Harper 补上了这一环。实测:把一段故意写错的英文丢给 harper-cli,共 10 处明确错误——Teh、dont、their are、would of、alot、more smarter、recieve、its、every one、definitly——10 处全部命中。整份文件从启动到出结果 0.3 秒。原始 lint 共报了 15 条,去重后保留 10 条,输出按规则类型自动归类,拼写、语法、标点、冗余、用词等八类一目了然,每条都带规则名和优先级,脚本解析起来很容易。默认按美式英语检查,方言可以在配置里切换。

接入方式和现有脚本一致:

harper-cli lint article.md

有错误时退出码非 0,直接并进发布管线的门控脚本,和排除词扫描同一个位置。写作阶段用 Obsidian 插件,输入框里即时划红线,不用切窗口,不用等网络往返。

适合什么场景

英文技术文档、README、博客英文稿、Markdown 写作、CI 质量门控,以及所有对隐私敏感的内容——未发布的稿子、内部资料,都不该经过第三方服务器,Harper 在这类场景是唯一合理的选择。它不挑编辑器,写代码的和写文档的都能用同一套规则。

不适合两类场景:中文语法检查——目前只支持英文,中文输入它直接跳过;整句重写和风格润色——它是确定性规则引擎,不做生成式改写,需要润色还是要交给 LLM。另外它刻意追求「不过度打扰」,长文档里个别有歧义的错误会漏,比如 Lets 缺撇号这类上下文敏感的用例,所以它适合当门控,不适合当唯一防线。如果你的写作对象是中文为主、英文只占零星术语,它的价值有限,投入产出比最高的用法是检查英文摘要、英文 README 和对外发布的英文片段。

快速上手

  1. VS Code 用户:扩展市场搜 Harper,安装后打开英文文档即用。
  2. 命令行:GitHub Releases 下载 harper-cli,macOS、Linux、Windows 都有预编译包,./harper-cli lint 文件.md
  3. Obsidian 用户:装 Harper 插件,写作时实时提示。
  4. 想先体验:打开 writewithharper.com,浏览器里直接测,WASM 版和本地版同一套引擎。
  5. 接入 CI:lint 返回非 0 退出码即失败,和现有 lint 工具同一套用法。

一个确定性语法引擎,换来的是可解释、可离线、可自动化的检查能力。对每天要出稿、又要守质量门控的内容管线来说,这类工具比云端服务更适合进管线。如果你的写作流程里还没有本地语法检查这一环,Harper 是现成的答案。

← daisyUI —— Tailwind CSS 组件库首选 → Apple 频道 WorldMonitor:AI 聚合 500+ 新闻源 →
🍎 Apple 深度分析
本文基于 Apple 公开资料及行业分析撰写。观点仅供参考与学习交流。