Randomness utility for Apple platforms
Roll dice, flip coins, pick numbers, generate passwords and colors. A polished, tactile randomness utility built with Swift and SwiftUI.
Built with Swift and SwiftUI. No Electron, no web views, no bloat.
![]() |
| All 7 modes on a single canvas — Number, Dice, Coin, Picker, Password, Color, Shuffle — plus live previews of each mode's last cast. |
![]() |
| The About sheet — GitHub, Sponsors, Buy Me a Coffee, Translations, and issue reporting, each with its real brand palette. |
Download the latest version from Releases. Unzip, move Cast.app to Applications, and launch.
The app includes a built-in update checker -- open About and click Check Now to see if a newer version is available.
- 7 randomness modes — Number, Dice, Coin, Picker, Password, Color, Shuffle. Each gets its own focus view tuned to what the mode does.
- Tactile delight — per-mode cast animations, sound effects, and trackpad haptics. All three toggle independently in Settings.1
- Apple Shortcuts integration — 7
AppIntentsdiscoverable in Siri, Spotlight, and Shortcuts.app. Ask "Flip a coin with Cast", "Roll dice with Cast", or build automations. - Cryptographically-secure password generation — 8 – 64 chars, per-class toggles, optional "exclude ambiguous" (0/O, 1/l/I, etc.). Never written to disk.
- 8-language localization — English, French, German, Spanish, Portuguese (BR), Japanese, Korean, Chinese (Simplified).
- Accessibility-first — full VoiceOver labels on every card + control, Reduce Motion automatically drops animations to subtle.
- Built-in update checker — queries GitHub Releases. No Sparkle. Toggleable from Settings.
| Shortcut | Action |
|---|---|
Space |
Cast (in any focus mode) |
Cmd + 1 … Cmd + 7 |
Jump to Number / Dice / Coin / Picker / Password / Color / Shuffle |
Cmd + C |
Copy current result |
Cmd + [ or Esc |
Return to home |
Cmd + , |
Open Settings |
Cast exposes 7 intents. Each runs without opening the app — useful for automations.
| Intent | Returns |
|---|---|
| Cast a Number | Int |
| Roll Dice | [Int] rolls + total in the dialog |
| Flip a Coin | "Heads" or "Tails" |
| Pick from List | String |
| Generate Password | String |
| Random Color | formatted String (HEX/RGB/HSL) |
| Shuffle List | [String] |
Sample invocation phrases: "Roll dice with Cast", "Generate a password with Cast", "Pick an item with Cast".
| Requirement | |
|---|---|
| OS | macOS 14.0 (Sonoma) or later |
| Chip | Any Mac (Apple Silicon or Intel) |
Download the latest .zip from Releases, extract it, and move Cast.app to your Applications folder.
Launch the app and configure your preferences.
This repository hosts the translation files for Cast. You can help translate the app into your language or improve existing translations.
- Fork this repository
- Edit an existing file in the
languages/folder, or create a new one by copyingEnglish.xml - Translate the string values (the text between
<string>tags) -- do not change thekeyattributes - Keep any
%1,%2,%@,%dplaceholders in place -- the app needs them - Submit a pull request
| Language | File | Status |
|---|---|---|
| English | English.xml |
Complete |
| French | French.xml |
Complete |
| German | German.xml |
Complete |
| Spanish | Spanish.xml |
Complete |
| Japanese | Japanese.xml |
Complete |
| Korean | Korean.xml |
Complete |
| Portuguese (BR) | Portuguese.xml |
Complete |
| Chinese (Simplified) | Chinese.xml |
Complete |
Want to add a new language? Copy English.xml, rename it to your language name, translate the values, and submit a PR.
Please use Issues to report bugs or request features.
If Cast is useful to you, consider supporting development:
Cast is not yet notarized with Apple. On first launch you may see a Gatekeeper warning.
To fix this:
- Click Done to dismiss the dialog
- Open System Settings > Privacy & Security
- Scroll down -- you'll see a message that Cast was blocked
- Click Open Anyway
This only needs to be done once. After that, the app will open normally.
When you click Install Now in the About window, macOS will show a password prompt before replacing the app in /Applications. This is expected -- the app needs elevated permissions to overwrite itself.
Footnotes
-
Haptic feedback requires a Force Touch trackpad (built into every MacBook Pro since 2015, MacBook Air since 2018, and Magic Trackpad 2+). On desktop Macs, older laptops, or when using a regular mouse, macOS silently ignores haptic requests — sounds and animations continue to work unaffected. ↩


