Cherri (pronounced cherry) is a Siri Shortcuts programming language that compiles directly to a signed Shortcut you can then run on your Apple devices.
/* Hello, Cherri! */
#define glyph smileyFace
#define color yellow
@message = "Hello!"
alert("Message: {message}", "Alert")
Why Cherri?
- 🖥️ Laptop/Desktop based development
- 🎓 Easy to learn and syntax similar to other languages
- 🐞 1-1 translation to Shortcut actions as much as possible to make debugging easier
- 🪶 Optimized to create as small as possible Shortcuts and reduces memory usage at runtime
Glyphs Search
Use the glyphs search site to easily generate a Shortcut icon for Cherri outside of Shortcuts.
How does it work?
🪄 No magic variables syntax, they’re constants instead
const int = 37
show("{int}")
#️⃣ Include files within others for large Shortcut projects
#include 'other-file.cherri'
// ...
#include 'another-file.cherri'
🔧 Define custom actions
#include 'actions/scripting'
action myCustomAction(text test) {
show("{test}")
}
myCustomAction("Test")
📋 Copy-paste actions automatically
#include 'actions/network'
copy checkConnection {
const online = isOnline()
if !online {
alert("No internet connection!")
}
}
// ...
paste checkConnection
🥩 Define raw actions with a custom identifier and parameters
rawAction("is.workflow.actions.gettext", {
"WFTextActionText": "Hello, world!"
})
Creates a text action in the VCard format based on the arguments. It also supports images.
makeVCard("Title", "Subtitle")
🔢 Type system and type inference
/* Declared types */
@string: text
@integer: number
/* Inferred types */
@txt = "Test"
@int = 37