Skip to main content

What Is Scriptable?

Scriptable is an app for iOS that enables you to easily integrate with system apps and functionality using JavaScript. It includes simple classes and objects that represent system functionality, allowing for fairly complex integrations. In some ways, Scriptable could be compared to Shortcuts, but with JavaScript instead of drag-and-drop actions.

Scriptable's developer, Simon B. Støvring, has also developed other apps, such as Jayson and Data Jar.

The official Scriptable website lists the following features:

  • Plain Javascript
    • Supports JavaScript ES6. Scripts are stored as plain JS files on disk.
  • Native APIs
    • Integrate with the native APIs of iOS directly from JavaScript.
  • Siri Shortcuts
    • Run scripts from Siri Shortcuts. Present tables, websites, HTML and more in Siri.
  • Documentation
    • All native APIs that are bridged to JavaScript have documentation which is available offline.
  • Share Sheet Extension
    • Run a script from a share sheet and process the inputs.
  • Files Integration
    • Integrated with the file system and Files.app enabling you to perform operations on files.
  • Customizable
    • The editor can be customized to match your preferences.
  • Example scripts
    • Comes with several example scripts to get you started.
  • x-callback-url
    • Communicate with other apps using x-callback-url.

One major feature that the official website does not mention is the ability to create widgets. Scriptable offers an API for creating fairly complex static widgets, which can display information and images and let you run scripts or open URLs.

Anyone can use Scriptable to access basic iOS functionality without needing to build or install a separate app. Developers can also use Scriptable to prototype and test JavaScript code.

Here are some examples of scripts you could create:

  • Ask Siri whether a web service is down.
  • Postpone the next event in your calendar half an hour.
  • Check what is currently on TV.
  • Manage a list of movies you would like to watch.
  • Upload files to an image optimizer and store a URL to the optimized image.
  • Receive a notification with the weather report every morning.
  • Create todos with prefilled data in your favorite todo app using URL schemes.
  • Count down the days until Christmas in a widget.