A Node.js utility for running AppleScript code and returning the result. It provides an async `runAppleScript` (Promise of a string) and a synchronous `runAppleScriptSync` (string result), with options like `humanReadableOutput` to control output formatting and `signal` to cancel execution.
Project status
- Actively maintained, with recent
updatesincluding v7.1.0 in 2025-09-09, adding cancellation support via a newsignaloption (AbortSignal) for the asyncrunAppleScriptAPI. - Update cadence appears moderate, with a large gap between v7.0.0 (2023-12-18) and v7.1.0 (2025-09-09), and earlier updates in 2022 (v6.1.0), suggesting no rapid release cycle but ongoing work.
AI summary generated Today
Recent updates
v7.1.0
9 months agov7.1.0 adds cancellation support to the async `runAppleScript` API by introducing a new `signal` option (AbortSignal). The implementation forwards the signal to Node's `execFile` so the underlying `osascript` process can be aborted.
Featuresv7.0.0
12/18/2023v7.0.0 primarily updates the package to require Node.js 18. The diff also replaces the internal execution mechanism from execa to Node's child_process APIs and adjusts output handling and process options.
Breakingv6.1.0
12/12/2022v6.1.0 adds a new option, `humanReadableOutput`, to control how `osascript` formats results. The async and sync APIs were extended to accept an optional options object, and tests and documentation were updated accordingly.
Featuresv6.0.0
8/12/2021v6.0.0 primarily changes the public async API by renaming the exported function. The code diff also includes CI workflow updates and dependency version bumps, none of which are covered by the release notes.
Breakingv5.0.0
3/7/2021v5.0.0 converts the package to pure ESM, drops the default export, and introduces two named exports: runAppleScriptAsync and runAppleScriptSync. It also raises the minimum Node.js version to 12 and updates the project tooling and dependencies.
Breakingv4.0.0
10/28/2019v4.0.0 introduces TypeScript type definitions for the package and makes a major runtime requirement change. The release is labeled breaking because it requires an updated Node.js version to run the library.
BreakingFeatures