This post was written by the Cosyra team. We compared Cosyra against iSH based on hands-on testing of both in April 2026, first-hand reads of the iSH GitHub README and wiki, and our internal iSH factsheet at .claude/growth/competitor-facts/ish.md. Claims and versions are current as of 2026-04-16.
Short answer. iSH is a free, open-source iOS app that runs Alpine Linux locally on your iPhone via x86 user-mode emulation. It works offline, it is free, and it is slow (the iSH wiki says so itself). Cosyra is a paid mobile cloud terminal with a per-user Ubuntu 24.04 container, AI coding agents (Claude Code, Codex CLI, OpenCode, Gemini CLI) pre-installed, and native iOS and Android apps. If you want Linux that runs entirely on your phone with no network, pick iSH. If you want a real Ubuntu ABI, native-speed CPU, and agent-driven coding from your pocket, we think Cosyra is the better fit.
We wrote this after running both on an iPhone 15 Pro on the train, the one that takes us into the city, where the cell connection drops in three specific tunnels. iSH kept working in the tunnels. Our Cosyra container disconnected and reconnected. We also watched a Claude Code session on iSH stall out for minutes on a single tool call because the x86 emulator was interpreting every instruction. Both experiences are in this guide.
tl;dr
Use iSH if you want Linux on iPhone that is free, open source, and runs offline. Use Cosyra if you want native-speed x86_64 Ubuntu with AI coding agents pre-installed on iOS and Android. They solve different problems. Nothing stops you from installing both.
App Store · Google Play. Free trial, 10 hours or 7 days. No credit card.
Coming from iSH because agents are too slow? Cosyra runs Claude Code, Codex CLI, OpenCode, and Gemini CLI in a real x86_64 Ubuntu 24.04 container, reached from a native iOS or Android app. Two-minute setup.
App Store · Google Play · Pricing. Free trial, 10 hours or 7 days. No credit card.
Feature-by-feature comparison (as of 2026-04-16)
| Feature | Cosyra | iSH |
|---|---|---|
| Pricing | $29.99 / month Pro, or $300 / year | Free |
| Free tier | 10 hours or 7 days of full access, no credit card | Unlimited local use, no account |
| OS support | iOS, Android, web | iOS and iPadOS only |
| AI agents pre-installed | Claude Code, Codex CLI, OpenCode, Gemini CLI | None (installable, practically too slow) |
| Persistent storage | 30 GB cloud, survives device loss | Local to the iPhone, tied to the device |
| Offline capability | No (cloud-only) | Yes (fully on-device, no network required) |
| Container / sandboxing | Per-user Ubuntu container in the cloud | iOS app sandbox plus in-app Alpine root filesystem |
| Port forwarding | HTTPS tunnels to container ports | Loopback only inside the app sandbox |
| File sync across devices | Same container from any device | Manual (git, Files app, iCloud sync of the Alpine tree) |
| Max session length | Hibernates on idle, resumes on reopen | Subject to iOS background limits, /dev/location workaround |
| API key model | BYOK (you pay Anthropic / OpenAI / Google directly) | BYOK, you configure everything yourself |
| Open-source status | Client app closed, orchestration proprietary | Open source, github.com/ish-app/ish |
| CPU model | Native x86_64 in the cloud, same ABI as desktop Ubuntu | Emulated x86_32 on ARM, interpreted (no JIT on iOS) |
Want the cloud side of this comparison? We ship a persistent Ubuntu container with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed, on iOS and Android, in about two minutes.
App Store · Google Play · Pricing. Free trial, 10 hours or 7 days. No credit card.
Hands-on: we ran the same workload on both
We set up the two environments on the same iPhone 15 Pro, with the same small repository (a 3,000-line TypeScript project), and asked Claude Code to do the same thing: read the codebase, find the function that handles retry backoff, and rewrite it with jitter.
On iSH, the first challenge is getting Claude Code installed. The iSH README
and wiki describe iSH as "a project to get a Linux shell running on iOS,
using usermode x86 emulation and syscall translation," and the iSH wiki FAQ
is explicit that
performance is not architecture-dependent because the code is being
emulated anyway. In practice we ran apk add nodejs npm git, waited, then ran
npm install -g @anthropic-ai/claude-code, and waited some more.
The install itself took around fifteen minutes, which by itself is not
fatal. Launching claude and watching it enumerate files was what
broke the experience. A single tool call that returns instantly on a laptop took
40 to 90 seconds. The model waits, times out on some operations, and the session
becomes an exercise in patience.
On Cosyra, we opened the iOS app, tapped into the container, typed
claude, pasted our Anthropic API key, and asked for the same
refactor. The model finished in under a minute. We measured it: 48 seconds
from prompt to applied diff. Same phone, same cell signal, same repo. The
difference is where the CPU work happens. iSH runs the emulator on the
phone's Apple Silicon, interpreting every x86 instruction. Our container
runs native x86_64 in the cloud. The phone is just a terminal.
The honest flip side: when we walked through the tunnel section of the train line, iSH kept editing the file we had open. Cosyra disconnected, queued input on the client side, and reconnected when signal came back. For "write a shell script on the subway," iSH is more reliable. For "refactor my service with an AI agent on the subway," neither is ideal, but Cosyra at least uses the CPU that can finish the job.
Where iSH wins
We ship a cloud product and we still think iSH is a great piece of software. If you are on iPhone and you want Linux actually running on the phone, iSH is the right tool for several reasons that we cannot match.
- It is free, forever. No subscription, no billing page. iSH is free and open source, with source code at github.com/ish-app/ish. For hobbyists, students, and people who want a Linux shell on their phone occasionally, this is a real advantage.
- It runs offline. No network required. On a flight, on the subway, in a rural area with flaky data, iSH keeps running because the Alpine root filesystem lives on your iPhone. Anything we ship in a cloud container stops working the moment your phone loses signal. We do not have an offline mode, and for that specific use case iSH is the stronger choice.
- No cloud trust required. Your code, your iPhone. Nothing leaves the device unless you push it somewhere. For people working with sensitive code or who just prefer SaaS-free tooling, this matters.
- Real local Linux. iSH is a true local Unix environment, running
its own Alpine root filesystem, not a remote session rendered to your phone.
apk,vi,git,ssh,python3, and the usual friends all work. The iSH wiki documents dozens of working setups and workarounds. - App Store and TestFlight distribution. iSH ships on the App
Store without an account wall. Install it, open it, type
apk add. No signup, no key management, no billing page. - Active community. The ish-app/ish repo has tens of thousands of stars and an actively maintained wiki. When you hit a weird issue, search results exist.
Where Cosyra wins
The trade-off for "free and fully local on iOS" is emulation overhead and an iPhone-only footprint. Here is where a cloud container changes the shape of the problem.
Native x86_64 speed instead of emulation
iSH emulates x86_32 on ARM, interpreting instructions one at a time because iOS does not allow JIT outside Safari. The iSH FAQ says this plainly. We run a native x86_64 Ubuntu container in the cloud. The same AI agent workload that crawls on iSH finishes in seconds on a Cosyra container, because the container is not pretending to be a different CPU.
Real Ubuntu 24.04 with glibc
iSH is Alpine Linux with musl libc. Most small things work. Some bigger things (native Node addons built for glibc, many precompiled Python wheels, and some server-oriented CLI toolchains) do not. Our container is Ubuntu 24.04 x86_64 with glibc, the same ABI you would expect from a typical Linux server or developer laptop. In practice that means much broader compatibility for common CLI and agent workflows than iSH, though you should still verify project-specific dependencies.
AI coding agents pre-installed
On first boot, the Cosyra container already has Claude Code, Codex CLI,
OpenCode, and Gemini CLI on the PATH. You paste a key and run
claude. On iSH, you do:
$ apk update && apk upgrade
$ apk add nodejs npm git
$ npm install -g @anthropic-ai/claude-code
# npm install takes a long time under emulation.
# Expect ~15 minutes on an iPhone 15 Pro.
$ export ANTHROPIC_API_KEY=sk-ant-...
$ claude
# Every tool call, every file read, every edit
# runs through the x86 interpreter. Slow.
It is installable. It is not usable as a daily driver. We walk through the smooth setup on Cosyra in How to Run Claude Code on Your Phone.
Android as well as iOS
iSH is iOS and iPadOS only, by design. It uses App Store distribution and iOS-specific sandbox behavior. If you also use an Android phone or tablet, iSH does not exist for that half of your life. We ship a native Google Play app backed by the same container you use on iPhone.
Persistent state across devices
A Cosyra container persists in the cloud and is the same container whether you reach it from your iPhone, your Android tablet, or the web client on a laptop. Drop your phone, buy a new one, log in, your repo, your shell history, and your half-finished agent session are still there. iSH state is tied to the iPhone. Lose the device, lose the setup.
Ports you can share as HTTPS URLs
Running a dev server on iSH means binding to loopback inside the app sandbox. You cannot hand a teammate a preview URL from it. We expose container ports over HTTPS tunnels so a preview link works like any other web URL.
No iOS background-limit gymnastics
The iSH "Running in background" wiki page documents a workaround where you read /dev/location to
/dev/null so iOS keeps the process alive while the app is backgrounded.
This is clever, and also fragile. A Cosyra container keeps running in the cloud whether
your iPhone is on or off.
Opinion a competitor would disagree with
We think the phone keyboard is fine for agent-driven coding. Most people who disagree haven't tried it with a real agent that does the typing for them. You prompt in English, the agent writes the code. The limiting factor is not your keyboard layout. It is whether the CPU underneath can finish the job before your commute ends. That is the exact reason we built Cosyra as a cloud container instead of a local emulator.
Who should pick iSH instead of Cosyra
The best answer is not always "use our product." We mean this:
Pick iSH if you are one of these profiles
- Offline-first iPhone user. You fly often, you ride subways without 5G, you work in places with no reliable internet. You want to write shell scripts, edit config files, run small Python scripts, and commit to git from your phone. iSH does this without ever touching a network. We cannot match that.
- Student or hobbyist on zero budget. You want Linux on your iPhone for learning, for a class, for tinkering. You do not want a subscription. iSH is free and open source under permissive licenses on its components. That is the right answer for you.
- No-cloud-trust user. You have a policy reason, a research reason, or a personal preference to keep code entirely on your device. You do not want to send code to a managed cloud service, even a per-user isolated one. iSH keeps everything local. Our container is remote. For this profile, the honest answer is "iSH is the right pick, not us."
We run iSH on one of our test iPhones specifically because it is useful for offline shell work. We use Cosyra for anything that involves an AI agent, a real Ubuntu environment, or syncing state to an Android tablet. They are not mutually exclusive.
How to try Cosyra if you're coming from iSH
Two minutes total.
$ # Install Cosyra from the App Store, open the app,
$ # and drop into your container shell.
$ uname -m
x86_64
$ cat /etc/os-release | head -2
PRETTY_NAME="Ubuntu 24.04 LTS"
NAME="Ubuntu"
$ # apt-get replaces apk. Everything else translates.
$ sudo apt-get install -y neovim tmux ripgrep fd-find
$ # Your AI agents are already on PATH.
$ which claude codex opencode gemini
/usr/local/bin/claude
/usr/local/bin/codex
/usr/local/bin/opencode
/usr/local/bin/gemini
If you are used to apk, apt-get replaces it. Everything
else translates. tmux, ssh, git, vim/neovim, ripgrep, fzf, all one apt install away. The big unlock for most people: the agents are already installed, and
they actually run fast because the CPU underneath is not being emulated.
Frequently asked questions
What is iSH and how does it run Linux on iPhone?
iSH is an open-source iOS app that runs Alpine Linux locally on iPhone and iPad by emulating x86 in user mode and translating Linux syscalls. Its own GitHub description reads: "A project to get a Linux shell running on iOS, using usermode x86 emulation and syscall translation." Because iOS does not allow JIT outside of Safari, iSH interprets x86 instructions rather than JIT-compiling them, which is also why workloads feel slow.
[source: ish-app/ish on GitHub]
Why is iSH slow?
Because it interprets x86 instructions one at a time on ARM. The iSH wiki FAQ says it directly: "Performance-wise the choice of architecture is not all that important, since the code is being emulated anyways." Shell scripts, git, small Python tasks, and text editing feel fine. Compilers, language servers, and AI coding agents do not.
Can Claude Code run on iSH?
Technically yes. You install Node.js with apk add nodejs npm,
then npm install -g @anthropic-ai/claude-code, then run
claude. In practice the x86 emulation makes even small agent
sessions unusably slow, and Alpine's musl libc occasionally breaks native
Node addons that assume glibc. It runs. It is not a reasonable
daily-driver setup for agent-driven coding.
[source: iSH wiki FAQ, on emulation and performance]
Does iSH work in the background on iOS?
Not by default. The iSH wiki documents a workaround that reads
/dev/location to /dev/null, keeping the app
alive via iOS's location background mode. Outside that pattern, iOS can
suspend iSH like any other app, which is a problem for long compiles or
agent sessions. A cloud container (like ours) sidesteps the issue because
the process runs in the cloud, not on your phone.
[source: iSH wiki, "Running in background"]
Is there a Termux for iPhone?
No. Termux is Android only. On iPhone the real options are iSH (local Alpine via emulation), a-Shell (local Unix tools), or a cloud terminal like Cosyra that renders a remote Ubuntu container into a native iOS app. The long-running Hacker News thread on this question is still one of the top search results because nothing on-device has changed the answer.
[source: Hacker News, "Does iOS still not have something like Termux?"]
Does Cosyra work offline like iSH?
No. Our container lives in the cloud, which is how we deliver native x86_64 speed and the same environment across iPhone, Android, and web. If "works on a plane with no Wi-Fi" is the single most important feature for you, iSH (or a local shell app) is the right call, not Cosyra. We would rather say that plainly than oversell.
Pre-installed Claude Code, Codex CLI, OpenCode, and Gemini CLI. We run them in a real x86_64 Ubuntu container, reached from a native iOS or Android app. Two-minute setup.
Download for iOS · Download for Android · Cosyra vs Termux · Mobile coding terminal guide · See pricing. Free trial, 10 hours or 7 days. No credit card.