iSH 1.3.2 translates 32-bit x86 Linux calls on iOS
iSH 1.3.2 gives an iPhone or iPad a local Alpine shell without running a full Linux kernel. Its emulator executes 32-bit x86 instructions, and a compatibility layer translates Linux system calls into operations iOS can perform. Shell basics can feel convincingly Linux-like, while a program that reaches an untranslated syscall can stop with Bad system call or function not implemented.
The app works best as a compact command-line environment. You can manage Alpine packages, edit files, run scripts, and use network clients inside its compatibility limits. Installing a package with apk does not prove it will work. The package manager checks architecture and dependencies; it cannot prove that every instruction, signal, socket operation, or kernel interface used later has an iSH implementation.
The 2,258-file source tree is harder than the App Store install
The repository had 2,258 files, about 335,689 source lines, and a 26 MB checkout in our measurement. Its README tells contributors to clone recursively because iSH has a Git submodule. A command-line build also needs Python 3, Meson, Ninja, Clang and LLD, sqlite3, and libarchive. Building the iOS app adds Xcode, a unique root bundle identifier, and an Apple development team setting.
Most users should begin with the App Store or TestFlight links in the README. Source builders have a reasonable map, but several native tools must line up before Xcode can run its scripts. Licensing is GPLv3 with additional iOS terms, and contributions after a named 2018 commit are also available under GPLv2. The copyright holders allow otherwise compliant App Store distribution despite conflicts between GPL rights and store terms.
What happened when we ran it
Our sandbox entered deps/libapps, the JavaScript submodule used for libdot, hterm, and related web applications. Npm installation succeeded in 75 seconds, pulling 938 packages and consuming 375 MB. The measured package exposed no build script and no test script, so our harness skipped both steps. This was not an Xcode compile, an emulator run, or an App Store binary test.
Npm audit found 26 known vulnerabilities in that installed tree: 0 critical, 17 high, 8 moderate, and 1 low. The repository scan also found 5 CI workflow files, a Dockerfile, and a tests directory. Those signals describe the wider checkout, while the audit belongs to deps/libapps. A maintainer should separate terminal web dependencies from the C emulator before deciding exposure or upgrade work.
The 26 vulnerabilities sit beside Linux compatibility gaps
Npm audit found 26 known vulnerabilities in the submodule, while Linux compatibility is the more immediate user test. Open pull request 2779 says accept4 currently reaches a stub and returns ENOSYS. Go's networking package does not fall back to plain accept, so the reporter reproduced a Go server failing on its first incoming connection. Python reaches the same path but falls back, which shows why two installed packages can behave differently.
Open issue 2710 reports glib 2.86.3 hitting a bad system call on the stable iSH 1.3.2 App Store build with Alpine v3.23. Issue 58 is the longer syscall tracker, and many entries remain unchecked. Treat that tracker and a real run of your workload as the compatibility list. An installed compiler, editor, server, or runtime is not enough evidence by itself.
iSH 1.3.2 is unreliable as a background server
iSH 1.3.2 still runs under iOS application rules. Open issue 2619 reports an SSH connection closing with a broken pipe within seconds after the app enters the background, despite a location-based keepalive attempt. Issue 1516 describes sessions stalling when the app leaves the foreground or the iPad locks. These are user reports rather than a controlled benchmark, but they identify the wrong use case: an unattended service expected to stay alive.
A 2023 release tag coexists with 2026 code activity
The latest GitHub release is iSH 1.3.2 build 494 from May 20, 2023, while GitHub recorded a repository push on September 20, 2026. That old release tag is not evidence that development stopped. A new keyboard pull request arrived on September 21, and other current pull requests address terminal defaults, missing instructions, crashes, and syscall behavior. Work continues even though App Store release history moves more slowly.
GitHub listed 645 open issues and pull requests, split into 603 issues and 42 pull requests, alongside 20,493 stars. The large counts show attention and a heavy triage burden at the same time; they are not 645 confirmed bugs. iSH is established enough to have years of hardware, package, and iOS reports, yet its compatibility surface keeps moving as Linux software and Apple's platform change.
Our 75-second submodule install supports a narrow recommendation
Our 75-second run says nothing about iSH's emulation speed, but its 938 packages and 26 audit findings make the bundled terminal tree worth maintenance attention. iSH remains useful when the goal is a shell, a script, or an SSH client you can verify on the device. The moment your requirement says Docker, complete syscall coverage, or dependable background service, the fit breaks down.
a-Shell is the closer choice for bundled local commands. Blink Shell fits better when the workload can live on a real remote Linux host, and UTM is the option to investigate for a fuller guest operating system. Pick iSH when its Alpine package environment is itself useful, then test the exact commands you depend on before storing important work there.

