Open-source project
abue-ammar/tinycast avatar
abue-ammar/tinycast

Tinycast: a native macOS launcher that runs Raycast extensions

Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.

5,999 stars277 forksSwiftNOASSERTION

At a glance

What is it?
Tinycast is a SwiftUI and AppKit launcher for macOS 26 and later, installed through a Homebrew tap. It is dependency-free and runs Raycast extensions natively, but it is still in beta and the repository's contribution rules are unusually strict.
Who is it for?
Tinycast suits Mac users on macOS 26 or newer who want a native launcher with clipboard history, snippets and Raycast extension support, and who accept beta release numbering. Skip it if you are on macOS 15, since the Sequoia cask is marked no longer maintained, or if you need a stable, versioned product.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Tinycast replaces on a Mac

Tinycast is a launcher that lives behind one global hotkey. Press the shortcut and a palette appears over whatever you are doing; type to filter, press Enter to launch. The README lists the reach of that palette: app launching with fuzzy search and pinned favorites, clipboard history for text and images, an inline calculator with unit, currency and crypto conversion, quicklinks, Apple Shortcuts, snippets, custom shell commands, window management, system actions, calendar and meeting join, notes, an emoji picker and AI chat.

The target user is someone who already runs a launcher and resents what it costs. The README's headline claim is under 100 MB of RAM, and it states SwiftUI and AppKit with zero third-party dependencies, no Electron and no telemetry. That is the pitch: the same daily surface, written natively, without a browser runtime underneath it. The secondary audience is Raycast users who have accumulated extensions, because Tinycast states it runs real Raycast extensions rendered as native SwiftUI.

It is free and open source, with a tip link rather than a paid tier. Development is public and release numbering is currently in beta.

How the palette, the index and the permissions fit together

The architecture visible in the repository is a single Xcode project, Tinycast.xcodeproj, generated through project.yml, with a Tests directory and a Scripts directory for build and release workflows. docs/README.md indexes the rest, including one document per feature, plus architecture and design system notes. There is no package manifest for third-party code, which matches the zero-dependency claim.

File search is the clearest design decision. The README says Search Files opens files and folders from folders you choose, through Spotlight, with no index of our own. That means Tinycast does not build or maintain a search database; it queries the index macOS already keeps. The trade-off is direct: anything Spotlight has not indexed, and anything in a folder you did not add, is invisible to the palette.

Clipboard history is stored locally and pasted back into the app you were using. Snippets expand through the Accessibility permission, and the README states keystrokes are matched locally, never stored and never sent anywhere. AI chat is off out of the box, as are AI features generally, and it uses your own key or an installed AI account rather than a bundled service.

Installing Tinycast from the Homebrew tap

Tinycast is not in the default Homebrew set. The README requires trusting the tap first, then tapping it. Both lines run before any install:

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

The install command depends on your Mac. Apple silicon on macOS 26 or newer uses the plain cask; Intel on macOS 26 uses the universal cask; macOS 15 Sequoia has a separate cask the README marks as no longer maintained.

bash
brew install --cask tinycast

If you are unsure which Mac you have, the README points at Apple menu then About This Mac, and notes that Homebrew checks and refuses the wrong cask. Homebrew clears the macOS quarantine flag on install and update, so nothing else is needed. Downloading a DMG from Releases instead means clearing the flag yourself, because the app is self-signed:

bash
xattr -dr com.apple.quarantine "/Applications/Tinycast.app"

Early builds are available as a separate cask, tinycast@beta, which installs Tinycast Beta.app alongside the stable app with its own settings and permissions. Apple silicon and macOS 26+ only.

First run: hotkey, Tab, and the Accessibility prompt

The README's usage sequence is five steps. Open Settings then General and record a global shortcut. Press it anywhere and the palette floats in. Type to filter and press Enter to launch. Tab switches between Apps and Clipboard, arrow keys move, Escape dismisses. Then Settings then Shortcuts lets you search an app or custom command and record a global shortcut for it, and Settings then Snippets enables the feature before you create templates with expansion keywords.

Accessibility is the permission that matters. The README states it is needed when Tinycast pastes or expands text into another app, and that it is the only permission snippet keyword expansion needs. You are prompted the first time you use a feature that requires it, and you grant it in System Settings, Privacy & Security, Accessibility. Snippets ship disabled, so a fresh install does not need the permission until you turn that feature on.

Where Tinycast is the wrong tool

The macOS floor is the first real constraint. The README lists macOS 26 or later for the main and beta casks; the macOS 15 Sequoia cask exists but is explicitly marked no longer maintained. If you are on Sequoia, you are on a branch that will not receive the same attention, and if you are below that, there is no supported path at all.

Self-signing is the second. The README says Tinycast is self-signed, which is why a DMG install needs the quarantine command. Homebrew hides this, but the underlying signing situation does not change, and it is worth knowing if your environment has opinions about unsigned or self-signed binaries.

