Repolode
ish-app

ish-app/ish

A Linux shell for iOS that runs x86 Linux userspace via usermode emulation and syscall translation, with no jailbreak required.

Stars
20,677
Forks
1,600
Open issues
647
Last commit
15 days ago

What is it?

iSH is a project that brings a Linux shell to iOS. It runs x86 Linux userspace programs by emulating x86 instructions in user mode and translating Linux system calls into iOS equivalents, so the environment runs inside a regular iOS app.

The project includes a custom interpreter that dispatches emulated instructions through chained function pointers ("gadgets") rather than generating machine code. The author reports a speedup of roughly 3-5x over a simple switch-based dispatch, and most of the gadgets are written in assembly.

Besides the iOS app, the repository provides a command line build for testing on other platforms. It can use a self-contained Alpine Linux root filesystem, and it offers configurable logging channels such as strace-style syscall logging and per-instruction tracing.

Key features

  • 01Runs x86 Linux userspace programs on iOS through usermode emulation.
  • 02Translates Linux system calls into iOS equivalents.
  • 03Uses a threaded-code interpreter for faster instruction dispatch.
  • 04Supports running a self-contained Alpine Linux filesystem.
  • 05Provides build-time logging channels including syscall tracing.

Use cases

  • Running Linux command line tools on an iPhone or iPad.
  • Learning how x86 emulation and syscall translation work.
  • Experimenting with a portable Alpine Linux environment on iOS.

Quick start

  1. 1

    Clone the repo with its git submodule

    git submodule update --init
  2. 2

    Install Meson build tool

    pip3 install meson
  3. 3

    Create the build directory with Meson

    meson build
  4. 4

    Build the command line tool with Ninja in the build directory

    ninja

Things to know

  • The main app targets iOS and requires Xcode and an Apple developer setup to build for a device.
  • The metadata reports no clear license (NOASSERTION), so reuse terms are unclear.

Topics

FAQ

What is ish?
A Linux shell for iOS that runs x86 Linux userspace via usermode emulation and syscall translation, with no jailbreak required. iSH is a project that brings a Linux shell to iOS. It runs x86 Linux userspace programs by emulating x86 instructions in user mode and translating Linux system calls into iOS equivalents, so the environment runs inside a regular iOS app.
Is ish free to use? What license does it have?
ish is open source under the Other license. Check the license terms before using it in commercial products.
Is ish still maintained?
Actively maintained. The last commit to ish was on Oct 24, 2026.
What can I use ish for?
Running Linux command line tools on an iPhone or iPad. Learning how x86 emulation and syscall translation work. Experimenting with a portable Alpine Linux environment on iOS.
How do I install ish?
Clone the repo with its git submodule: git submodule update --init Install Meson build tool: pip3 install meson Create the build directory with Meson: meson build Build the command line tool with Ninja in the build directory: ninja
Where can I get ish?
The source code and installation instructions are on GitHub: https://github.com/ish-app/ish

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects