Extensions
Tinycast runs Raycast extensions natively, drawn with SwiftUI.
Tinycast runs Raycast extensions: the same package.json and the same built command files, drawn
natively in the palette.
There is no Electron, no browser and no Node.js running inside Tinycast. Extensions run in JavaScriptCore, which already ships with macOS, so this adds nothing to the app's size.
Settings → Extensions holds the switch. It ships off, and turning it on asks first, because it means agreeing to run code someone else wrote.
| Setting | Default |
|---|---|
| Enable extensions | Off |
| Show in launcher | On |
The switch is never included in backups, so importing a file cannot turn it on.
While it is off, no folder is scanned, nothing shows in the launcher and no JavaScript engine exists.
The one ongoing cost
One command runs at a time, and a running command keeps a JavaScript engine in memory until you leave it. That is the only ongoing cost Tinycast has.
Starting a command stops the one before and throws its engine away, so nothing carries over between runs. A fresh start takes about 7 ms once warm.
The one exception is background refresh, which briefly runs a command on a schedule, and only if you turn it on.
Where to go next
- Installing extensions: the three ways in, registries and package managers
- What works: what is supported, and the known gaps
- Configuring one: preferences, icons, aliases and background refresh
In the launcher
An extension's commands show in the Extensions section. The extension's own name also finds its
commands, so lucide finds Lucide's Search Icons.
A global shortcut belongs to a command, not to a whole extension. See Hotkeys.
A command that takes arguments shows small fields right after what you typed. tab moves from the search field through each field and back, and return from any of them runs the command. An empty required field stops the launch and puts the cursor there.
Every argument is sent, as an empty string if you left it blank. Raycast does the same, and extensions count on it.
Moving around
esc clears the search field first. On an empty field, esc and delete go back through the extension's own screens, and only leave the command once you are at its first screen.
Screens you go back to keep their state, so you land where you left off.
An extension's actions become the palette's ⌘K menu. The first action is the one return runs, and each action's own shortcut works.
Appearance
A running command keeps the appearance it started with. A theme change reaches it the next time it opens. Icons and colors made for light and dark switch as the palette does.