Short answer. Cosyra vs Crush is two different shapes, not a head-to-head. Crush is Charm's terminal AI coding agent: a single Go binary, source-available under FSL-1.1-MIT, free to run, that talks to 20+ model providers. But it has no mobile app, so on a phone it only runs inside a terminal — Termux on Android, and nothing native on iOS. Cosyra is a hosted Ubuntu 24.04 container you reach from native iOS and Android apps, with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed, and Crush installs on top in one command. If you own a machine that stays on, run Crush. If the device in your hand is a phone, we think Cosyra is the better fit.
We wrote this after running both: Crush on a Linux laptop the way Charm intends, then the same kind of agent loop from a cloud container on a phone while standing on a train platform. Both are good. Only one of them runs when there is no laptop in front of you.
Quick decision: pick the path that matches your situation:
- I want the feature-by-feature breakdown → 13-attribute comparison table for 2026
- I want to know where Crush genuinely wins → five things Crush does better, with sources
- I'm leaning toward Crush. Am I right? → honest decision framework (with a "try Crush first if…" subsection)
- I want an agentic terminal on my phone today → two-minute Cosyra setup on iOS or Android
tl;dr
Use Crush if you code on a machine you own and want a free, source-available terminal agent with Charm's terminal polish, 20+ providers, and full local control. Use Cosyra if you want to actually run an agentic terminal from a phone, with agent CLIs already installed in a container that follows you across devices — and add Crush on top in one command. Different tools for different places.
App Store · Google Play. 1 hour free on signup — extend with a 10-hour, 7-day trial. No credit card.
This post was written by the Cosyra team. We compared Cosyra against Crush based on hands-on testing of both — Crush on Linux, Cosyra on iPhone and Android — plus first-hand reads of the Crush GitHub repository via the GitHub API, its README, charm.land, and our internal Crush factsheet. Crush facts and version numbers were re-verified first-hand on 2026-06-30 (v0.81.0, 25,907 stars).
Came here to run Crush on your phone and found there's no app?
We ship a persistent Ubuntu 24.04 container with Claude Code, Codex CLI, OpenCode,
and Gemini CLI pre-installed, reached from a native iOS or Android app. Add
Crush with npm install -g @charmland/crush. 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 Crush compare feature by feature?
The core difference in Cosyra vs Crush is what you get for your money. Crush is free software you run on a machine you supply; Cosyra is the machine itself, hosted and reached from a phone. Crush is source-available and local; Cosyra is a closed-source hosted container. The table below lines them up on thirteen attributes as of 2026-06-30.
| Feature | Cosyra | Crush |
|---|---|---|
| Pricing | $29.99 / month Pro, or $300 / year | Free tool; you pay your own model provider (BYOK) |
| Free tier | 1 hour on signup + 10-hour, 7-day trial, no credit card | Free forever; the binary itself never costs money |
| OS support | iOS, Android (native apps), plus web | macOS, Linux, Windows, Android (Termux); no mobile app |
| AI agents pre-installed | Claude Code, Codex CLI, OpenCode, Gemini CLI in the container | Crush is the agent; 20+ providers, mid-session model switch |
| Persistent storage | 30 GB per user, hibernates and resumes in place | Your local disk; nothing hosted to persist between machines |
| Offline capability | No: the container is in the cloud, needs a network | Partial: the tool runs locally, but the model is a remote API |
| Container sandboxing | Per-user isolated Ubuntu 24.04 container on Azure AKS | None: runs directly on your host OS or Termux userland |
| Port forwarding | HTTPS tunnels to container ports | Local ports directly; remote is up to your own machine |
| File sync across devices | Same container from iPhone, Android, and web | Machine-bound; tied to whatever host you installed it on |
| Max session length | Persistent; hibernates after 10 min idle, resumes | As long as your machine stays on and the terminal is open |
| API key / billing model | BYOK: pay Anthropic / OpenAI / Google directly | BYOK: pay any of 20+ providers directly |
| Open-source status | Closed-source SaaS, orchestration proprietary | Source-available, FSL-1.1-MIT (converts to MIT after 2 years) |
| Runs on a phone | Yes, that is the entire point | Only inside a terminal; Termux on Android, nothing on iOS |
Want the phone-shaped place to run Crush?
Native iOS and Android, Ubuntu 24.04, four agent CLIs already on the PATH, and
npm install -g @charmland/crush adds Crush in one command.
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 actually happens when you try to run Crush on a phone?
On Android, it half-works and then fights you. Crush's README lists Android
among supported systems, which is true in the narrow sense that the Go
binary runs in a Linux userland. But the packaged install is rough. We
followed the Termux path a developer took in
GitHub issue #793: install Node, grab the Termux .deb, run
dpkg -i, and watch it fail with a
Read-only file system error because the package writes to the Android
system root instead of Termux's sandboxed $PREFIX. The
reconstruction below quotes that exact error.
/etc, which Termux mounts read-only. Not
a device capture; error text read from the issue on 2026-06-30.
The workaround is real: install Crush with npm install -g @charmland/crush after Node, or pull the prebuilt android-arm64 archive Charm now
ships, and it runs. But you inherit every Termux trade-off — Android killing background
sessions when you switch apps, ephemeral default storage, manual provisioning
of Node and Git before Crush even starts. On iOS the story is shorter: there is
no terminal that runs arbitrary Linux binaries, so there is no native Crush at
all.
So the honest test is not "Crush on a phone vs Cosyra on a phone." The test
is: you want the thing Crush gives you at a desk — a terminal agent that
reads your code and edits files — while you are away from your machine. We
did exactly that on an iPhone from a train platform. We opened the Cosyra
iOS app, dropped into a full-screen Ubuntu shell, ran npm install -g @charmland/crush, exported a provider key, typed crush, described a change,
and approved the diff. No home server to keep awake, no Termux read-only
error, no $PREFIX archaeology. That is the part a cloud container
reproduces.
Where does Crush beat Cosyra?
Crush is free, local, source-available, provider-flexible, and carries the best terminal UX in the business. We ship a product that competes for the same agentic-coding job, and Crush is still the better answer for several real situations. Here are five, each grounded in a first-hand source.
- It's free software. The Crush binary costs nothing; you pay only your model provider through BYOK. Cosyra's compute past the free hour and trial is a $29.99/month subscription for the hosted machine. If you already have a machine that stays on, Crush's price is hard to beat.
- Source-available and inspectable. Crush is FSL-1.1-MIT: you can read the Go source, build it yourself, and each release converts to MIT after two years. Cosyra's orchestration is closed-source SaaS on Azure. If reading the code matters to you, that is a point for Crush, not us.
- Twenty-plus providers with mid-session switching. Crush talks to Anthropic, OpenAI, Gemini, Groq, Bedrock, VertexAI, and custom OpenAI-compatible endpoints, and lets you swap models mid-conversation while keeping context. Our container is BYOK too, but you pick a CLI per agent rather than switching models inside one agent surface.
- LSP-grade code understanding and MCP. Crush reads your code through the Language Server Protocol for real structural context and connects to MCP servers over stdio, HTTP, and SSE. That is a genuinely strong agent core, and it runs the same whether you launch it on a laptop or inside our container.
- Charm's terminal polish. Crush comes from the Bubble Tea team, and it shows. The Hacker News thread on Crush is full of developers praising the interface. Local-first, offline-capable for the editing parts, and no vendor machine dependency: it is just a binary you control.
Where does Cosyra beat Crush?
Cosyra beats Crush on the one axis Crush does not contest: it runs on a phone with no home server. Add pre-installed agent CLIs, a persistent workspace that follows you across devices, and not having to supply or maintain a machine. These are different-shape strengths, so we are precise about each.
A real terminal on a phone, with Crush one command away
Cosyra gives you an interactive Ubuntu 24.04 shell from the
iOS and Android apps.
Crush's only phone path is Termux on Android, which fights you at install time
(issue #793) and dies when Android reclaims the background session. In our container,
npm install -g @charmland/crush just works, because it is a standard
x86_64 Ubuntu box, not an Android userland. You get Crush plus the four CLIs we
pre-install, all in one shell.
Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed
On a fresh Cosyra container, four agent CLIs are already on the PATH. You
export a provider key and type claude, or add Crush on top. We
pre-install the standalone CLIs because setup friction is the main thing
that kills agent-driven mobile coding; nobody wants to provision Node, Git,
and a toolchain one-handed on a phone keyboard before the first prompt.
$ uname -m
x86_64
$ cat /etc/os-release | head -1
PRETTY_NAME="Ubuntu 24.04 LTS"
$ which claude codex opencode gemini
/usr/local/bin/claude
/usr/local/bin/codex
/usr/local/bin/opencode
/usr/local/bin/gemini
$ npm install -g @charmland/crush
added 1 package in 3s
$ export ANTHROPIC_API_KEY=sk-ant-...
$ crush
A persistent workspace that follows you across devices
Cosyra containers carry 30 GB of persistent storage and hibernate after 10 minutes idle, resuming in place on next open. The same container is reachable from your iPhone, your Android tablet, and the web: clone a repo on the couch, pick it up from the waiting room, finish at your desk, all in one shell. Crush is tied to whatever machine you installed it on; there is no hosted workspace that travels with you, and a Termux session that Android killed does not come back mid-thought.
You don't have to supply or maintain the machine
Crush needs a computer you own and keep running, or a Termux session you babysit. We run the machine for you. There is nothing to leave powered on at home and SSH back into; the container is the thing you connect to. For a developer whose only always-available device is a phone, that removes the biggest hidden dependency in every "run Crush remotely" workaround.
An opinion the Crush crowd would push back on
Here is where we disagree with the prevailing terminal-agent view. Charm's choice to ship a clean binary and let you run it wherever is the right call, and we admire it. But the assumption underneath most terminal-agent culture — that you obviously have a trusty local machine to run the binary on — is the part we think is dated. Plenty of people's primary computer is a phone. We think the phone keyboard is fine for agent-driven coding, because when the agent does the typing your job shrinks to prompt, review, and approve, and that fits a phone on a train fine. Most developers who scoff at coding from a phone have never actually driven an agent from a real shell on one. Crush's fans would likely say a terminal belongs on a machine you own; we built Cosyra because we don't think you should need to own and babysit one.
Who should pick Crush instead of Cosyra?
Pick Crush if you are a desktop-primary developer who wants a free, source-available terminal agent on a machine you already run, you value provider breadth and mid-session model switching, or you want to read and self-build your tooling. We run Crush ourselves on a laptop and Cosyra from our phones; they are not mutually exclusive, and Crush installs cleanly inside Cosyra when you want both.
Try Crush first if you are one of these profiles
- Desktop-primary developer. You code from a laptop or workstation 95% of the time. Crush's free binary and Charm UX make your daily terminal better in ways a mobile container does not try to. For this shape of use, Crush is the right answer, not us.
- Cost-sensitive and machine-rich. You already have a Linux box or Mac that stays on, and you would rather pay $0 for the tool and only your model bill. Crush plus your own hardware beats paying for a hosted container you do not need.
- Source-availability and provider flexibility matter most. You want to inspect the agent, self-build it, or hop across 20+ providers mid-session. Crush's FSL-1.1-MIT source and provider breadth are things Cosyra's closed orchestration does not match.
We use Crush when we are at a desk with a machine already running. We use Cosyra when the only device we have is a phone — and then we install Crush inside it. Different tools, different places. Choose by where you are, not by which is "better."
How do you try Cosyra if you're coming from Crush?
You try Cosyra from a Crush background in about two minutes: install from
the
App Store or Google Play, open the app, and you land in a fresh Ubuntu 24.04 x86_64 container with
Claude Code, Codex CLI, OpenCode, and Gemini CLI already on PATH. The
git and shell commands you run around Crush translate one-to-one;
the difference is there is no read-only $PREFIX fight and no machine
to keep powered on. If you want Crush specifically, one npm command puts it there.
$ # Install Cosyra from the App Store or Google Play,
$ # open the app, drop into the container shell.
$ uname -m
x86_64
$ git clone https://github.com/you/your-repo
$ cd your-repo
$ npm install -g @charmland/crush
added 1 package in 3s
$ export OPENAI_API_KEY=sk-...
$ crush
# Crush on a real shell in your pocket. No machine to keep on.
If you wrap long Crush sessions so they survive interruptions, the Cosyra
equivalent is tmux: start a named session, detach, and reattach
after your phone locks or the connection drops — the thing a killed Termux
session cannot do. We walk the full Crush-on-mobile flow in our
guide to running Crush on your phone, and the broader setup in
How to Run Claude Code on Your Phone. For the full map of mobile coding options, the
AI coding agents on mobile pillar lays out every route. If your real comparison set is other terminal agents,
the same shape shows up in
OpenCode on your phone,
Cosyra vs Kilo Code (whose CLI
is built on the same OpenCode base), and
Cosyra vs Termux, and the raw
Android-userland trade-offs are in
running a Linux container on Android.
Frequently asked questions
Can you run Crush on an iPhone or Android phone?
Only inside a terminal, and only really on Android. Crush is a single Go
binary, not a phone app. On Android you install a Linux userland like
Termux and run the binary there, though the packaged install is fiddly:
GitHub issue #793 reports the Termux .deb failing with a Read-only
file system error because it writes to the Android system root instead of Termux's
$PREFIX. On iOS there is no terminal that runs arbitrary
Linux binaries, so there is no native Crush path at all. The honest way to
get Crush on a phone is a cloud Linux container you reach from a native
app and install Crush into with one npm command. That is what we built
Cosyra to be.
[source: Crush GitHub issue #793, Termux package fails to install]
Does Crush have a mobile app?
No. Crush's README lists Android among supported operating systems, but that means the Go binary runs in an Android Linux userland (Termux), not that there is a Crush app in the Play Store or App Store. There is no iOS or Android app to download. When people say "Crush on a phone" they mean running the CLI in a terminal, which on a phone is Termux on Android or a cloud container reached from a native app.
[source: Crush GitHub README supported-OS list, verified 2026-06-30]
Is Crush open source?
Not in the OSI sense. Crush is source-available under FSL-1.1-MIT, the Functional Source License. The code is public and free to use, and each release converts to a plain MIT license two years after it ships, but until then the license forbids using Crush to build a competing product. GitHub reports the license as NOASSERTION because FSL is not OSI-approved. So the accurate phrasing is "source-available," not a flat "open source." If you need a truly OSI-open agent, that is a real distinction, and it is a point against both Crush and our closed-source orchestration.
[source: Crush GitHub repository, license FSL-1.1-MIT, verified 2026-06-30]
How much does Crush cost compared to Cosyra?
Crush the tool is free to download and run; you pay your own model provider through BYOK. The only paid plans Crush surfaces are specific model vendors' subscriptions (Synthetic, GLM, Kimi Code, MiniMax), not a Crush license fee. Cosyra is a flat $29.99/month after a free hour on signup. These buy different things: Crush's zero price is for software you run on a machine you already own and keep on; Cosyra's price is the hosted Ubuntu machine and 30 GB of storage itself. It is not a like-for-like dollar comparison, so we do not present it as one.
[source: charm.land, Crush product page, verified 2026-06-30]
Why does the Crush Termux package fail to install on Android?
Because the packaged Termux .deb tries to write into the Android
system root rather than Termux's sandboxed prefix. GitHub issue #793 shows dpkg
failing with "error creating directory ./etc/bash_completion.d: Read-only file
system" — Termux installs everything under
$PREFIX (/data/data/com.termux/files/usr), so a package that targets
/etc cannot write there. The workarounds are to install via npm
(npm install -g @charmland/crush) after installing Node, or
pull the prebuilt android-arm64 binary archive Charm ships, rather than
the .deb. Inside a cloud Ubuntu container this class of Android-userland
friction disappears; the npm install just works.
[source: Crush GitHub issue #793, Read-only file system error]
Is Crush better than OpenCode or Claude Code for coding from a phone?
For the editing experience on a machine you own, Crush is genuinely nice — Charm's terminal UX is a real draw, and the Hacker News thread on Crush is full of people praising the polish. But "from a phone" changes the question. None of these tools ships a phone app; all of them are terminal binaries. So the deciding factor is where the terminal runs. On Cosyra we pre-install Claude Code, Codex CLI, OpenCode, and Gemini CLI in a container you reach from a native iOS or Android app, and Crush installs on top in one command. The agent you pick matters less than having a real shell in your pocket to run it in.
[source: Hacker News discussion on Crush, "Glamourous AI coding agent"]
Pre-installed Claude Code, Codex CLI, OpenCode, and Gemini CLI — and Crush one command away. We run them in a real x86_64 Ubuntu container, reached from a native iOS or Android app. Two-minute setup, no Termux read-only fight.
Crush on your phone · Cosyra vs Termux · AI coding agents on mobile · See pricing. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.