Cherri โ€“ programming language that compiles directly to a Apple Shortuct

https://news.ycombinator.com/rss Hits: 6
Summary

Cherri (pronounced cherry) is a Shortcuts programming language that compiles directly to a valid runnable Shortcut. The primary goal is to make it practical to create large Shortcut projects (within the limitations of Shortcuts) and maintain them long term. ๐Ÿ–ฅ๏ธ Laptop/Desktop-based development (CLI, VSCode extension, macOS app) ๐ŸŽ“ Easy to learn and syntax similar to other languages ๐Ÿž 1-1 translation to Shortcut actions as much as possible to make debugging easier ๐Ÿฅพ Half-bootstrapped: Most actions and types are written in the language ๐Ÿ’ป Import actions on your Mac ๐Ÿ“ฆ Package manager: Remote Git repo-based package manager built in, allowing for automatic inclusion and updates. ๐Ÿช„ No magic variables syntax, they're constants instead ๐Ÿชถ Optimized to create as small as possible Shortcuts and reduce memory usage at runtime #๏ธโƒฃ Include files within others for large Shortcut projects ๐Ÿ”ง Define actions with type checking, enums, optionals, default values, raw identifiers, and raw keys. ๐Ÿ”„ Define functions to run within their own scope at the top of your Shortcut to reduce duplicate actions. ๐Ÿ“‹ Copy-paste actions automatically ๐Ÿฅฉ Enter action identifier and parameters manually using Raw Actions. โ“ Define import questions ๐Ÿ“‡ Generate VCards for menus ๐Ÿ“„ Embed files in base64 ๐Ÿ”€ Convert Shortcuts from an iCloud link with the --import= option ๐Ÿ”ข Type system and type inference ๐Ÿ” Signs using macOS, falls back on HubSign or another server that uses scaxyz/shortcut-signing-server. You can install Cherri by downloading the latest release or via the Homebrew or Nix package managers: If you have Homebrew installed, you can run: Add Tap: brew tap electrikmilk/cherri Install: brew install electrikmilk/cherri/cherri If you have Nix installed, you can run: nix profile install github:electrikmilk/cherri Alternatively, you can use nix-direnv to get an isolated, effortless dev environment where cherri is available based on which directory you're in. Then you would use_flake and add Cherri to flake.nix: { i...

First seen: 2026-03-30 17:12

Last seen: 2026-03-30 22:14