abue-ammar/tinycast

▲ 162 stars today★ 3,692⑂ 200

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

3,692Star
200Fork
8Watch
18Issue
SwiftLanguage
NOASSERTIONLicense
Created 2026-06-29 · last push 2026-09-15 · repository size 58815 KB · default branch main

README

Tinycast

A tiny, fully native macOS launcher. One hotkey, everything you reach for all day, under 100 MB of RAM.

https://github.com/abue-ammar/tinycast/blob/HEAD/Latest release https://github.com/abue-ammar/tinycast/blob/HEAD/CI status https://github.com/abue-ammar/tinycast/blob/HEAD/Swift 6.0 https://github.com/abue-ammar/tinycast/blob/HEAD/macOS 15 or later https://github.com/abue-ammar/tinycast/blob/HEAD/License: AGPL-3.0 https://github.com/abue-ammar/tinycast/blob/HEAD/Join the Tinycast Discord https://github.com/abue-ammar/tinycast/blob/HEAD/Support Tinycast

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.

For anything private, email [email protected].

https://github.com/abue-ammar/tinycast/blob/HEAD/Tinycast command palette

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:

https://github.com/abue-ammar/tinycast/blob/HEAD/Support Tinycast
Payments are handled securely by Polar.sh.

Features

or every app at once. index of our own. input, the clipboard or the date. and optional keyword expansion. display moves, fullscreen and Spaces. files, and more. join it, or let it join itself. the palette.

Install

First, add the 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:

| Your Mac | Install | | -------------------------------------------------- | ---------------------------------------- | | Apple silicon, macOS 26 or newer | brew install --cask tinycast | | Intel, macOS 26 | brew 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.

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+.

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".

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.

Using it

1. Open Settings → General and record a global shortcut to summon Tinycast. 2. Press it anywhere → the palette floats in. Type to filter, to launch. 3. Tab switches between Apps and Clipboard; ↑/↓ move, Esc dismisses. 4. Settings → Shortcuts — search an app or custom command and record a global shortcut. 5. 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.

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.
> 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. Security issues go through SECURITY.md, not the issue tracker.

Questions, ideas, or just want to follow along? Join the Discord.

License

AGPL-3.0

More Today's Trending projects

1

debpalash / VoiceStudio

Python★ 29,840⑂ 3,606▲ 2,776 stars
2

JustVugg / colibri

C★ 32,609⑂ 3,430▲ 2,173 stars
3

bilawalsidhu / gods-eye-view

JavaScript★ 33,945⑂ 6,772▲ 1,831 stars
4

alibaba / open-code-review

Go★ 26,516⑂ 1,906▲ 1,571 stars
5

ever-co / ever-gauzy

TypeScript★ 6,164⑂ 994▲ 1,130 stars
6

pacifio / atlas

Rust★ 4,440⑂ 274▲ 1,091 stars