Install

Install LinPad

LinPad is sideloaded: you install it with your own Apple ID. It is not on the App Store and does not need a jailbreak.

Status: the first public release (v1.0) is being prepared. The source below starts listing LinPad when it is published on GitHub Releases. Until then you can build it from source.

Requirements

iPadApple Silicon (M1 or newer). Developed on an iPad Air with M3. 8 GB of memory is recommended for VS Code.
iPadOS17 or later.
StorageSeveral GB free: the Linux system unpacks to about 2.3 GB, and apps you add take more.
Apple IDFree or paid. A free Apple ID's apps expire after 7 days unless refreshed.
KeyboardOptional but recommended. Trackpad, mouse and touch all work.

Option A: SideStore or AltStore

Set up your sideloader

Install SideStore or AltStore following their own guides.

Add the LinPad source

https://raw.githubusercontent.com/fspecii/LinPad/main/release/source.json

In SideStore: Sources › Add, paste the URL.

Install LinPad

Install it from the source. Updates appear in the sideloader, and LinPad also tells you about them in Settings › Updates.

Option B: install the IPA

Each release has LinPad-<version>.ipa. Install it with iloader, Sideloadly or Xcode, signed with your own Apple ID. Releases are not signed with the project's certificate on purpose.

First launch

LinPad unpacks its Linux system once, then opens a short setup: pick a layout, a colour theme and a wallpaper, tick the optional apps you want, and try the keyboard shortcuts. At the end, "Show Me" opens a browser, a terminal and Files tiled side by side.

Fast mode (native JIT)

iPadOS only lets an app generate native code while a debugger is attached. LinPad asks StikDebug to attach at launch, then runs Linux programs as native ARM64 code. Without it everything still works, more slowly, in compatibility mode.

  1. Install StikDebug and LocalDevVPN.
  2. Turn on Developer Mode on the iPad.
  3. Make a pairing file for the iPad on a computer (iloader can do it) and import it into StikDebug, following StikDebug's guide.
  4. Connect LocalDevVPN.
  5. In LinPad, open Settings › Fast Mode. It checks each step, has a button for each, and a "Test now" button.

LocalDevVPN uses the iPad's single VPN slot, so it conflicts with another VPN while connected. Fast mode has not been benchmarked on an iPad yet; the 4.8× figure is the geometric mean of our benchmarks on an M4 Mac.

Updates and your files

Option C: build from source

You need a Mac with Xcode, Homebrew llvm lld meson ninja libarchive, and libimobiledevice.

export PATH=/opt/homebrew/opt/lld/bin:/opt/homebrew/opt/llvm/bin:$PATH

gpu/build-third-party.sh          # virglrenderer + MoltenVK (once)
release/build-rootfs.sh           # the Alpine system image (~50 min)

xcodebuild -project iSH.xcodeproj -target iSH-ARM64 -configuration Release -sdk iphoneos \
  -allowProvisioningUpdates SYMROOT=$PWD/build-ios-release IPHONEOS_DEPLOYMENT_TARGET=17.0 \
  DEVELOPMENT_TEAM=<your team> ISH_JIT_BUILD=enabled build

release/embed-rootfs.sh --device "build-ios-release/Release-iphoneos/iSH ARM64.app" \
  release/out/ish-linux-rootfs-arm64.tar.gz
ideviceinstaller install "build-ios-release/Release-iphoneos/iSH ARM64.app"

The full guide is release/INSTALL-DEVICE.md.

Visual Studio Code and Claude Code are not part of LinPad's releases. They are downloaded on your iPad from Settings › Apps when you choose them.