abue-ammar / tinycast

abue-ammar / tinycast

Tinycast is a tiny, fully native macOS launcher. One hotkey, everything you reach for all day, under 100 MB of RAM. SwiftUI and AppKit, zero third-party dependencies, no Electron and no telemetry. It also runs real Raycast extensions, rendered as native SwiftUI. Free, open source, and staying that way. Tinycast 是一款轻量级、完全原生的 macOS 启动器。只需一个快捷键,即可随时调用你所需的一切,内存占用不到 100 MB。它基于 SwiftUI 和 AppKit 构建,零第三方依赖,无 Electron,无遥测。它还能运行真正的 Raycast 扩展,并以原生 SwiftUI 渲染。它免费、开源,并将保持不变。

For anything private, email iabueammar@gmail.com. Support Tinycast is free, and it stays that way. If it earns a place in your daily flow, a one-off tip helps keep it actively maintained. GitHub Sponsors isn’t available in my country, so please support here: Payments are handled securely by Polar.sh. 如有私密事宜,请发送邮件至 iabueammar@gmail.com。Tinycast 的支持是免费的,且将一直保持免费。如果它成为了你日常工作流的一部分,一次性的打赏将有助于维持其持续更新。由于 GitHub Sponsors 在我所在的国家/地区不可用,请通过此处支持:支付由 Polar.sh 安全处理。

Features

功能特性

  • App launcher — fuzzy-search and launch anything, pin favorites, see what’s running, quit an app or every app at once. 应用启动器 — 支持模糊搜索并启动任何内容、固定收藏项、查看运行中的应用、退出单个应用或一键退出所有应用。
  • Global hotkey — one shortcut summons the palette from anywhere. 全局快捷键 — 一个快捷键即可在任何地方呼出启动面板。
  • Per-app hotkeys — bind a key to an app; press it to toggle (focus/hide). 应用专属快捷键 — 为特定应用绑定按键;按下即可切换(聚焦/隐藏)。
  • Search Files — open files and folders from the folders you choose, through Spotlight, with no index of our own. 文件搜索 — 通过 Spotlight 打开你指定文件夹中的文件和文件夹,无需建立我们自己的索引。
  • Clipboard history — text and images, searchable, pasted back into the app you were using. 剪贴板历史 — 支持文本和图片,可搜索,并可粘贴回你正在使用的应用中。
  • Calculator — do math, unit, live currency and crypto conversions inline, right in the palette. 计算器 — 在面板内直接进行数学运算、单位换算、实时货币及加密货币转换。
  • Quicklinks — turn a URL, search, file or deeplink into a command, with placeholders for typed input, the clipboard or the date. 快速链接 — 将 URL、搜索、文件或深度链接转换为命令,支持为输入内容、剪贴板或日期设置占位符。
  • Apple Shortcuts — search and run the shortcuts you built in the Shortcuts app, with aliases and global hotkeys. Apple 快捷指令 — 搜索并运行你在“快捷指令”应用中创建的指令,支持别名和全局快捷键。
  • Snippets — reusable Markdown templates with dynamic placeholders, arguments, nested references and optional keyword expansion. 代码片段 — 可重用的 Markdown 模板,支持动态占位符、参数、嵌套引用和可选的关键词扩展。
  • Custom commands — run named shell commands through fuzzy search or their own global hotkeys. 自定义命令 — 通过模糊搜索或专属全局快捷键运行已命名的 Shell 命令。
  • Window management — 34 Rectangle-style actions: halves, quarters, thirds, sizing, nudging, display moves, fullscreen and Spaces. 窗口管理 — 提供 34 种类似 Rectangle 的操作:二分屏、四分屏、三分屏、调整大小、微调、移动窗口、全屏及空间切换。
  • System actions — lock, sleep, restart, empty trash, toggle appearance, Bluetooth, mute, hidden files, and more. 系统操作 — 锁定、睡眠、重启、清空废纸篓、切换外观、蓝牙、静音、显示隐藏文件等。
  • Calendar and meetings — your next meeting on the empty palette and in the menu bar, one key to join it, or let it join itself. 日历与会议 — 在空面板和菜单栏显示你的下一次会议,一键加入,或设置自动加入。
  • Notes — an unlimited collection of plain Markdown files in one floating editor, searchable from the palette. 笔记 — 在一个浮动编辑器中管理无限量的纯 Markdown 文件,并可通过面板搜索。
  • Emoji picker — a searchable emoji grid, one keystroke away. Emoji 选择器 — 可搜索的 Emoji 网格,一键呼出。
  • AI chat — use your own key or an installed AI account, chat from the palette. Off out of the box, like every AI feature. AI 对话 — 使用你自己的 API Key 或已安装的 AI 账户,直接在面板中对话。与所有 AI 功能一样,默认处于关闭状态。
  • Quick Actions — fix grammar, rewrite, translate or summarize the selected text in any app. 快速操作 — 在任何应用中对选中文本进行语法纠错、重写、翻译或总结。
  • Raycast extensions — run the ones you already have natively, rendered as SwiftUI. Raycast 扩展 — 原生运行你已有的 Raycast 扩展,并以 SwiftUI 渲染。
  • Backup and import — export your settings to a file, or import your setup from Raycast. 备份与导入 — 将设置导出为文件,或从 Raycast 导入你的配置。

