<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Native-Support on Kalend's Blog</title><link>https://blog.kalend.top/tags/native-support/</link><description>Recent content in Native-Support on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 14 May 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/native-support/index.xml" rel="self" type="application/rss+xml"/><item><title>Windows 原生支持来了：Hermes Agent 不再只属于 Linux/macOS</title><link>https://blog.kalend.top/2026/05/14/hermes-windows-support.html/</link><pubDate>Thu, 14 May 2026 00:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/05/14/hermes-windows-support.html/</guid><description>&lt;h2 id="windows-原生支持来了"&gt;Windows 原生支持，来了
&lt;/h2&gt;&lt;p&gt;2026年5月8日，一个 255 个文件、新增 7675 行代码的 PR 被合并进 Hermes Agent 主分支。&lt;/p&gt;
&lt;p&gt;PR #21561，标题很简单：&lt;strong&gt;「feat(windows): native Windows support (early beta)」&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;从这一天起，Hermes 不再只属于 Linux/macOS 用户。你可以直接在 PowerShell 里一行命令装好，不需要 WSL，不需要虚拟机，不需要任何 Linux 基础。&lt;/p&gt;
&lt;h2 id="先说结论能用了但还早"&gt;先说结论：能用了，但还早
&lt;/h2&gt;&lt;p&gt;目前的状态是** Early Beta**——官方自己标的。什么意思？&lt;/p&gt;
&lt;p&gt;**能用的：**CLI 终端、Gateway 消息网关、定时任务、浏览器自动化、MCP 工具链、Ollama 本地模型对接、Web 管理面板，这些全部在原生 Windows 上跑通了。&lt;/p&gt;
&lt;p&gt;**还不行的：**Web 面板里的嵌入式终端（需要 POSIX PTY，Windows 暂不支持）；另外还有一些路径编码、进程管理的小 bug 在持续修复中。&lt;/p&gt;
&lt;h2 id="安装一行命令"&gt;安装：一行命令
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;irm &lt;/span&gt;&lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="p"&gt;//&lt;/span&gt;&lt;span class="n"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;githubusercontent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;NousResearch&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nb"&gt;hermes-agent&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;scripts&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;ps1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;打开 PowerShell，粘贴回车。安装脚本会自动处理 Python 环境（通过 uv）、Node.js 和 Git Bash 的依赖。&lt;/p&gt;
&lt;p&gt;Linux/macOS 用户原有的 curl 安装方式不变：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="为什么这件事值得说"&gt;为什么这件事值得说
&lt;/h2&gt;&lt;p&gt;在 PR #21561 合并之前，Windows 用户想用 Hermes，只有两条路：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;WSL2&lt;/strong&gt;——能用，但你得懂 Linux，得装 WSL，得处理网络桥接，折腾门槛不低。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自己硬上&lt;/strong&gt;——有人在 Windows 直接跑，但到处报错：fcntl 导入失败、GBK 编码崩溃、进程探测 OSError……体验一言难尽。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;GitHub 上与 Windows 相关的 issue 超过 &lt;strong&gt;1100 个&lt;/strong&gt;。排在前面的全是：&lt;code&gt;os.kill(pid, 0)&lt;/code&gt; 在 Windows 上抛 SystemError、终端工具输出为空、&lt;code&gt;.env&lt;/code&gt; 文件编码损坏、cp1252 导致 UnicodeEncodeError……&lt;/p&gt;
&lt;p&gt;说白了，Hermes 之前是按 POSIX 标准写的，Windows 是个「二等公民」。&lt;/p&gt;
&lt;p&gt;这次合并把这些问题做了系统性的修复：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;进程管理&lt;/strong&gt;：重写了 Windows 进程检测逻辑，用 kernel32.OpenProcess 替代了 POSIX 信号量探测&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;路径处理&lt;/strong&gt;：新增路径归一化函数，统一处理反斜杠、驱动器号、WSL 路径互转&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;编码问题&lt;/strong&gt;：全局强制 UTF-8 输出，解决 cp1252/GBK 崩溃&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安装体验&lt;/strong&gt;：PowerShell 一键安装器，自动绑定 Python + Node.js + Git Bash&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI 门禁&lt;/strong&gt;：新增 &lt;code&gt;check-windows-footguns.py&lt;/code&gt;，每个 PR 都自动检测 Windows 兼容性问题&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="功能对比原生-windows-vs-wsl2"&gt;功能对比：原生 Windows vs WSL2
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;功能&lt;/th&gt;
 &lt;th style="text-align: center"&gt;原生 Windows&lt;/th&gt;
 &lt;th style="text-align: center"&gt;WSL2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;CLI / TUI&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gateway 消息网关&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;定时任务&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;浏览器自动化&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MCP 工具链&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Ollama 本地模型&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Web 管理面板&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;面板内嵌终端&lt;/td&gt;
 &lt;td style="text-align: center"&gt;❌&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;开机自启&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅ (schtasks)&lt;/td&gt;
 &lt;td style="text-align: center"&gt;✅ (systemd)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;除了面板内嵌终端这一个点，其他功能已经和 WSL2 平齐。&lt;/p&gt;
