ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

换掉 Raycast 的人越来越多:72.6MB 常驻内存、零遥测,Tinycast 凭隐私叙事出圈

换掉 Raycast 的人越来越多:72.6MB 常驻内存、零遥测,Tinycast 凭隐私叙事出圈 换掉 Raycast 的人越来越多72.6MB 常驻内存、零遥测Tinycast 凭隐私叙事出圈【免费下载链接】tinycastTinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.项目地址: https://gitcode.com/GitHub_Trending/ti/tinycastmacOS 启动器这个赛道过去几年几乎被 Raycast 定义扩展生态、AI 集成、窗口管理一个命令面板装下了半个工作流。但硬币的另一面也在积累——基于 Electron 的常驻进程吃内存遥测与数据策略不够透明闭源意味着用户只能信任而无法审计。当效率的工具价值被重新排序隐私开始成为新的决策变量时一批用户开始寻找替代品而 Tinycast 正是这波讨论的中心72.6MB 常驻内存、零遥测、零第三方依赖还能直接运行你已经在用的 Raycast 扩展。本文不替它站台而是把社区里反复出现的这几个数字逐一放回源码里验证一遍——它们到底是真的还是又一个营销话术。一、换家潮的动机拆解用户在为两类成本投票社区里关于为什么我换掉了 Raycast的讨论动机可以归成两类。第一类是资源成本。启动器是常驻应用它占据的内存是沉默成本——不会崩、不会卡但每一 MB 都在那里。基于 Chromium 系内核的工具跑一堆渲染进程常驻内存轻松上百 MB对一个每天按一次快捷键、其余时间都在等待的应用来说这份开销很难说合理。Tinycast 的仓库首页把under 100 MB of RAM直接写进项目简介与其说是营销不如说是在回应这类抱怨。第二类是信任成本。启动器处理的是最敏感的数据剪贴板里的每一条复制、键盘上敲下的每个片段、你启动的每一个应用。当这类数据流向一个不透明的云端服务用户对便利的定价就会改变。Tinycast 的应对是把自己的隐私主张写成了工程承诺——zero third-party dependencies, no Electron and no telemetryREADME.md并且 AGPL-3.0 开源让没有遥测从一句口号变成了可被任何人验证的代码事实。这两类成本叠加构成了换家潮的真实推力。而 Tinycast 能接住这批用户靠的是一套可审计的工程体系而非话术。二、72.6MB 常驻内存一条写进贡献规范的硬预算先看最硬的数据。仓库的测试文档里记录了 2026 年大重构后的实测基线常驻内存 40–80 MB硬性上限 100 MBRelease 二进制约 3.66 MBdocs/testing.md。这个数字不是偶然。在 CONTRIBUTING.md 的Non-negotiables里第一条就是RAM. Under 100 MB, always. No feature is worth going over.——内存预算被写进了贡献门槛任何 PR 都要报 idle 与 peak 的实测数字超了就被拒。这不是性能优化层面的尽量而是架构层面的必须。Tinycast 把预算贯彻到了具体实现里处处可见为省内存做的设计取舍文件搜索用 Spotlight 的MDQuery且把候选项硬性限制在 1000 个以内、结果 200 行封顶。文档明说这是故意的NSMetadataQuery没有源端结果上限一个宽泛的搜索词就可能击穿 100 MB 预算docs/features/file-search.md。扩展运行时内嵌 JavaScriptCore零额外二进制体积——引入 QuickJS 要多花约 1 MB 加一套构建系统被直接否决docs/features/extensions.md。架构上分为 Pure / Effect / Observable / View 四层所有环境事实时钟、日历、汇率以参数注入保证纯模型层可被测试框架直接编译系统副作用被隔离在 Service 层docs/architecture.md。零第三方依赖在这里不是价值观而是内存策略的必然结果没有 Electron、没有 Chromium、没有 Node.js全部 UI 基于 SwiftUI AppKit 原生绘制。72.6MB 不是宣传照而是这套工程约束的下限表现。三、零遥测不是营销词而是一组可审计的工程约束我在整个Tinycast/源码目录中检索遥测与分析 SDKPostHog、Sentry、TelemetryDeck、Firebase 等结果是零命中。这不是漏检——仓库的架构文档把联网功能必须走私有 ephemeral 会话、禁用 URL 缓存写成硬性规范CurrencyRateStore被点名作为唯一参考实现AGENTS.md、docs/architecture.md。也就是说即使是更新检查这类不可避免的联网行为也不共用系统缓存、不留下第二个磁盘副本。零遥测在数据流层面有几处非常具体的落地剪贴板。历史存本地 SQLite轮询时用com.tinycast.internal私有 pasteboard 类型标记自己的写入避免自复制循环对org.nspasteboard.ConcealedType、org.nspasteboard.TransientType等敏感类型做了专门的过滤处理Tinycast/Features/Clipboard/Service/ClipboardManager.swift。剪贴板内容只在本机比对永不外发。文件搜索零权限。不建私有索引、不记录查询历史所有结果来自 Spotlight 元数据连最近使用列表读的都是系统的kMDItemLastUsedDate。用户不需要授予全盘访问权限docs/features/file-search.md。AI 默认全关。AI 功能出厂即关闭关闭意味着不建历史库、不创建任何连接API Key 只进登录钥匙串从不进日志、错误信息或设置备份远端端点强制 HTTPS仅本机回环地址例外docs/features/ai.md。更新不自带遥测全家桶。没有 Sparkle、没有 appcast更新检查直接读 GitHub Releases 的同一个 feed且更新前对下载包做签名、bundle id、版本三重校验docs/features/updates.md。备份与导入的安全边界。.tinycast备份文件不携带任何绝对路径/Users、/Library都不允许出现能力授予型开关如 snippets 的按键监听、扩展开关被显式排除在备份之外防止一次导入悄悄解锁未授权能力Raycast 数据导入则是对.rayconfig做 AES-256-GCM 解密与 scrypt 密钥派生docs/features/backup.md、docs/features/raycast-import.md。这份清单的共同点是隐私不是我们不收集而是数据在物理上就不离开这台机器且路径可审计。这正是隐私叙事能出圈的技术基础。四、凭什么接得住换过来的用户Raycast 兼容层换家潮里最大的迁移阻力是资产沉淀——用户在 Raycast 里配置的扩展、快捷键、剪贴板历史、Snippets、Quicklinks说扔就扔是不现实的。Tinycast 对这条痛点的回应分两层。第一层数据导入。三步流程即可迁移导出.rayconfig并取得密码 → 选择文件并输入密码完成 AES-256-GCM 解密与 scrypt 密钥派生 → 勾选 Snippets、Quicklinks 等类别完成导入。导入采用合并而非覆盖去重导入、版本校验、导入报告都齐备docs/features/raycast-import.md。第二层扩展兼容。这是 Tinycast 最激进的一步——直接运行 Raycast 扩展。它内置了一个约 200KB、预生成的RaycastRuntime.generated.js运行时Tinycast/Resources/RaycastRuntime.generated.js在 JavaScriptCore 上补齐了 React 19、raycast/api全部组件、Node.js 内建模块的 polyfillfs、crypto、http、stream、zlib、WebSocket 等Swift 侧通过异步桥接处理剪贴板、存储、fetch、exec 等宿主能力。实测数据是开发机上真实安装的 37 个扩展中32 个可完整渲染147 个 view 命令中 114 个正常运行docs/features/extensions.md。更关键的是兼容边界的诚实性不支持的缺口AI、BrowserExtension、WindowManagement 三类 Raycast 服务 API以及流式 HTTP、net/tls等全部显式报错而非静默降级用户能明确知道边界在哪。同时扩展功能默认关闭、开启需二次确认——运行第三方代码本身被视为需要同意的能力授予这与其隐私基调一脉相承。五、隐私换便利的取舍谁适合谁不适合任何取舍都有代价。Tinycast 的隐私与内存优势对应的是一份清晰的不适配清单。适合的人群在意常驻内存与机器安静的 macOS 用户要求 macOS 26见 project.yml 的部署目标对剪贴板、按键、文件数据流向敏感希望数据不离开本机且可审计的人深度依赖 Raycast 扩展生态、但不想被绑死在某一商业产品上的人——导入与扩展兼容把迁移成本降到了可接受区间认同功能克制哲学的开发者贡献文档明确写着 feature set 是刻意收敛的另一个启动器有这功能本身不构成加功能理由CONTRIBUTING.md。不适合的人群重度使用 Raycast AI、BrowserExtension、WindowManagement 等服务的用户——这些 API 目前是明确的缺口依赖需要流式 HTTP 或原始 socket 的扩展的用户桥接层目前一次性交付整个响应体无法升级到 macOS 26 的老机型用户——Tinycast 明确不做向下兼容需要商业支持、企业合规或丰富扩展市场的团队用户——这是单维护者驱动的 AGPL-3.0 开源项目功能取舍权在维护者而非用户。回看这场换家潮它的本质是启动器赛道的一次价值重估当功能生态的增量趋于饱和资源效率与数据主权就变成了新的差异化维度。72.6MB 常驻内存、零遥测、零第三方依赖这三个数字在 Tinycast 仓库里不是口号而是被写进贡献规范、测试基线和架构文档的工程事实。对于在意这两项成本的用户它给出了一个可审计、可迁移、且不绑架你既有扩展资产的新选项而对于那些依赖 Raycast 深层服务的人来说此刻的迁移窗口还没有完全打开。这场竞赛的下一步取决于兼容层的边界能往前推进多远。【免费下载链接】tinycastTinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.项目地址: https://gitcode.com/GitHub_Trending/ti/tinycast创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进