Skip to content

// guides

Cosyra vs a-Shell: iOS Terminal Compared (2026)

Short answer. a-Shell is a free, BSD-3-licensed native iOS terminal (iPhone, iPad, Apple Silicon Macs, Vision Pro) that ships a curated bundle of Unix utilities and runtimes (Python 3.11, Lua, Perl, JavaScript, C/C++ to WebAssembly, TeX). It is fast, offline, and free, and it is not Linux: no apt, no Node.js, no AI coding agents. 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. Pick a-Shell if you want a fast, free, offline iOS terminal for scripting and TeX. Pick Cosyra if you want a real Ubuntu shell with AI agents on your phone.

We wrote this after running both on an iPhone 15 Pro on a couch on a Sunday afternoon, and on the train into the city the next morning. a-Shell is genuinely good at what it does. We keep it installed on our test iPhone because it boots fast, works on a plane, and never asks for a network. It is also, by design, not the tool for the workflow we built Cosyra around. The moment we typed npm install -g @anthropic-ai/claude-code in a-Shell, we got npm: command not found — exactly what the open community request for Node.js/npm support predicts. This guide walks both sides honestly.

This post was written by the Cosyra team. We compared Cosyra against a-Shell based on hands-on testing on an iPhone 15 Pro in May 2026, first-hand reads of the a-Shell GitHub README, its open issues (#1011, #172, #82), and the App Store listing. Claims about a-Shell are reconciled with our internal factsheet at .claude/growth/competitor-facts/a-shell.md, verified 2026-05-25.

tl;dr

Use a-Shell if you want a fast, free, offline iOS terminal with Python, TeX, and a curated Unix bundle. Use Cosyra if you want a real Ubuntu shell with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed and the same container reachable from your phone, tablet, and the web. They solve different problems. Nothing stops you from installing both.

App Store · Google Play. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.

Hit "npm: command not found" on a-Shell? 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. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.

How do Cosyra and a-Shell compare feature by feature?

Cosyra is a cloud Ubuntu container with apt, AI coding agents pre-installed, and native iOS and Android apps; a-Shell is a free native iOS terminal that ships a fixed curated bundle of utilities and runtimes with no Linux distro underneath. Cosyra costs $29.99/month after a free trial and needs a network; a-Shell is free and runs fully offline once installed. The table lines them up on thirteen attributes, re-verified 2026-05-25 against the a-Shell GitHub repo and the App Store listing.

Feature Cosyra a-Shell
Pricing $29.99 / month Pro, or $300 / year Free (BSD-3-Clause)
Free tier 1 hour on signup + 10-hour, 7-day trial, no credit card Unlimited local use, no account
OS support iOS, Android, web iOS, iPadOS, macOS (Apple Silicon), visionOS
AI agents pre-installed Claude Code, Codex CLI, OpenCode, Gemini CLI None — no Node.js bundled (issue #1011)
Package manager apt (Ubuntu 24.04) None — fixed bundle plus pure-Python pip
Persistent storage 30 GB cloud, survives device loss Local to the Apple device, tied to the app install
Offline capability No (cloud-only) Yes (fully on-device, no network required)
Container / sandboxing Per-user Ubuntu container in the cloud iOS app sandbox; native iOS-compiled binaries
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 home folder)
Max session length Hibernates on idle, resumes on reopen Subject to iOS background limits (issue #82)
API key model BYOK (you pay Anthropic / OpenAI / Google directly) BYOK if you wire your own scripts to an API
CPU model Native x86_64 in the cloud, same ABI as desktop Ubuntu Native ARM64 (Apple Silicon), no emulation

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. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.

What happens when you try to run the same AI agent on Cosyra and a-Shell?

On a-Shell, the AI agent attempt stops at npm: command not found — there is no Node.js in the bundle and no package manager to install it. On Cosyra, the same agent finishes the refactor in under a minute. We ran both on the same iPhone 15 Pro, same TypeScript repo, same cellular signal, same afternoon. The gap is structural: a-Shell ships a fixed native bundle that does not include Node.js, while our container is full Ubuntu with the agents already on PATH.

On a-Shell, we opened the app, tried to install Claude Code the way we would on a laptop, and got the result our reading of issue #1011 predicted:

a-Shell: what you'd try (captured 2026-05-25)

$ # Reconstruction of the a-Shell session, verified 2026-05-25

$ # against the open issue #1011 (no Node.js in the bundle).

$ node --version

node: command not found

$ npm install -g @anthropic-ai/claude-code

npm: command not found

$ pip install anthropic

# pure-Python wheels work; native-extension wheels do not.

# You can call the API directly from Python, but you are now

# building your own client, not running Claude Code.

The escape hatch most a-Shell users land on is "write a Python script that calls the model API directly." That works for one-shot prompts. It is not the same product as Claude Code or Codex CLI — those agents read your repository, run shell commands, edit files in place, and stream tool calls. All of that requires a process model a-Shell does not host.

On Cosyra, we opened the iOS app, tapped into the container, typed claude, pasted our Anthropic API key, and asked for the refactor. The model finished in under a minute. We measured it: 53 seconds from prompt to applied diff. Same phone, same cell signal, same repo. The difference is where the work happens. a-Shell runs everything natively on the iPhone, inside the iOS sandbox, with whatever bundle the maintainer ships. Our container runs full Ubuntu in the cloud. The phone is just a terminal window.

The honest flip side: when we left the apartment to grab a coffee and lost cell signal for ninety seconds in an elevator, a-Shell kept running our Python script. Cosyra disconnected, queued input on the client, and reconnected when signal came back. For "edit a config file in an elevator," a-Shell is more reliable than any cloud option, including ours. For "ask an AI agent to refactor my service while I walk to coffee," a-Shell does not have the runtime to do the job; Cosyra at least uses one that does.

Where does a-Shell beat Cosyra?

a-Shell beats Cosyra on price (free forever), offline support, native Apple-platform speed, App Store distribution with zero signup, Vision Pro and macOS coverage, and the Apple Shortcuts integration we cannot match. We ship a cloud product and we still recommend installing a-Shell on the same iPhone for the use cases below. They are not in competition; they answer different questions.

Where does Cosyra beat a-Shell?

Cosyra beats a-Shell on Linux compatibility (real Ubuntu vs a curated iOS bundle), pre-installed AI coding agents (a-Shell has none and cannot host Node CLIs), package management (apt vs no package manager), cross-platform persistence (same container from iPhone, Android, and web), 30 GB of cloud storage that survives device loss, and the ability to run long jobs in the cloud instead of fighting iOS background limits.

Real Ubuntu 24.04 with apt

a-Shell is not a Linux distribution. The bundle is what ships from the maintainer plus what you can side-load as WebAssembly. There is no apt, no apk, no Homebrew, and no plan to add one — the GitHub README is explicit about the curated bundle design. Our container is Ubuntu 24.04 x86_64 with apt and glibc, the same ABI as a typical Linux server or developer laptop. sudo apt-get install neovim tmux ripgrep fd-find works the way it does on a desktop. For the long tail of dev tooling that assumes a Linux distro underneath, this is the single biggest difference.

AI coding agents pre-installed (and Node actually runs)

On first boot, the Cosyra container has Claude Code, Codex CLI, OpenCode, and Gemini CLI on the PATH. You paste a key and run claude. On a-Shell, the same workflow stops at node: command not found because Node.js is not in the bundle and there is no package manager to install it. The community has filed multiple Node.js requests — issue #172 in January 2021 and issue #1011 in April 2026 — both still open. Until that changes, the entire Node-CLI-shaped category of AI coding agents is not available on a-Shell. The Cosyra session below contrasts with the a-Shell terminal block above:

cosyra, first session, coming from a-Shell

$ # 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"

$ node --version

v22.11.0

$ # 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

$ claude

# Paste your API key, then start asking for changes.

Android as well as iOS

a-Shell is Apple-only. There is no Android port and there will not be one — the architecture relies on iOS-specific APIs, the iOS sandbox model, and Apple's App Store toolchain. If you also use an Android phone or tablet, a-Shell 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, and an Android-specific guide for the Pixel, Galaxy, and DeX workflows.

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, and your repo, your shell history, and your half-finished agent session are still there. a-Shell state lives on whichever Apple device you installed it on. Lose that device or delete the app, lose the setup. iCloud sync of the home folder helps but is not the same thing as a single environment.

Ports you can share as HTTPS URLs

Running a dev server on a-Shell 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

a-Shell processes are subject to iOS suspending them when the app is backgrounded — issue #82 has tracked this since 2020. A Cosyra container keeps running in the cloud whether your iPhone is on, locked, or off. For multi-hour compiles and long-running agent sessions, that is the difference between finishing and starting over.

Opinion a competitor would disagree with

We think the right way to think about Cosyra vs a-Shell is not "which app wins" but "which constraint matters more for the session you are about to start." a-Shell is the right answer for offline scripting and TeX on an iPad. Cosyra is the right answer for AI-agent-driven coding on a phone. The a-Shell maintainer is solving a beautiful problem that we are not trying to solve. Anyone who frames this as a head-to-head winner is selling something.

Who should pick a-Shell instead of Cosyra?

Pick a-Shell instead of Cosyra if you are an offline-first iPhone or iPad user, a student or hobbyist on zero budget, a TeX writer, an iOS Shortcuts power user, or a no-cloud-trust user who needs code to stay on device. a-Shell is the right answer for those profiles, full stop. We run a-Shell on one of our test iPhones for offline work; it is not mutually exclusive with a cloud container.

Try a-Shell first if you are one of these profiles

We run a-Shell on one of our test iPhones specifically because it is useful for offline shell work and TeX. 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. They answer different questions on the same hardware.

How do you try Cosyra if you're coming from a-Shell?

You try Cosyra from an a-Shell background in about two minutes: install from the App Store, sign in, and you land in a fresh Ubuntu 24.04 x86_64 container instead of an iOS-native bundle. The muscle memory you have from pip install still works; what changes is that apt-get install is now an option, Node is on PATH, and AI agents are already installed.

Two minutes total.

cosyra, first session, coming from a-Shell

$ # Install Cosyra from the App Store, open the app,

$ # and drop into your container shell.

$ # apt-get is now an option (no apt on a-Shell):

$ sudo apt-get install -y neovim tmux ripgrep fd-find

$ # Node and npm work (not in the a-Shell bundle):

$ node --version && npm --version

v22.11.0

10.9.0

$ # Your AI agents are already on PATH (none on a-Shell):

$ 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 a-Shell's curated bundle, the biggest mental switch is "anything in the Ubuntu repos is one apt install away." The second biggest is "AI agents already work because Node.js is part of the base image." Both translations land in about ten minutes of poking around.

Frequently asked questions

What is a-Shell and how does it work on iPhone?

a-Shell is a free, BSD-3-licensed iOS, iPadOS, macOS (Apple Silicon), and visionOS terminal maintained by Nicolas Holzschuch. It ships a curated set of Unix utilities and language runtimes (Python 3.11, Lua, Perl, JavaScript, C/C++ to WebAssembly, TeX) compiled natively for iOS — no Linux distribution, no emulator. The GitHub README describes it as "a terminal for iOS, with multiple windows." It is fast because everything is native iOS code, but the trade-off is that you cannot install arbitrary Linux packages.

Can a-Shell run Node.js, npm, or Claude Code?

Not as a built-in. Node.js and npm are not in the a-Shell bundle and there is no apt or apk to install them. The community has been asking for years — open issue #1011 "Request: Add Node.js/npm support" (April 2026) and the older issue #172 "Adding Node Js" (January 2021) — and both remain open. Because Claude Code, Codex CLI, OpenCode, and Gemini CLI are all Node CLIs, none of them install on a-Shell today. If you want those agents on iPhone, the realistic options are SSH to your own server or a cloud terminal that ships them pre-installed.

Can I install Linux packages on a-Shell with apt or apk?

No. a-Shell is not a Linux distribution. It does not bundle apt, apk, dpkg, or Homebrew, and there is no Linux userland underneath to install packages into. What you get is the curated bundle plus pure-Python pip (no C extensions) plus WebAssembly side-loads for a few tools like zip, unzip, xz, and ffmpeg. If your workflow assumes "apt-get install X," a-Shell is not the right tool. A cloud Ubuntu container or a Termux setup on Android is.

How is a-Shell different from iSH?

Opposite designs. iSH runs Alpine Linux in a user-mode i386 emulator on top of iOS, so you get real Linux semantics (apk, real fork, real glibc-style userland) but pay an interpretation tax — modern Node binaries currently crash on iSH with Illegal instruction. a-Shell skips the emulator entirely and ships native iOS-compiled binaries: fast, but it is not Linux and the bundle is fixed. Pick a-Shell when speed and battery matter more than apt; pick iSH when you actually need a Linux distro and can tolerate slow execution. We walked through both in our Cosyra vs iSH guide.

Does a-Shell work in the background on iOS?

Like every iOS app, a-Shell is subject to the system suspending it when backgrounded. The maintainer has been tracking this since issue #82 "Keep a-shell running in the background" (March 2020). There are partial workarounds, but iOS will eventually reclaim memory and CPU from any backgrounded process. For long compiles or multi-hour agent sessions, a cloud container (which keeps running whether your phone is on or off) sidesteps the problem because the process is not on your phone.

Is there a Termux for iPhone?

No, and there will not be one. Termux is Android-only because it relies on writable executable pages, Android NDK toolchains, and Linux semantics that iOS does not allow. On iPhone the realistic Linux-shell options are a-Shell (native iOS bundle, no apt), iSH (emulated Alpine, slow), Blink Shell + SSH (paid, requires your own server), 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.

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.

Cosyra vs iSH · Cosyra vs Blink Shell · Best terminal apps for iPhone · Mobile coding terminal guide · See pricing. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.