iloader Keyboard Shortcuts: Complete Guide to Desktop App Hotkeys

The iloader desktop application provides four global keyboard shortcuts—Cmd/Ctrl+P for Pairing, Cmd/Ctrl+R for Refresh, Cmd/Ctrl+Shift+C for Certificates, and Cmd/Ctrl+Shift+A for App IDs—that are handled in src/App.tsx via a global keydown event listener.

The iloader desktop client by nab138 is an Electron/Tauri application for managing iOS devices and certificates. Understanding the available iloader keyboard shortcuts can significantly accelerate your workflow when pairing devices, refreshing connections, or accessing administrative panels. These shortcuts are implemented with platform-aware modifiers, displaying ⌘ on macOS and Ctrl on Windows/Linux.

Available iloader Keyboard Shortcuts

The following table summarizes the four global hotkeys defined in the source code. These combinations are checked in the keydown handler within src/App.tsx (lines 52‑74) and displayed on corresponding UI buttons.

  • Open Pairing Panel: Press ⌘ P on macOS or Ctrl + P on Windows/Linux to open the device pairing interface. This shortcut triggers setOpenModal("pairing") after verifying a device is selected via ensureSelectedDevice().

  • Refresh Device List: Press ⌘ R on macOS or Ctrl + R on Windows/Linux to reload the connected devices list. This executes refreshDevicesRef.current?.() immediately.

  • Open Certificates Panel: Press ⌘ ⇧ C on macOS or Ctrl + Shift + C on Windows/Linux to access the certificates management modal. This requires authentication via ensuredLoggedIn() before calling setOpenModal("certificates").

  • Open App IDs Panel: Press ⌘ ⇧ A on macOS or Ctrl + Shift + A on Windows/Linux to view application identifiers. Like certificates, this checks login status via ensuredLoggedIn() then invokes setOpenModal("appids").

How Keyboard Shortcuts Work in iloader

According to the nab138/iloader source code, shortcut handling relies on a React useEffect hook that registers a global keydown listener. The application detects the current platform through src/PlatformContext.tsx, which returns "mac", "linux", or "windows" to ensure proper modifier key display in the UI labels.

The Global keydown Handler

The core logic resides in src/App.tsx where keyboard events are intercepted and mapped to application actions. The handler checks for platform-appropriate modifiers and prevents default browser behavior using event.preventDefault().

Opening the Pairing Panel

When you trigger the pairing shortcut, the application verifies no Shift key is held and the "p" key is pressed:

// Inside the global keydown handler (src/App.tsx)
if (!event.shiftKey && key === "p") {
  event.preventDefault();
  if (!ensureSelectedDevice()) return;
  setOpenModal("pairing");   // opens the Pairing modal
}

Refreshing the Device List

The refresh shortcut follows a similar pattern, checking for the "r" key without Shift modifier:

// Triggered by ⌘ R / Ctrl + R
if (!event.shiftKey && key === "r") {
  event.preventDefault();
  refreshDevicesRef.current?.();   // reloads the connected devices
}

Accessing Certificates and App IDs

Advanced functions requiring user authentication use Shift-modified shortcuts. The following code handles the Certificates panel:

// Opening Certificates panel (⌘⇧C / Ctrl+Shift+C)
if (event.shiftKey && key === "c") {
  event.preventDefault();
  if (!ensuredLoggedIn()) return;
  setOpenModal("certificates");   // shows the Certificates modal
}

And the App IDs panel:

// Opening App IDs panel (⌘⇧A / Ctrl+Shift+A)
if (event.shiftKey && key === "a") {
  event.preventDefault();
  if (!ensuredLoggedIn()) return;
  setOpenModal("appids");   // shows the App IDs modal
}

UI Integration and Platform Detection

The shortcuts are visually indicated on button labels in the main toolbar (src/App.tsx lines 40, 48, 55, 66) and within the settings panel (src/pages/Settings.tsx). The generic modal component in src/components/Modal.tsx renders the actual panels triggered by these hotkeys. Platform detection in src/PlatformContext.tsx ensures macOS users see ⌘ symbols while Linux and Windows users see Ctrl, maintaining native desktop conventions across all supported operating systems.

Summary

  • iloader provides four primary keyboard shortcuts for rapid navigation: Pairing (Cmd/Ctrl+P), Refresh (Cmd/Ctrl+R), Certificates (Cmd/Ctrl+Shift+C), and App IDs (Cmd/Ctrl+Shift+A).
  • All shortcuts are handled in src/App.tsx via a global keydown event listener registered inside a useEffect hook (lines 52‑74).
  • Platform-specific modifiers are determined by PlatformContext.tsx to ensure proper display of ⌘ versus Ctrl symbols.
  • Authentication-required actions validate login status via ensuredLoggedIn() before opening the corresponding modal components.

Frequently Asked Questions

What are the keyboard shortcuts for iloader on macOS?

On macOS, iloader uses Command-based shortcuts: ⌘ P for Pairing, ⌘ R for Refresh, ⌘ ⇧ C for Certificates, and ⌘ ⇧ A for App IDs. These are defined in the global keydown handler in src/App.tsx and displayed in the UI through platform detection in src/PlatformContext.tsx.

How do I refresh the device list in iloader without using the mouse?

Press Ctrl + R on Windows/Linux or ⌘ R on macOS to trigger an immediate device refresh. This executes refreshDevicesRef.current?.() in src/App.tsx, reloading all connected iOS devices without requiring mouse interaction.

Where are the iloader keyboard shortcuts defined in the source code?

All keyboard shortcut logic resides in src/App.tsx, specifically within a useEffect hook (lines 52‑74) that listens for global keydown events. The platform-specific labels appear in src/pages/Settings.tsx and the main toolbar buttons reference these same combinations.

Do iloader keyboard shortcuts work on Linux?

Yes, iloader fully supports Linux using the same Ctrl-based shortcuts as Windows: Ctrl + P, Ctrl + R, Ctrl + Shift + C, and Ctrl + Shift + A. The PlatformContext.tsx file detects Linux alongside Windows to ensure proper modifier key display throughout the application interface.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →