iOSShortcutsFull Keyboard AccessAdvanced

Advanced iOS Scripts: Shortcuts and Full Keyboard Access in Practice

Turn an iPhone into a programmable device: bind Full Keyboard Access commands, automate Shortcuts, and trigger scripts from keyboard shortcuts, with setup cases and how scripts call them.

8 min read

An automation script turns repeated manual steps on a phone into a program the phone runs itself. Cluster control adds a layer of centralized management across many devices. This article covers one thing: Shortcuts and Full Keyboard Access in practice.

Why keyboard shortcuts are worth learning on their own

Full Keyboard Access sits in the iPhone accessibility settings. An external keyboard, or a simulated one, can run system commands with shortcuts: open Notification Center, switch apps, trigger a Shortcut. EasyClick keyboard shortcuts let a script send those keys. Bluetooth or OTG HID handles taps and swipes. Keyboard shortcuts handle system commands. Shortcuts handle multi-step actions. With the three connected, a script can reach system UI that an ordinary tap cannot.

EasyClick HID setup and Shortcut binding, showing iOS keyboard shortcut control

Compared with calling a system interface directly, this path can do a few concrete things. Full Keyboard Access and Shortcuts are both built into the system. With Bluetooth or OTG HID they work, and they do not depend on the proxy. System-level actions such as opening Notification Center or Control Center are hard for an ordinary script API to do directly. One Shortcut can wrap several steps, and the script only triggers it once. A Shortcut you have configured can be shared to other devices. When the proxy does not cover the case, typing text and downloading content into the photo library often go this way.

How it works, and what it depends on:

Piece What it is
Full Keyboard Access Built-in iOS accessibility (Settings - Accessibility - Keyboards and Typing). No jailbreak.
Keyboard shortcut “Add keyboard shortcut” in the console, binding a combo to a system command or a Shortcut
Script call bleEvent.keyPressChar (Bluetooth) / otgEvent.keyPressChar (OTG)
What sends the keys Bluetooth HID / OTG HID hardware

One combo has to be set on both sides

Full Keyboard Access maps keyboard keys to system actions. Press the combo, and the system runs the matching command. That map lives on the device, under Full Keyboard Access - Commands. An EasyClick keyboard shortcut makes the hardware path press the same keys, which fires the command already configured on the device. The combo on both sides has to match:

Device: Full Keyboard Access - Commands → combo X → command A
Console: Add keyboard shortcut → combo X → Send
Script: keyPressChar(combo X) → the device runs command A

If the combo differs on either side, the chain breaks. That is the easiest mistake while configuring. You need an iPhone (no jailbreak), a Bluetooth HID or OTG HID hardware path (the thing that simulates the keyboard), the EasyClick console, and the target Shortcut already created in the Shortcuts app on the phone.

The console side has to be configured again. Full Keyboard Access - Commands on the device decides what the phone does after that combo is pressed. Add keyboard shortcut in the console decides which keys the hardware sends when the script calls keyPressChar. Without the first, the system has no action for the combo. Without the second, the hardware has no keys to send when the script calls keyPressChar. Every shortcut binding needs both sides. Keep a shortcut map: the device combo, the console combo, the command or Shortcut, and the name the script calls.

Three cases: Notification Center, typing text, downloading a video

Case one is a shortcut that opens Notification Center. On the phone, go to Settings - Accessibility - Keyboards and Typing - Full Keyboard Access - Commands, find Notification Center, and tap it. A keyboard-shortcut dialog appears. In the console, right-click, open Bluetooth BLE settings, choose Add keyboard shortcut, set the combo to gui, type the character b, and click Send. The shortcut in the dialog on the phone changes. Tap Done. Open Add keyboard shortcut again, enter the same combo gui+b, and click Send. The phone switches to Notification Center. In the script, bleEvent.keyPressChar triggers the same result. Other system commands and Shortcuts use this same binding flow.

The chain is: command on the device, shortcut in the console, trigger from the script. Once it runs, you know the hardware can send the combo and the device can respond. Later, more complicated cases sit on this chain. Two easy mistakes: after the dialog appears on the device, check whether the current combo is already taken; after the console sends, wait until the device shows the change, then tap Done. If the order is wrong, the mapping does not take effect.

Case two types text with a Shortcut. It is also one of the three levels of iOS automation input. The chain is:

