An x86 PC emulator that runs in the browser, translating machine code to WebAssembly at runtime to boot real operating systems.
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
Clone the repo with its git submodule
git submodule update --init - 2
Install Meson build tool
pip3 install meson - 3
Create the build directory with Meson
meson build - 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
A lightweight CPU emulator framework based on QEMU that runs machine code for multiple architectures through a clean, architecture-neutral API.
A low-level x86 emulator that runs vintage operating systems and software for IBM PC and compatible machines from 1981 onward.
A HarmonyOS app that runs a full arm64 Linux environment with an Alpine shell on phones, tablets and 2in1/PC devices.
A free, open-source macOS app that shows Android emulators, Android phones, iOS simulators and iPhones side by side for mirroring, control and settings changes.
An MCP server that lets AI agents and LLMs automate iOS and Android apps on simulators, emulators and real devices.