Tinycast:一款不足 100 MB 的原生开源 macOS 启动器
Tinycast 是一款原生 macOS 启动器,集成模糊搜索、剪贴板历史记录、快捷键、片段、窗口管理和 Raycast 扩展。
Tinycast:一款不足 100 MB 的原生开源 macOS 启动器
现代 macOS 启动器越来越像小型操作系统:它们可以索引应用、管理窗口、展开片段、保存剪贴板历史记录,并连接外部服务。Tinycast 采取了不同的方式。它旨在提供同类的命令中心工作流,同时保持为一款小巧、完全原生的 macOS 应用,使用 SwiftUI 和 AppKit,而不是 Electron。
该项目将自身描述为一款启动器、快捷键工具和剪贴板历史记录管理器,并且内存占用保持在 100 MB 以下。它没有第三方运行时依赖,不包含遥测功能,并以 AGPL-3.0 许可证发布。
Tinycast 为何值得关注
只有当启动器比手动浏览菜单、Finder 窗口和系统设置更快时,它才真正有用。Tinycast 将这些操作置于一个全局快捷键和可搜索的命令面板之后。从那里,开发者可以启动应用、搜索文件、粘贴之前的剪贴板内容、运行 shell 命令、管理窗口,以及执行系统操作,而无需离开当前工作流。
原生实现的意义不只是品牌定位。SwiftUI 和 AppKit 让 Tinycast 能够直接集成 macOS API,包括 Spotlight、全局快捷键、辅助功能服务、窗口管理和菜单栏行为。避免使用 Electron 也消除了随浏览器运行时一起打包所带来的内存和封装开销。
核心功能
应用启动器
Tinycast 支持对已安装的应用进行模糊搜索,并允许固定常用项目。启动器还可以显示当前正在运行的应用、退出某个应用,或一次性退出所有应用。
常规工作流刻意保持简单:
- 按下配置好的全局快捷键。
- 输入应用或命令名称的一部分。
- 按 Enter 启动它。
- 按 Escape 关闭面板。
全局快捷键和应用专属快捷键
全局快捷键可以从 macOS 的任何位置调出面板。你还可以为应用或自定义命令分别分配全局快捷键。对于应用而言,按下其快捷键可以切换焦点或隐藏应用,这对终端、编辑器和通信应用等工具很有用。
快捷键可以在 设置 → 快捷键 中配置。你可以搜索应用或自定义命令,并录入对应的按键组合。
剪贴板历史记录
Tinycast 会保存可搜索的文本和图像剪贴板条目。你可以直接从面板访问剪贴板界面,并将选中的项目粘贴回正在使用的应用。
面板会将应用和剪贴板内容分为不同标签页。按 Tab 在两者之间切换,使用方向键导航,并按 Enter 选择项目。
基于 Spotlight 的文件搜索
Tinycast 通过 Spotlight 搜索你选择的目录中的文件和文件夹,而不是维护独立的应用索引。这种设计避免重复 macOS 的索引工作,并让功能保持聚焦:找到文件、打开文件,或跳转到其所在文件夹。
计算器和单位转换
内联计算支持普通算术、单位转换、实时货币转换和加密货币转换。由于计算器位于命令面板中,因此无需打开单独的应用或浏览器标签页即可使用。
快速链接、片段和自定义命令
快速链接可以将 URL、搜索、文件或深层链接转换为可复用的命令。它们可以通过占位符接收输入内容、剪贴板内容或当前日期。
片段是可复用的 Markdown 模板,支持:
- 动态占位符
- 参数
- 嵌套引用
- 可选的关键词展开
自定义命令为命名 shell 命令提供可搜索的界面。命令还可以拥有自己的全局快捷键,使 Tinycast 成为轻量级的个人自动化层。
例如,自定义命令可以封装一个项目任务:
cd ~/Code/my-project && ./scripts/test.sh
之后,你可以通过模糊搜索调用该命令,而不必打开终端并反复输入相同的命令序列。
无需单独工具的窗口管理
Tinycast 内置 34 个类似 Rectangle 的窗口操作。这些操作涵盖常见布局和更高级的显示操作,包括:
- 二分、四分和三分布局
- 调整窗口大小和微调位置
- 在不同显示器之间移动窗口
- 全屏
- Spaces 操作
这使启动器成为多个小工具的实用替代品。使用多个编辑器、终端、浏览器和测试设备的开发者,可以将常用布局绑定到命令或快捷键上。
系统操作、笔记、会议和表情符号
内置系统操作涵盖锁定 Mac、睡眠、重新启动、清空废纸篓、切换外观、控制蓝牙、静音音频和显示隐藏文件等任务。
Tinycast 还包含一些面向工作流的功能:
- 日历和会议: 在空白面板和菜单栏中显示下一场会议,并支持一键加入或可选的自动加入。
- 笔记: 在浮动编辑器中提供无限量的纯 Markdown 文件集合。笔记可以从命令面板中搜索。
- 表情符号选择器: 通过一次按键打开可搜索的表情符号网格。
纯 Markdown 笔记对开发者尤其有吸引力,因为它们易于迁移,也方便进行版本管理、备份或使用其他工具编辑。
可选的 AI 和 Raycast 兼容性
Tinycast 包含 AI 聊天和快速操作,但 AI 功能默认处于禁用状态。用户可以提供自己的 API 密钥,或使用已安装的 AI 账户。快速操作可以在其他应用中修正语法、改写、翻译或总结选中的文本。
该项目还支持原生运行现有的 Raycast 扩展,并将其渲染为 SwiftUI。这为用户从 Raycast 迁移提供了路径,同时不要求 Tinycast 成为基于浏览器的扩展宿主。
AI 的设计刻意采用主动选择加入的方式:除非用户启用并配置该功能,否则它不会悄悄发送内容或凭据。
使用 Homebrew 安装
Tinycast 支持 macOS 15 或更高版本以及 Swift 6.0。首先信任并添加第三方 Homebrew tap:
brew trust --tap abue-ammar/tinycast
brew tap abue-ammar/tinycast
然后根据你的 Mac 选择对应的 cask:
# Apple 芯片,macOS 26 或更高版本
brew install --cask tinycast
# Intel,macOS 26
brew install --cask tinycast-universal
# macOS 15 Sequoia
brew install --cask tinycast-sequoia
Homebrew 会检查平台,并拒绝安装不兼容的软件包。在 macOS 26 或更高版本的 Apple 芯片设备上,还可以使用早期构建版本渠道:
brew install --cask tinycast@beta
Beta 应用会与稳定版应用并列安装,并拥有独立的设置和权限。Homebrew 会在安装和更新过程中清除 macOS 的隔离标记。如果你手动下载 DMG,Tinycast 使用自签名,因此需要清除一次隔离属性:
xattr -dr com.apple.quarantine "/Applications/Tinycast.app"
辅助功能权限和隐私
当 Tinycast 将文本粘贴或展开到其他应用中时,需要辅助功能权限。这也是关键词展开所需的唯一权限。某项功能首次需要权限时,macOS 会提示你授权;你可以在 系统设置 → 隐私与安全性 → 辅助功能 中管理该设置。
片段默认处于禁用状态。其关键词匹配过程在本地完成,按键不会被存储或发送到任何地方。更广泛地说,该项目声明不包含遥测功能,也没有第三方依赖。
构建和贡献
该仓库主要使用 Swift 编写,报告的语言占比为:Swift 90.9%、JavaScript 5.8%、TypeScript 2%,以及其他语言 1.3%。仓库包含 Xcode 项目、测试、脚本、文档、网站源代码和 CI 配置。
从源代码构建的开发者应参考 docs/development.md,了解工具链、构建、打包、发布和网站工作流。docs/ 目录还索引了架构文档、工程标准、设计系统和特定功能文档。
贡献规则有意设置得较为严格。贡献者必须在编写代码前创建 issue,并且该 issue 必须获批后,拉取请求才会被接受。未关闭已批准 issue 的拉取请求可能会被自动关闭。仅涉及文档的更改不受此限制。
项目还要求贡献者阅读 CONTRIBUTING.md,其中记录了拉取请求所需的内存预算、视觉变更前后的视频要求,以及某些功能可能被拒绝的原因。安全问题应通过 SECURITY.md 报告,而不是提交到 issue 跟踪器。
许可证和项目状态
Tinycast 免费提供,并且计划持续保持免费。它采用 AGPL-3.0 许可证,由于 GitHub Sponsors 在作者所在国家/地区不可用,项目通过一次性打赏选项获得支持。付款由 Polar.sh 处理。
该仓库列出了超过 3,100 个 star、185 个 fork、41 位贡献者和 92 个版本;项目页面显示的最新版本为 0.10.23。这些数据表明它是一个活跃的开源项目,而不是小型概念验证项目。
对于希望获得无需 Electron、遥测功能或一堆独立工具的快速命令面板的开发者来说,Tinycast 是一个颇具吸引力的原生 macOS 替代方案。它最强的卖点并非某一项单独功能,而是启动器、快捷键、剪贴板、片段、窗口操作、笔记和可选集成如何融合为一个轻量级工作流。
来源
abue-ammar/tinycast:Tinycast——一款小巧、完全原生的 macOS 启动器、快捷键和剪贴板历史记录工具。