JXA is one of those things that Apple designed broken–and then apparently left to rot. Whereas AppleScript was maintained and updated for decades, JXA was apparently a one-off that never got a lot of attention, and yet it seems to be the only remaining halfway decent way to automate macOS from the command line (no, Shortcuts doesn’t count, and Automator has been crippled by the removal of Python as a supported scripting language).
Oddly enough, for something purporting to be focused on automation, the thing can’t even handle basic things like performing HTTP requests directly (although you can massage the Objective-C bridge to sort of do it), and the documentation is a mess.
But every now and then I try to make sense of it, and this time around (early 2024, with macOS Sonoma as the current release) I’m going to document my findings here:
Resources
Category | Date | Link | Notes |
---|---|---|---|
Reference | 2021 | JXA Wiki | A collection of JXA examples |
Keyboard Maestro Forum | Quite a few lost snippets of osascript/JXA invocation |
||
Notes on automating macOS using Javascript (JXA) | A gist with a few more references |
||
JS OSX App Examples | A collection of JXA examples, as .scpt files |
||
Vincent's Productivity Suite for Alfred | A collection of Alfred workflows that have quite a few JAX examples |
||
Persistent JXA | A blog post that led me to PersistentJXA, which has more examples |
||
2024 | JXA Cookbook | A collection of JXA examples |
|
The Unexpected Return of JavaScript for Automation | Some examples of Objective-C bridging |
||
Keyboard Maestro Wiki | A collection of JXA examples |