Rootless

Automate iOS, iPadOS, and macOS using plain JavaScript. Build custom widgets and interact directly with native APIs.

Download on the App Store
Rootless app interface

Plain JavaScript

Supports ES6. Scripts are stored as plain .js files on your disk.

Native APIs & Documentation

Integrate directly with iOS native APIs. Fully documented, available offline.

Siri Shortcuts

Trigger scripts via Siri. Present tables, websites, and custom HTML natively.

System Integration

Run from the Share Sheet, process inputs, and manage local files via Files.app.

x-callback-url

Communicate seamlessly and trigger workflows with other apps on your device.

Customizable & Ready

Tailor the code editor to your liking. Includes several example scripts to start immediately.

Documentation

Also inside the app, or as rootless.json.

File

A file

Returned by a directory's file(). Reads and writes text, JSON, images and raw data, and reports size, dates and extended attributes.

Properties

pathString

File path

nameString

File name

extensionString

File extension

existsBoolean

Whether this file exists

sizeNumber

File size in bytes

utiString

Uniform type identifier

createdAtDateTime ›

File creation date

modifiedAtDateTime ›

File modification date

iCloudAny

iCloud metadata

tags[String]

File tags

attributesAny

File attributes

Methods

.read(as?)Any

Read file contents. Modes: 'string', 'json', 'image', 'data'.

  • as String
.write(content)

Write content to this file.

  • content Any required
.append(content)

Append text to this file.

  • content String required
.copyTo(destination)

Copy this file to a destination.

  • destination Any required
.moveTo(destination)

Move this file to a destination.

  • destination Any required
.delete()

Delete this file.

.download()Boolean

Trigger iCloud download for this file.