Shortcut on the phone: request the computer API → write the content to the clipboard → paste
↓
Full Keyboard Access - Commands: find the Shortcut → bind a shortcut
↓
Console: add the same shortcut (for example gui+u)
↓
Script: trigger → the Shortcut runs → the text enters the field

Add a device vibration inside the Shortcut so the data can still be fetched in the background. At the end, call back the suc API so the program knows this step finished. A configured Shortcut can be shared to other phones. Without the proxy there is no inputText, and the usual way to put text into a field is the clipboard plus paste. The Shortcut fetches the clipboard contents from an API on the computer. The script only triggers the shortcut once. The three input paths:

Path Depends on Traits Fits
inputText Proxy mode System-level input, fast Proxy cases that need system-level input
imeApi input method Offline main program Proxy-free input, needs the input method configured Offline / proxy-free cases
Shortcuts clipboard Shortcut + keyboard shortcut Proxy-free, a short chain, can be shared and reused Proxy-free cases, combined actions

When the proxy is available, use inputText first. When there is no proxy and typing is frequent, use imeApi. When it happens rarely, or you also need downloads and data fetching, use a Shortcut. Three things help it stay reliable. Add a vibration, and on the script side confirm completion with a sensor or a log, without waiting blind. The Shortcut calls back suc at the end, and the script continues from that callback. After the trigger, leave 0.5 to 2 seconds before the next step.

Case three downloads a video into the photo library with a Shortcut. Without a proxy IPA, create a Shortcut that calls Get Contents of URL twice. The first call gets the real resource URL and handles redirects and short links. The second call fetches the video from the real URL and saves it to the photo library. Bind a shortcut. In this case it is gui+i. After the script triggers, the video is in the photo library. Direct links, and downloads whose redirect can be resolved, can use this. Resources that need a login session or a signed request are beyond a Shortcut. Those go back to proxy mode or a dedicated script. Run it once by hand on the phone, and bind the shortcut only after the download succeeds. If the manual run fails, the scripted run will fail too.

A common Shortcuts case is that it runs by hand and fails from the script. First run it once in the Shortcuts app and confirm the actions themselves are fine. Then press the combo once by hand on the phone and confirm the trigger chain works. Then trigger it from the script and confirm the result with a screenshot. The trigger, the wait, and the confirmation should be visible in a log or a screenshot.

Troubleshooting, script calls, and rolling out to more devices

What you see Cause What to do
The shortcut does nothing The command is not configured on the device, or the combos do not match Check that the device combo and the console combo match character by character
The system already uses the combo Conflict with an existing system shortcut Switch to a combo for your job, and avoid common system keys
The Shortcut does not run That Shortcut is not bound in the command list Find the Shortcut under Full Keyboard Access - Commands and bind it
The text never enters the field The clipboard write failed, or the paste happened at the wrong time Confirm the Shortcut can fetch the data; focus the field before the trigger
The download fails The resource needs a login session, or it is not a direct link Verify the Shortcut by hand. If that fails, use another path

Full Keyboard Access reserves a number of combos, such as gui+h for Home and gui+space for Search. Before you invent a combo, look at the ones already taken in the Commands list on the device. Stay away from common system actions, and pick a letter whose meaning is clear for the job. On a conflict, change the letter and keep the modifier as gui (Command). Shift and ctrl combos mean something else inside some apps. Script calls:

Case Call
Bluetooth path triggers the shortcut bleEvent.keyPressChar(combo, character)
OTG path triggers the shortcut otgEvent.keyPressChar(combo, character)
Several actions in a row Call keyPressChar several times in order
Used with typing Trigger the clipboard-paste Shortcut

After one phone works, rolling the same setup out to many phones has three parts. Shortcuts can be shared and pushed in bulk, and the Full Keyboard Access - Commands binding on each device still has to be confirmed on that device. Once there are many devices, the shortcut map is what you use to debug, and it has to be updated as you change bindings. For a new iOS version, verify the binding on one test phone before you decide whether to upgrade the whole fleet.

About EasyClick: A mobile automation script development platform covering three phone ecosystems: Android without root, iOS without jailbreak, and HarmonyOS. It also offers Apple script writing, Apple cluster control, Android cluster control, remote cloud control, and AI phone cluster control. → Explore all products

Ready to build it for real?

Every approach in this article can be built on the EasyClick phone automation platform — full documentation, developer tools and cluster/cloud-control products, free to try.

Visit EasyClick →