一项用于设计拥有原生体验的跨平台桌面应用的Agent技能 — 源自Raycast 2.0技术深度剖析,并基于对已发布的Raycast Beta.app二进制文件的反向工程。
这两个目标通常相互制约:便利的跨平台开发和接近原生的性能。本技能捕捉了结构性的选择——八大架构原则、四层架构、WebKit/WebView2生存指南、75项发布检查清单——让应用能够兼得这两点。
这是什么
为架构师、技术主管和工程师而设的参考,他们需要构建一个桌面应用,该应用必须:
在macOS + Windows(可选Linux)上运行,且使用单一UI代码库,
启动时间低于500毫秒,常驻内存低于500 MB,
对用户而言与原生应用无异(没有
cursor: pointer标识、启动时无白闪、无WebKit上下文菜单、无平滑滚动的JS),支持TypeScript的插件/扩展生态系统,
能够与iOS和服务端后端共享性能关键代码。
这就是四层架构:原生外壳→系统WebView(WKWebView/WebView2)→Node后端→Rust核心,通过一个单一的带类型IPC模式连接起来,为每个运行时生成客户端。
这不是什么
不适用于单一操作系统应用(直接用原生构建即可)。
不适用于Electron风格的“够用”应用(这里的精调预算高出5-10倍)。
不适用于有严格<150 MB或<100毫秒冷启动预算的应用(底线是真实的)。
不适用于游戏、文档编辑器或媒体播放器。
运行checklists/decision-tree.md来确定该架构是否适合你的项目。它本身已排除了几种常见情况——直接说明比过度调整建议更有用。
设计哲学
该架构解决的核心矛盾:当便捷的跨平台开发与接近原生的性能这两个目标通常相互制约时,桌面应用如何能同时实现两者?八大原则指明了结构性举措:
将分界点置于渲染表面——在WebView之上共享,在其之下分离;这是唯一能同时保证开发体验和原生感受的层次。
单一模式,多种语言——在声明处一次性支付多语言税,在调用点再不用付。
采纳平台而非与之竞争——操作系统绘制的模糊、滚动、材质和深色模式效果优于你能做到的。
性能是感知的属性——用户感受到的,而不是活动监视器报告的。
短迭代循环就是产品——200毫秒热重载对比30秒原生重建,是150倍的复合优势。
有意地跨越边界——IPC有成本;将每次跨越设计为异步、批处理、带类型模式。
身份认同是肌肉记忆——快捷键、排序、操作符就是应用本身;其他都是实现细节。
区分基线边界——WebView+Node底层是租借的;只有你的脏页才是你自己的优化空间。
先阅读references/01-philosophy.md。其他都是由此衍生。
关于Agent技能
Agent技能是封装领域知识的新兴标准,任何兼容的Agent(Claude Code、Claude Agent SDK或其他支持Agent技能的运行时)都可以发现并加载。通过此README顶部的提示安装后,当Agent的对话涉及跨平台桌面架构、WebView特性问题或Raycast风格的应用时,技能会自动激活——触发条件在SKILL.md的前置元数据中声明。
来源
Raycast的公开技术文章:关于全新Raycast的技术深度剖析
对
Raycast Beta.appv0.60.0(macOS 26+构建,Xcode 17,arm64)的反向工程——详见references/07-evidence-raycast.md,了解发现了什么以及如何发现。