Install

安装

First, add the tap: 首先,添加 tap:

brew trust --tap abue-ammar/tinycast # required for third-party taps
brew tap abue-ammar/tinycast

Then run the one line that matches your Mac: 然后运行与你的 Mac 匹配的一行命令:

Your MacInstall
Apple silicon, macOS 26 or newerbrew install --cask tinycast
Intel, macOS 26brew install --cask tinycast-universal
macOS 15 Sequoia (no longer maintained)brew install --cask tinycast-sequoia

Not sure which you have? Apple menu → About This Mac. Homebrew checks too, and refuses the wrong one. 不确定你的机型?点击苹果菜单 → 关于本机。Homebrew 也会进行检查,并拒绝安装错误的版本。

Want early builds? brew install --cask tinycast@beta puts Tinycast Beta.app beside the stable app, with its own settings and permissions. Apple silicon, macOS 26+. 想要尝鲜测试版?brew install --cask tinycast@beta 会在稳定版旁边安装 Tinycast Beta.app,它拥有独立的设置和权限。适用于 Apple Silicon,macOS 26+。

Homebrew clears the macOS quarantine flag on every install and update, so there is nothing else to run. Downloading a DMG from Releases instead? Tinycast is self-signed, so clear the flag once: xattr -dr com.apple.quarantine "/Applications/Tinycast.app". Homebrew 会在每次安装和更新时自动清除 macOS 的隔离标记,因此无需额外操作。如果你是从 Releases 下载的 DMG 文件?由于 Tinycast 是自签名的,请手动清除一次标记:xattr -dr com.apple.quarantine "/Applications/Tinycast.app"

Permissions

权限

Accessibility — needed when Tinycast pastes or expands text into another app, and the only permission snippet keyword expansion needs. You’re prompted when you first use a feature that needs it; grant access in System Settings → Privacy & Security → Accessibility. Snippets ship disabled, and keystrokes are matched locally, never stored and never sent anywhere. 辅助功能 — 当 Tinycast 向其他应用粘贴或扩展文本时需要此权限,这也是代码片段关键词扩展所需的唯一权限。当你首次使用需要此权限的功能时,系统会提示你;请在“系统设置” → “隐私与安全性” → “辅助功能”中授予访问权限。代码片段功能默认关闭,按键匹配均在本地完成,绝不存储,也绝不会发送到任何地方。

Using it

使用方法

Open Settings → General and record a global shortcut to summon Tinycast. Press it anywhere → the palette floats in. Type to filter, ↵ to launch. Tab switches between Apps and Clipboard; ↑/↓ move, Esc dismisses. 打开“设置” → “通用”,录制一个全局快捷键以呼出 Tinycast。在任何地方按下它 → 面板即会浮现。输入以过滤,按 ↵ 启动。Tab 键可在“应用”和“剪贴板”之间切换;↑/↓ 移动选择,Esc 键关闭。

Settings → Shortcuts — search an app or custom command and record a global shortcut. “设置” → “快捷键” — 搜索应用或自定义命令并录制全局快捷键。

Settings → Snippets — enable the feature, then create templates with expansion keywords. “设置” → “代码片段” — 启用该功能,然后创建带有扩展关键词的模板。

Building from source

从源码构建

See docs/development.md for the toolchain, build, packaging, release and website workflows. docs/ indexes everything else — architecture, engineering standards, the design system and one document per feature. 请参阅 docs/development.md 了解工具链、构建、打包、发布和网站工作流。docs/ 目录索引了其他所有内容——架构、工程标准、设计系统以及每个功能的独立文档。

Contributing

贡献

Important: Open an issue before you write code — this is mandatory. Get the bug or the feature agreed on first; discussing it in the issue (or on Discord) is strongly encouraged. A PR that doesn’t close an issue marked approved is closed automatically however good the patch is, and the work is wasted. Docs-only fixes are the one exception. 重要:在编写代码之前请先提交 Issue——这是强制性的。请先就 Bug 或功能达成一致;强烈建议在 Issue(或 Discord)中进行讨论。如果 PR 没有关闭一个已标记为“已批准”的 Issue,无论补丁质量如何,它都会被自动关闭,从而导致工作浪费。仅针对文档的修复除外。

Tinycast’s feature set is deliberately closed, and “another launcher has it” is not a reason on its own. Ask whether a feature is wanted before you ask for it. Read CONTRIBUTING.md first — it covers the memory budget every PR is held to, the before/after video requirement for visual changes, and why features get declined. Every PR fills in the pull request template. Tinycast 的功能集是刻意封闭的,“其他启动器有这个功能”本身并不是添加该功能的理由。在提出功能请求前,请先询问该功能是否被需要。请先阅读 CONTRIBUTING.md——它涵盖了每个 PR 必须遵守的内存预算、视觉更改的前后对比视频要求,以及功能被拒绝的原因。每个 PR 都必须填写 Pull Request 模板。

Security issues go through SECURITY.md, not the issue tracker. 安全问题请通过 SECURITY.md 提交,不要使用 Issue 追踪器。

Questions, ideas, or just want to follow along? Join the Discord. 有问题、想法,或者只是想关注项目进展?加入 Discord。

License: AGPL-3.0 许可证:AGPL-3.0