正文Ghostty 是个终端工具Mitchell Hashimoto 写的就是做 Vagrant 和 Terraform 那位。 核心用 ZigMac 上套一层 SwiftLinux 上用 GTK。没有 Windows 版。我 fork 了一份三天后 Windows 版能跑了。第一个提交是 9 月 1 号凌晨两点半 9 月 4 号发了第一个版本。Windows 那部分 45 个文件4.8 万行 Rust代码我一行没写246 个提交每个 Co-Authored-By 都是 Claude。这篇主要讲讲这三天我在干什么。我用的工具就是我在做的东西得先说清楚这个 fork 是干嘛的不然后面的事讲不通。我 fork Ghostty 本来不是为了 Windows是为了做AI CLI编排就是基于Claude code、codex、opencode这类CLI工具来编排和做自动化开发。功能很简单选一个AI作为总管它能看到别的AI终端里多久没动了能读屏能往里打字能开新终端能把所有人拉进群聊配了一块任务面板用于协同。Windows 版就是拿这套东西做出来的就是用工具借助AI来迭代工具自身。开工一个总管三四个工人每个都是独立的 Claude Code 会话。总管建群把活拆成任务丢进面板一个个派下去。我定方向、拍板、盯着。有三条规矩是我定的。工人不许碰 git。 不许提交不许暂存git add 都不行全走总管。起因是有一次总管跟我说这两个人改的文件不冲突它是从其中一个工人的汇报里读来的但另一个却说有冲突。后来改成谁动了什么只能由动手的人自己说谁跟谁不冲突必须总管自己跑一次 git status 亲眼看。不许两个人同时编译。 Zig 的构建会先把某个中间产物删掉再重建这期间另一个人的构建必然死在一个跟他毫无关系的地方前两次我都以为是代码坏了。不许碰不是自己起的进程。 听着像废话但 AI 在清理环境的时候是真会顺手把你正在用的窗口关掉。为什么选RUST这层壳用什么写我没让 AI 定因为它决定后面所有的事。Linux 那份 Zig 是第一个被排除的。两万三千行听着能复用翻开全是 GTK窗口是 GTK 的窗口标签页是 GTK 的标签页输入法也走 GTK。换到 Windows 一行不剩。真正卡住我的是输入法。Windows 的输入法框架叫 TSF用 COM 写的。C 和 C# 调它很顺因为语言本身就认识 这套东西。Zig 不认识得手工弄那张函数表一个字段错位全崩。而输入法是 Windows 终端最难的一块也是中文用户开机十秒就会碰到的一块。Mac 的输入法接口 Swift 天生就有Linux 的是 D-Bus 加 C 接口Zig 接起来很顺。就 Windows 这个是 COM。Rust 有微软自己出的绑定COM 支持完整。选它输入法整个待在 Rust 这边Zig 一行 COM 都不用碰。Zig 那边最后只改了二十行左右——系统相关的信息压成了一个很小的结构原来两行 加第三行给 Windows 就完事。剩下的活全在 Rust而且 Mac 那层壳已经把同一份接口 实现过一遍等于有份参考答案。先啃最难的按常理该先把窗口开出来看见界面有成就感但我让AI先去啃输入法。这是整条路上唯一一件光看代码猜不出难度的事。要是比我想的难十倍我得在写两万行 后续代码之前知道。结果特别顺。输入法那部分四百多行头一回交叉编译出来的程序拷到 Windows 上一次 就通了敲 n i h a o候选词框浮出来按 1你好。日志里有一行我记到现在SetText 0..2 - 你把第 0 到第 2 格替换成你。这个字在内存里算一个字符在终端里占两格。 那个 2 要是算成 1候选框就偏而且只在中日韩文字上偏英文完全正常。 这种 bug 最难查。关键是那个 2 不是自己写死的是问终端核心要的跟核心排版用的是同一张宽度表。 它没图省事自己造一张看到这儿我才觉得这套干活方式靠谱。黑屏故障排查窗口能开了输入法通了。接上核心跑起来全黑。不是崩溃是安安静静地黑。该成功的全成功了窗口也在正常收到重绘制的通知就是一个像素都没有。后来摸出个规律先建个小窗口再放大就是黑的建的时候直接给最终尺寸画面就出来。埋日志量了一下画出来的区域 1000x670 ← 一直是建窗口那一刻的大小慢慢拉大六次这个数一次都没变过。但终端自己是清醒的。在全屏的终端里敲命令查行列数回答 143 列 41 行正好等于全屏宽高除以单个字符的大小一分不差。这个读数是命令行那头的程序报回来的。继续埋把每一环都打出来。链条是通的每一环的数都对。两个 agent 各自写了个测试方法两个都失败屏幕还是黑的。后来换了个办法让AI不看日志了截张图用画图工具量黑白分界线在哪。分界线落在横坐标 1000尺寸全对只是有旧尺寸那么大的一块矩形被画上了屏幕。 把日志改到最后一步真正往屏幕上贴图的地方目标1240x790 贴图区1240x790 画布1240x790 可绘区域(0,0,1000,670) ← 死在这儿前三个都跟上了最后那个卡在了旧尺寸。翻代码找到一个函数专管设这个区域搜谁在调它——全仓库零个调用者。这个可绘区域这辈子只被设过一次创建的那一瞬间按当时窗口大小设的之后再没人 管过。Linux 上为什么没这毛病翻 GTK 源码一眼就看见了它在每次窗口变大时替我们重设 了一遍。GTK 一直在帮忙擦屁股Windows 这边是块光板。更难受的是这事早就写在代码注释里那个函数旁边有句英文大意是在裸窗口上没有人会做这件事。读过那个函数的人没把它当缺陷读。回头看最开始那个建窗口时给全屏尺寸它之所以有效是因为它让那个只设一次的 区域恰好等于窗口大小。病一直都在只是被藏到了第一次之后的任何一次拉伸里。AI说全绿了不算数AI 写代码的难点不在写不出来在它会特别自信地跟你说工作完成了或者测试都通过了。举二个例子文件压根没编译新加了个文件接进项目编译报 0 错误 0 警告。看着挺好。其实把它加进项目的那行语句从来没执行。当时是一串命令连着跑中间断了一条后面的全没执行。而屏幕上那个退出码来自断点之前最后一条跑过的命令正好是 0导致AI说执行成功。后面是测试发现功能不对应才发现的代码缺失。错误的检查器脚本AI写了 16 道检查脚本。其中 4 道扫了 0 个文件然后打印一切正常退出码 0。扫遍整棵树没发现问题和一个文件都没扫到输出长得一模一样。发现的办法是测试检查器换件有一步把它们指向一个空目录看谁还敢说正常。现在每道检查都得带一句自检哪一行不出现就说明它本身没工作而不是它工作正常。一道永远不会失败的检查比没有检查更糟。还有一条是 Windows 独有的有些代码只在不是 Mac的时候才走。而在 Mac 上编译时编译器看一眼就知道这段 走不到干脆不分析了。所以平时那句在 Mac 上跑一遍确认没写坏对这部分代码完全不成立。解决方案是进行交叉编译 Windows 会红但在 Mac 上编译不一定会报错。61 道检查闸门上面这些坑有个共同点出问题的时候没有一条会大声报错。而 AI 最擅长产生一个看起来对的东西。所以我逼着它们把每次踩坑都变成一道自动检查。windows/tools/ 下现在有 61 个 Python 脚本提交之前全跑一遍。文件名本身就是 那条规矩a-position-is-not-an-identity.py 位置不能当身份 an-async-handle-is-not-copied.py 这种句柄不能按值复制 the-ui-thread-never-waits-forever.py 界面线程不许无限等待第一条是这么来的标签页和分屏格子的身份必须是永不重复的编号不能用它在数组里 的位置。格子会被拖来拖去、会被关掉用位置的话第 2 个会在某一刻悄悄变成另一个 格子不报错不留痕。还有个习惯比代码本身有用。状态文档里有两个词绝不混用已落地是代码写完了、编译得过、检查都绿了已验证是有一条在真机上跑出来的实际读数支持它。没有读数就不许写已验证哪怕这事明摆着是对的。还有一条文档里没标实测的默认就是没验过。方向是这么定的不是反过来。要是反过来用未验去标例外沉默就变成了一种承诺——读者看到会以为其余的都验过了。真机验证Windows 版没法在 Mac 上验旁边放了台 Windows 当测试机接了远程控制。 AI 自己上去装包、起程序、截图、读日志我基本不插手但这里的坑也不少。远程工具打字是绕过输入法的它直接合成字符送进去所以拿它测中文输入你会得出输入法没接通的结论换成真的发按键候选框立刻就出来。最麻烦的是发按键之前得先证明窗口在前台。Windows 某些情况下会静默拒绝把窗口提到前台函数不报错脚本一路跑完键落到别人窗口上。这时候键没发出去、键被别人吃了、这个功能坏了三种情况在日志上完全一样。后来写成硬规矩凡是要发按键的验证第一步写成点一下被测窗口不要写成把窗口置前。群聊这个功能本身是用群聊测的。在测试机上拿个本地跑的 27B 小模型当总管带三个工人在空目录里做个小项目。建文件、开终端、建群、派活、各自交件、汇总提交五步全通。最想看到的信号也出来了那模型被权限挡住之后自己去查自己是谁自己找到提权的办法自己重试成功。三天之后添加图片注释不超过 140 字可选9 月 4 号发的第一个版本之后又花了一周多打磨9 月 8 号打包给测试者 9 月 9 号冻结。真正在写功能的就是头三天后面都是真机验收和收尾。核心一共 72 个动作Windows 这边实现了 63 个明确拒绝 7 个还欠 2 个欠的两个是背景透明度切换和退出计时器。终端显示那一半根本不是移植的它就是同一份 Zig 核心Windows 这边只是给了它一个窗口我做的是外面那层壳。最后三天做出来不是因为哪个模型写得特别快。而是那三天里一直有四个AI在协同工作——一个啃输入法一个做标签和分屏一个查黑屏一个补菜单139 个提交是这么堆出来的。并行不难难的是一个人如果监管多个AI。哪个在等你授权、哪个二十分钟前就干完了在那闲着、哪个只是在等你确认设计。我原先的是每隔一会儿就得一个个看一遍都是碎片时间自己想做什么事情很容易被打断。所以我想法就是这活我得交给了另一个 AI 来做。总管盯着每个AI的终端屏幕哪个多久没动了、谁停下来了需要授权、谁干完了需要接着派下一个活儿而我只需要和总管一开始确认好设计和内容之后就不用再管了。群聊和任务面板也不是摆设——上下文清空、终端重开、第二天接着干面板上的活还都在。至于我自己这三天在干什么定方向、定规矩、和总管定设计、验收产出。跟 AI 干活工作量不在让它写代码而在建立一套让它没法骗你、也没法骗自己的验证方式。上面那 61 道闸、没标实测就当没验的默认值全是为这件事服务的。终端好用的部分全是 Ghostty 的功劳我只补了 Windows 这一侧。fork 不是重写上游更新会合进来。MIT跟上游一致。https://github.com/Lugia123/polterWindows 这边还很新哪些验过哪些没验都在 dev-docs/windows/status.md 里逐条 标着。 碰到问题欢迎提 issue提到我这个仓库别提到上游 Ghostty 那边去。
企业数字化 ERP 产品动态
相关推荐
提示词工程(Prompt Engineering):怎么跟模型说话它才听得懂 各类Ai进入视野,最受关注的还是提示词。提示词工程是企业落地大模型时值得关注的环节之一。同一套模型和数据,提示写得好与不好,输出质量可能出现差异。本文从定义、原理、工程意义、企业用法和常见误区五个层面拆解提示词工程,帮… · 2026/9/24 17:43:32
实时字幕只出字还不够,它还得知道谁在说 一场三个人以上的会议里,转写错一个词未必致命,把承诺记到错误的人名下才是真的麻烦。
普通流式 ASR 解决的是“声音刚进来,文字就出来”。但要把结果直接交给会议纪要、客服质检或语音 Agent,系统还得回答另一个问题:… · 2026/9/24 17:43:26
PolarEDF电子取证2026秋季个人挑战赛(write up) 计算机取证1. 在制作 E01 取证镜像时,取证人员对原始证据和生成的镜像文件分别计算了 MD5 和 SHA-1 哈希值,并进行比对。这一操作的主要目的是:BA. 确保镜像文件可以被 Autopsy 等工具正常打开和解析B. 验证镜像文件与原始证据的数据完全一致… · 2026/9/24 17:43:26
WinForms图层化绘图板实战:从画完就丢到可编辑可回退 简介:这是一份面向C#初学者与Winform桌面开发练习者的绘图程序源码,基于.NET Framework构建,可用于学习图层管理、图形绘制与图像保存等典型桌面绘图场景。压缩包共46个文件,约529KB,以cs源码、resx资源、config配置、… · 2026/9/24 18:15:23
Medical | 药品追溯系统实施的成本解构 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 18:15:23
2026.9.23学习周报 本周,我继续小福星电商平台项目研发综合实训,主要围绕需求文档完善、专业工具学习以及项目优化整改展开学习,收获颇丰,同时也认清了自身存在的不足,现将本周学习情况总结如下。9月21日,我继续完善小福星电商… · 2026/9/24 18:15:23
CActor断路器与背压控制:5种策略守护高并发系统不崩的最终方案 CActor断路器与背压控制:5种策略守护高并发系统不崩的最终方案 【免费下载链接】cactor 项目地址: https://gitcode.com/Cangjie-SIG/cactor
高并发系统最怕两件事:下游服务雪崩式故障,以及消息洪流冲垮消费者。CActor 作为基于仓颉语… · 2026/9/24 18:15:23
基于CNN的猫狗图像识别:从数据准备到迁移学习实战 简介:这份资源是面向Python与深度学习入门者的CNN猫狗图像识别实战项目包,适合想通过完整案例掌握卷积神经网络分类流程的学生与开发者。包内共26个文件,以jpg与png图片示例、py源码脚本、zip数据压缩包为主,另附PDF案例讲义、txt… · 2026/9/24 18:15:17
基于2000张植物病害图像的数据集:YOLOv8检测训练与避坑指南 简介:这份资源是面向计算机视觉与农业AI方向的植物病害检测数据集,适合从事图像分类、目标检测研究的学生、算法工程师及科研人员使用,用于解决非实验室环境下植物病害图像样本不足、标注质量参差的问题。压缩包共约2000个文件,整… · 2026/9/24 18:15:17
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44