This repository contains a library that enables a single JavaScript file to run:
- In CLI on macOS
- From the share sheet on iOS/iPadOS (Using Shortcuts)
- From the home screen on iOS/iPadOS (Using Shortcuts)
- In the Scriptable App on iOS/iPadOS
This repository also includes a set of automation scripts written using this library.
For example, the included Sum.js
file allows a user to:
- In CLI on macOS, run
sum.js -n "1 2 3"
to output:6
- In iOS, select
1 2 3
(ex: in Notes) → Share → Sum, and a notification of6
will pop up. - In the iOS home screen, tap
Sum
, fill a "Numbers" prompt, and be notified with the sum. - In the iOS Scriptable app, tap
Sum.js
to run the script just like on the home screen.
All four use cases are running the same JS file, synchronized over iCloud. Importantly, none of the use cases force the user to switch apps - they all run in whatever app/screen the user is currently on. While Sum.js
is a simple example, arbitrarily complex scripts can be written that:
- Request complex input (date/times, choosing from a set, files/folders, etc.)
- Download/Upload Data
- Reading/writing to the filesystem (text or binary)
- Displaying notifications, text logs, rich HTML, or rendered Markdown
The lib README describes how to setup and use the library to create new scripts that run on all platforms.
The following scripts are included in this repository.
Once set up, run each script with -h
or --help
for documentation. Help messages may refer to paths starting with $
, which means "the script directory". For example, $/README.md
refers to this file, and $/lib/README.md
refers to the lib README.
- App Icons
- App Lists Import
- App Lists Item
- App Lists Manage
- App Lists Update
- App Lists
- Cafe
- Calc
- Caller
- Folder Union
- Hue Cycle
- LastFM History
- Laundry Delay
- LifeLog Log
- LifeLog New
- LifeLog Steam
- LifeLog Stop
- LifeLog Update Metadata
- Lifelog Markdown
- Markdown Folder
- Music Playlists
- Music Releases
- Music Similar Artists
- Music Top Tracks
- Pass New Random
- Pass New Words
- Retroarch Doom Config
- Retroarch Download Images
- Retroarch Download Pico8
- Retroarch Download Tree
- Retroarch Make Playlist
- Retroarch Set Config
- Retroarch Steam Config
- Retroarch Steam Grid
- Retroarch Upload Tree
- Scriptable Build
- ScriptableHelperCopy
- Shuttle Update
- Shuttle
- SteamCloud
- SteamData Update
- SteamData
- TV Randomizer
- TV Renamer
- Temperature Log
- Bsp Patcher
- Game Add
- LifeLog Url Finish
- LifeLog Url Time
- LifeLog Url
- Markdown Compile
- Markdown File
- Open Key in Steam
- Open from FB
- Open in Archive
- Open in Lyft
- Open in Narwhal
- Open in Safari
- Sum
- TimeStamp Decode
- TimeStamp Get
- Turnip Add
- Word Count
- Word Suggest
- Word Unformat
- Word Unprefix