iSH is a Linux shell for iOS that runs on the platform through usermode x86 emulation and syscall translation.
The project solves the problem of running a Linux command-line environment on iOS devices, which normally cannot execute arbitrary binaries. It accomplishes this by emulating an x86 processor in user mode and translating Linux system calls to equivalent iOS operations. This allows users to run a functional Alpine Linux filesystem on their iOS device with a shell interface.
The tool suits developers and power users who need command-line access on iOS for scripting, system administration tasks, or development work. It is available both as an App Store application and through TestFlight beta. The project maintains a wiki with help and tutorials for users getting started. Anyone building from source will need Python 3 with Meson, Ninja, Clang, LLD, sqlite3, and libarchive as dependencies. The build process differs between iOS and command-line testing, with iOS builds managed through Xcode and command-line testing using Meson and Ninja. For debugging, the project provides a ptraceomatic tool that can single-step through program execution on Linux and compare registers at each step. Multiple logging channels are available at build time, including strace for system call logging, instr for instruction-level logging, and verbose for general debug output.
Development activity shows consistent engagement with the issue tracker and commit logs as the primary sources for understanding project status. The project maintains active communication channels including a Discord server for community discussion. Documentation is actively maintained with a Chinese-language README available, and the project explicitly welcomes pull requests to keep translations current.