I also wrote about how Claude was able to basically learn the language from scratch and write those fully compilable Shortcuts for me [1] because it was mind boggling to me that an LLM can do that. Curiously, this is becoming more and more normal in my mind.
[0] https://lowtechguys.com/crank
[1] https://alinpanaitiu.com/blog/how-good-is-claude-really/#che...
Also some apps export Shortcut actions that can run in-app code: for example my Lunar app has an action that can help fixing arrangement when monitors flip around [1]
It's much easier to implement a struct for a Shortcut, than exporting AppleScript sdef files or creating IPC command-line tools, so a lot of apps take this route for code that needs access to the memory of the running app.
(That's what held me back most for spending more effort on shortcuts.)
I had a full garden automation running on shortcuts, but it was extreme hard to maintain and improve due to "editor" being so bare bones.
Jelly was a confusing experience for me, with JellyCuts becoming closed source and focusing on advertising, then Open-Jellycore branching out but not actually keeping up with the latest shortcut actions.
Cherri has almost every action you can find in the Shortcuts app, easy to use, and easy to create Shortcuts that can accept input and output so that they can be automated or scripted further.
Wonderful project, thank you Cherri!
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.
--import= optionYou 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:
{
inputs.cherri.url = "github:electrikmilk/cherri";
{ # outputs.packages.${system}.default = pkgs.mkShell etc - omitted for brevity
buildInputs = [
inputs.cherri.packages.${system}.cherri
]
}
}
Then run direnv allow in the directory with the flake.nix file.
cherri file.cherri
Run cherri without any arguments to see all options and usage. For development, use the --debug (or -d) option to print
stack traces, debug information, and output a .plist file.
Because it's fun :)
Some languages have been abandoned, don't work well, or no longer work. I don't want Shortcuts languages to die. There should be more, not less.
Plus, some stability comes with this project being on macOS and not iOS, and I'm not aware of another Shortcuts language with macOS as its platform other than Buttermilk.
The original Workflow app assigned a code name to each release. Cherri is named after the second-to-last update "Cherries" (also cherry is one of my favorite flavors).
This project started on October 5, 2022.