&lt;h2 id="背后做了什么"&gt;背后做了什么
&lt;/h2&gt;&lt;p&gt;这次合并不是简单加几个 if-else。CONTRIBUTING.md 里新增了 16 条跨平台兼容性规范，覆盖了你在 Windows 上能想到的每一个坑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;禁止使用 &lt;code&gt;os.kill(pid, 0)&lt;/code&gt;（Windows 会抛 SystemError）&lt;/li&gt;
&lt;li&gt;禁止直接调用 &lt;code&gt;wmic&lt;/code&gt;、&lt;code&gt;ps&lt;/code&gt;、&lt;code&gt;grep&lt;/code&gt; 等 Unix 命令&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fcntl&lt;/code&gt;/&lt;code&gt;termios&lt;/code&gt; 必须 ImportError 保护&lt;/li&gt;
&lt;li&gt;文件读取必须显式指定 UTF-8 编码&lt;/li&gt;
&lt;li&gt;进程管理要用 &lt;code&gt;CREATE_NEW_PROCESS_GROUP&lt;/code&gt; 替代 &lt;code&gt;os.setsid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;路径必须用 &lt;code&gt;pathlib.Path&lt;/code&gt;，不能硬编码斜杠&lt;/li&gt;
&lt;li&gt;符号链接在 Windows 需要管理员权限&lt;/li&gt;
&lt;li&gt;OneDrive 重定向路径的兼容处理&lt;/li&gt;
&lt;li&gt;CRLF/LF 行尾符一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配套的 CI 检查脚本会在每个 PR 提交时自动扫描这些「Windows 地雷」，防止新代码引入兼容性问题。&lt;/p&gt;
&lt;h2 id="如果你想试试"&gt;如果你想试试
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;环境要求&lt;/strong&gt;：Windows 10/11，PowerShell 5.1+&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安装&lt;/strong&gt;：一行命令搞定，安装脚本自带 Python 环境&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置模型&lt;/strong&gt;：安装完成后运行 &lt;code&gt;hermes setup&lt;/code&gt;，配置你的 API Key（支持智谱GLM、DeepSeek、通义千问等国内模型）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;启动&lt;/strong&gt;：&lt;code&gt;hermes&lt;/code&gt; 回车，进入交互式终端&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;遇到问题可以直接去 GitHub 搜 issue，1100 多个 Windows 相关 issue 说明社区很活跃，维护者在密集修复。&lt;/p&gt;
&lt;h2 id="值得关注的信号"&gt;值得关注的信号
&lt;/h2&gt;&lt;p&gt;几个细节说明这次不是玩票：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;创始人亲自提交&lt;/strong&gt;：PR #21561 的合并者是 @teknium1（Nous Research 创始人），不是随便一个社区贡献者&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文档同步上线&lt;/strong&gt;：README 首页直接加了 Windows 安装入口，文档站新增了完整的 Windows 专属页面&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安装脚本锁定&lt;/strong&gt;：CONTRIBUTING.md 要求 install.sh 和 install.ps1 必须同步更新，不是加完就不管&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;社区参与度高&lt;/strong&gt;：合并当天就有多个新 issue 和 PR 提交，说明已经有用户在原生 Windows 上实际使用了&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="一句话总结"&gt;一句话总结
&lt;/h2&gt;&lt;p&gt;Windows 原生支持从「完全不能用」变成了「能用但还粗糙」。对 Windows 用户来说，门槛从「先学 Linux」降到了「一行命令安装」。对项目来说，用户池一下子从 Linux/macOS 开发者扩展到了全球最大的桌面操作系统用户群。&lt;/p&gt;
&lt;p&gt;Beta 就是 Beta，但方向是对的。&lt;/p&gt;</description></item></channel></rss>