Third, the project is in beta. The most recent releases are versioned 0.11.x with beta build numbers, and the newest is a beta build. That is not a criticism of the code, but it does mean you should expect the shape of settings and features to move. If you need a launcher whose behaviour is frozen and documented against a stable version number, this is not that yet.

Finally, the contribution process is a gate, not a formality. The README states that opening an issue before writing code is mandatory, that a PR which does not close an issue marked approved is closed automatically however good the patch is, and that docs-only fixes are the one exception. If you were planning to send a drive-by improvement, read CONTRIBUTING.md first.

Raycast, Alfred and the difference in approach

The obvious comparison is Raycast, and Tinycast's README makes the comparison for you by stating it runs real Raycast extensions rendered as native SwiftUI, plus an import path for your setup from Raycast. That is a compatibility play rather than a feature-by-feature one: instead of asking you to rebuild your extension collection, it tries to execute what you already have. Whether a given extension behaves identically is not something the README commits to, and it is the first thing to test if you depend on one.

Alfred is the other long-standing macOS launcher, and the difference in approach is structural. Alfred's workflows are its own model, built around its own scripting and plugin conventions. Tinycast instead targets the Raycast extension format and leans on macOS primitives for search, delegating file lookup to Spotlight rather than keeping its own index. That is a lighter design, and it inherits Spotlight's coverage limits.

Against both, the distinguishing claim is the runtime: SwiftUI and AppKit, zero third-party dependencies, no Electron, no telemetry. If you have watched a launcher's memory footprint grow, that is the axis Tinycast is competing on, and the README's under-100-MB figure is the number to hold it to.

Licence, maintenance and what an upgrade costs you

The repository ships a LICENSE file and a NOTICE.md, and the README's badge reads AGPL-3.0. The repository metadata reports the licence as NOASSERTION, which means the automated classifier did not map the file to a known identifier. Those two signals disagree, and the practical answer is to read LICENSE and NOTICE.md yourself rather than trust either label. AGPL-3.0 is a copyleft licence with a network-use clause; if you plan to redistribute Tinycast, bundle it, or expose modified behaviour over a network, that clause is the part to read closely. This is not legal advice, and the repository also carries a CONTRIBUTOR_LICENSE_AND_FEEDBACK_AGREEMENT.md that contributors should read before sending anything.

Maintenance is active by the evidence available: the repository is not archived, and the last push was on 2026-09-17, with releases on 2026-09-14, 2026-09-15 and 2026-09-16. The cadence is high and the version numbers are still pre-1.0 beta. Upgrading through Homebrew is a normal cask update, and the README notes Homebrew clears the quarantine flag on every install and update. The beta cask is separate, so opting into early builds does not disturb the stable app's settings or permissions.

The upgrade cost to plan for is configuration drift, not installation. Settings, shortcuts, snippets and quicklinks are the surfaces most likely to change while the version stays below 1.0, and the README documents an export-and-import path for settings plus a Raycast import. Export before a jump you care about.

Editorial conclusion

Tinycast suits Mac users on macOS 26 or newer who want a native launcher with clipboard history, snippets and Raycast extension support, and who accept beta release numbering. Skip it if you are on macOS 15, since the Sequoia cask is marked no longer maintained, or if you need a stable, versioned product. Before adopting, verify the Accessibility permission path in System Settings, confirm which cask matches your CPU, and check whether the AGPL-3.0 licence fits how you intend to use or redistribute it.

Frequently asked questions

Does Tinycast run on macOS 15 Sequoia?

There is a tinycast-sequoia cask, but the README marks it as no longer maintained, while the main and beta casks require macOS 26 or later. Treat Sequoia as a frozen branch rather than a supported target.

How do I install Tinycast with Homebrew?

The README requires running brew trust --tap abue-ammar/tinycast and then brew tap abue-ammar/tinycast before installing a cask. Which cask you install depends on your CPU and macOS version, and Homebrew refuses the wrong one.

Why does Tinycast ask for Accessibility permission?

The README states Accessibility is needed when Tinycast pastes or expands text into another app, and that it is the only permission snippet keyword expansion needs. Snippets ship disabled, so the prompt appears when you first use a feature that requires it.

Can Tinycast run the Raycast extensions I already have?

The README says Tinycast runs real Raycast extensions rendered as native SwiftUI, and it documents an import of your setup from Raycast. The README does not state per-extension compatibility guarantees, so test the extensions you depend on.

Is Tinycast free and open source?

The README describes it as free and open source and staying that way, with a one-off tip link rather than a paid tier. The README badge reads AGPL-3.0, while the repository metadata reports NOASSERTION, so read LICENSE and NOTICE.md for the actual terms.

Does Tinycast build its own file index?

No. The README says Search Files works through Spotlight, over the folders you choose, with no index of its own. Files outside those folders, or not indexed by Spotlight, will not appear in the palette.

Official sources

  1. abue-ammar/tinycast on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes