Short answer. Catnip is an open-source iOS app that wraps a GitHub Codespace with a phone-shaped interface so you can drive Claude Code from an iPhone or iPad. It is a thin client over compute that GitHub owns; if your team already lives on Codespaces and you only want a steering wheel, Catnip is a clean fit. We built Cosyra for a different job: a managed mobile cloud terminal with native iOS and Android apps, backed by a persistent per-user Ubuntu 24.04 x86_64 container on Azure AKS, with Claude Code, Codex CLI, OpenCode, and Gemini CLI already on PATH. If you want one agent on iOS over your existing Codespaces seats, pick Catnip. If you want a real Linux box that follows you across iOS, Android, and web with four agents pre-installed, we think Cosyra is the better fit.
We wrote this after a Saturday on a couch with an iPad, a Pixel 8, and the same small TypeScript repo open in both Catnip and our own Cosyra app. The repo lives on GitHub, so it works in both tools. We asked Claude Code to do the same refactor (find a retry-backoff function and add jitter) and timed the round-trip end to end. Where Catnip stumbled for us was the second half of the workflow: a partner picked up a Pixel 8, and there is no Catnip on Android. Cosyra handled the handoff because the container is not tied to the device. That is the real split between the two products.
This post was written by the Cosyra team. We compared Cosyra against Catnip based on hands-on testing of the W&B Catnip iOS app, the wandb/catnip source on GitHub, the releases page (v0.12.1 on 2026-01-08, re-verified 2026-06-01), the Show HN thread including the verbatim launch quote, and our internal Catnip factsheet at .claude/growth/competitor-facts/catnip.md. Anything we claim below about Catnip shape, pricing, or platform support traces back to those sources.
tl;dr
Use Catnip if you already pay for GitHub Codespaces, code from an iPhone or iPad, and only want Claude Code. Use Cosyra if you want a persistent Ubuntu container with four AI CLIs pre-installed, native iOS and Android apps, and no GitHub dependency. They have similar goals and different shapes. Catnip is a phone client over compute you bring; we own the runtime.
App Store · Google Play. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.
Coming from Catnip because you need Android or non-Codespaces compute? Our persistent Ubuntu container ships with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed, reached from a real iOS app and a real 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.
Two products, two shapes: thin client over Codespaces vs owned runtime
The single most important thing to get straight before reading any feature table is that Catnip and Cosyra solve overlapping user goals with different shapes. Catnip is an open-source iOS app that provisions and drives a GitHub Codespace. The Codespace is the compute; the Catnip app is the steering wheel. Cosyra is a managed mobile cloud terminal that ships its own per-user Ubuntu 24.04 x86_64 container on Azure AKS, plus native iOS and Android apps that talk to it. We own the runtime.
That shape difference is not a minor implementation detail. It cascades into every other comparison. Pricing follows shape: Catnip's app is free under Apache 2.0, so the cost is your Codespaces seat; our cost is the $29.99/month Pro after the free tier and you bring your own model keys. Persistence follows shape: Codespaces auto-shut idle instances and re-provision on next use, while our container hibernates and resumes the same shell session. Platform support follows shape: Catnip is iOS only because the app is the product, and our team has to ship for two platforms because we run the container. Read the rest of this post with the shape difference in mind.
How do Cosyra and Catnip compare feature by feature?
Cosyra is a managed mobile cloud terminal: native iOS and Android apps, persistent Ubuntu container on Azure AKS, four AI CLIs pre-installed, $29.99/month Pro after a 1-hour-on-signup free tier plus an opt-in 10-hour, 7-day trial. Catnip is an open-source iOS-only app that wraps GitHub Codespaces with a Claude Code-centric UI. The table below lines them up on twelve attributes, re-verified 2026-06-01 against the wandb/catnip repo, the App Store listing, and the Show HN launch thread.
| Feature | Cosyra | Catnip |
|---|---|---|
| Pricing | $29.99 / month Pro, or $300 / year (BYOK for models) | App free; compute billed to your GitHub Codespaces seat |
| Free tier | 1 hour on signup + 10-hour, 7-day trial, no credit card | GitHub Codespaces free quota on Free/Pro plans (Show HN quotes 120 hrs/mo) |
| OS support | Native iOS app, native Android app, web | iOS only (universal iPhone + iPad); no Android client |
| Where the code runs | Per-user Ubuntu 24.04 x86_64 on Azure AKS (we own it) | Your GitHub Codespace (GitHub owns the VM) |
| AI agents supported | Claude Code, Codex CLI, OpenCode, Gemini CLI (4 pre-installed) | Claude Code is the primary integration target |
| Persistent storage | 30 GB persistent, hibernates on idle, resumes exact state | Codespaces storage; auto-shutdown of idle instances |
| Git provider lock-in | None. GitHub, GitLab, Bitbucket, self-hosted, or no remote | GitHub only (Codespaces is a GitHub-native product) |
| Open source | No (managed product) | Yes. Apache 2.0, github.com/wandb/catnip |
| Parallel-agent worktrees | Single persistent container; multiple agents share the box | Built-in git-worktree manager for concurrent Claude Code agents |
| API key model | BYOK to Anthropic / OpenAI / Google directly | BYOK to Anthropic (Claude Code's standard auth) |
| Latest release / status | Active, not on a deprecation clock | v0.12.1 on 2026-01-08; iOS app on App Store, repo active |
| Maintainer | Cosyra team (managed product, support included) | Chris van Pelt (vanpelt), under the wandb GitHub org |
Quick read of the table: the rows that look identical (Claude Code support, BYOK to Anthropic, hibernation-style idle handling) are similar. The rows where the products diverge are the ones that decide the pick. Catnip is Apache 2.0 source code you can read, iOS only, GitHub only, and Claude Code-first. We are a managed product, cross-platform, Git-agnostic, and ship four CLIs. Neither product is "better" in the abstract; the right answer depends on which of those rows match your constraints.
Want the runtime side of this comparison? Our container ships with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed, on a real native iOS app and a real Android app, 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 run the same Claude Code task on Catnip and Cosyra?
We picked a 2,800-line TypeScript repo we keep on GitHub specifically for cross-tool tests, asked Claude Code to find a retry-backoff function and add jitter, and walked through both tools start to finish on an iPad on the couch. Catnip booted its Codespace in roughly thirty seconds, ran Claude Code against the cloned repo, and produced the diff. Cosyra was already warm because the container had hibernated from yesterday's session; the same prompt ran in about twelve seconds because there was nothing to provision. Both produced a usable patch. That is the honest baseline: on Claude Code-only iOS workflows, both work.
The two tools diverged when we tried to pick up the work on a different device. We unlocked a Pixel 8 to keep editing. Catnip is iOS only on the App Store today, so there was no Android client to open. The only way to keep going on Android would have been a browser tab into the Codespace, which is exactly the friction Catnip was built to bypass. Our Cosyra Android app opened to the same hibernating container, same shell history, same Claude Code conversation, same uncommitted changes. The cross-device handoff is where shape matters most.
The second divergence came when we asked Codex CLI to do a parallel pass on
the same diff (we wanted to compare patches between agents before
committing). Catnip's primary integration is Claude Code; Codex CLI is not
pre-installed in the wrapped Codespace. Installing it inside the Codespace
is possible, but it is the user's job, and the Catnip UI is not built around
switching agents. On Cosyra, codex,
opencode, and gemini are already on PATH. Switching
from claude to codex is one command. The session below
captures the iOS-then-Android handoff.
$ # iPad, fresh open of the Cosyra iOS app.
$ uname -m && cat /etc/os-release | head -1
x86_64
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
$ cd ~/work/retry-demo && claude
> find the retry-backoff function and add jitter
# diff produced, applied, ~12s wall-clock (warm container).
$ # Lock iPad. Open Pixel 8 Cosyra Android app.
$ # Same container, same prompt, same uncommitted diff.
$ git status
modified: src/retry.ts
$ codex --diff-only "compare with current diff"
# codex reads the same tree, emits a second proposed patch.
Catnip's actual strength showed up on a different test: parallel agent runs.
The wandb/catnip README ships a git-worktree manager that lets you spin up
multiple Claude Code agents on separate branches of the same repo, each in
its own worktree. We tried that on a different repo (a 6k-line Rust project)
by launching three Claude Code agents from Catnip on three feature branches
simultaneously. It worked. Cosyra's model is "one persistent container,
multiple agents share it." There is nothing stopping you from running three claude processes in three tmux panes against three worktrees, but Catnip ships that
workflow as a first-class UI affordance and we do not. If parallel-agent worktrees
are central to how you work, that is a real Catnip win.
Where does Catnip beat Cosyra?
Catnip beats Cosyra on three real axes, and we want to be honest about them before anyone reads us as marketing. We do not replicate any of these cleanly, and for some users the right answer is Catnip, not us.
- Open-source under Apache 2.0. The full iOS client and devcontainer image source live at github.com/wandb/catnip. If your security model requires reading the code before shipping it to production phones, Catnip is the option. Cosyra is a managed product; our source is not public.
- Minimum-friction add-on if you already pay for Codespaces. A team with funded Codespaces seats can install the W&B Catnip iOS app and start running Claude Code from a phone without changing where code runs, who pays for compute, or which GitHub org owns the VM. "Minimum delta from current setup" is a real win. We require you to adopt our managed container.
- Built-in parallel-agent worktree manager. The README pitches and the app ships a workflow for spawning concurrent Claude Code agents on separate branches of the same repo, each isolated in a git worktree. Cosyra runs one persistent container per user; you can run multiple agents on it, but parallel-worktree concurrency is not a first-class UI affordance for us. If your day-to-day involves fanning Claude Code out across many small branches, Catnip's shape fits.
Two of these wins come with caveats worth naming. The Codespaces dependency is also the limit: if your code is on GitLab or self-hosted Git, or you have run out of Codespaces quota and don't want to pay GitHub's metered rates, Catnip is no longer the cheapest option. And the open-source Apache 2.0 source is the iOS client and the devcontainer image; the compute itself is GitHub's proprietary Codespaces, which is not open source. So "Catnip is open source" is true; "Catnip is end-to-end open source" is not.
Where does Cosyra beat Catnip?
Cosyra beats Catnip on Android support, on cross-platform handoff, on multi-agent breadth, on Git-provider flexibility, and on container persistence semantics. The trade-off for those wins is that we are a paid managed product and our source is not public. If the five lanes below match your work, we think we're the better pick.
Native Android app on Google Play, not iOS only
If you carry a Pixel, a Samsung Galaxy, or any other Android phone, Catnip is not an option today. The W&B Catnip listing on the App Store is iOS only (a universal binary for iPhone and iPad) and there is no Android entry in the wandb/catnip surfaces as of 2026-06-01. Catnip's roadmap may add Android later, and we will update this guide if that ships. For now, "iOS only" is the line in the App Store description and the README. We ship native iOS and Android, both as primary entry points, both backed by the same container. Pick up either device, same shell.
Four AI agents pre-installed, not just Claude Code
Catnip is Claude Code-first by design; the Show HN intro says so out loud: "an iOS app that lets you run Claude Code against a real development environment from your phone." Codex CLI, OpenCode, and Gemini CLI all run in a Codespace if you install them, but they are not the integration target and switching agents is not a built-in affordance. We pre-install Claude Code, Codex CLI, OpenCode, and Gemini CLI; switching is one binary name. Our take on which agent to pick for which job lives in Claude Code vs OpenCode and Claude Code vs Gemini CLI.
Persistent Ubuntu container that hibernates, not a Codespace that auto-shuts
Codespaces auto-shut idle instances; on next use, GitHub re-provisions and
re-attaches. That is good for cost, but it means you re-clone, you re-export
environment variables, and your in-flight shell state can be lost if you
didn't tmux it. Our container hibernates on idle and resumes exactly
where you left off: the same shell, the same
history, the same uncommitted changes, the same Claude Code
conversation. For a "drive an agent from the train on the way home" use
case, hibernation is a real ergonomic gain. We unpack this in our
mobile coding terminal pillar.
No GitHub lock-in
Catnip wraps GitHub Codespaces, so by construction it only fits teams on GitHub. We do not care where your code lives. GitLab is fine, Bitbucket is fine, self-hosted Gitea or Gitolite is fine, and "no remote yet, I'm drafting" is fine. The container is Ubuntu, so any provider's CLI installs the way it would on a laptop. If your work straddles GitHub and a private GitLab, you can clone both into the same container.
The Codespaces story is also our other Codespaces guide
If your real question is "should I be on Codespaces at all from mobile?" we have a longer answer in Cosyra vs Codespaces on mobile. That guide compares the full Codespaces direct experience (mobile Safari into vscode.dev) with our container; Catnip is a third option that layers a phone-native client over Codespaces. If you read both guides, the decision tree is: native client + Codespaces compute = Catnip; browser into Codespaces = the Codespaces guide; native client + owned compute + agent breadth = us.
Opinion a competitor would disagree with
We think owning the runtime is the right move for a mobile cloud development environment, not wrapping someone else's. Catnip's bet, "Codespaces is everywhere, layer on top," is a reasonable one, and for GitHub-centric teams it pays off. We took the other bet: that idle timeouts, GitHub-only Git, and Codespaces' bursty pricing model are exactly the friction that kills agent-driven mobile dev for the audience we care about. Plenty of people will disagree, and that disagreement is why both products exist. We built Cosyra for the developer who codes on the train, the couch, or the school pickup line and wants their box to be there when they pick up the phone, on whichever phone they happen to be holding.
Who should pick Catnip instead of Cosyra?
Pick Catnip instead of Cosyra if you are a GitHub-Codespaces-funded team on iOS, a Claude-Code-only iOS user, an open-source-only shop, or a heavy parallel-agent worktree user. Catnip is the right answer for those four profiles, full stop. We do not match them.
Pick Catnip if you are one of these profiles
- GitHub-Codespaces-funded team on iOS. Your company already pays for Codespaces seats. You carry an iPhone or iPad. You only want a better phone client over the compute you already pay for. Catnip is the minimum delta from your current setup. Cosyra would require adopting a second managed runtime.
- Claude-Code-only iOS user. Codex CLI, OpenCode, and Gemini CLI do not matter to your workflow. Claude Code is the single agent you use. You want it on your iPhone. Catnip's tight integration is built for exactly this; our four-CLI breadth is not a feature you need.
- Open-source-only shop. You cannot ship a managed proprietary client. You need to read the client source before deploying it to your team's phones. Catnip is Apache 2.0 on GitHub. Our managed product is not.
- Heavy parallel-agent worktree user. Your day-to-day involves spawning many concurrent Claude Code agents on parallel branches of the same repo. Catnip's git-worktree manager is a first-class UI affordance for this. We do not ship the same UI; you would script it.
We genuinely like that Catnip exists. It is built by an experienced engineer (Chris van Pelt of Weights & Biases) and the Apache 2.0 license means the iOS-app surface is reviewable by anyone. If our gap is your fit, install it from the App Store, point it at your existing Codespaces seats, and you are running Claude Code from your phone in about as much time as it takes to read this paragraph. We will keep this page updated if the Android story changes.
How do you try Cosyra if you're coming from Catnip?
You try Cosyra coming from Catnip in about two minutes: install the iOS or
Android app, sign in, and land in a fresh Ubuntu 24.04 x86_64 container with
four AI CLIs already on PATH. The conceptual jump is "iOS app talking to a
GitHub Codespace I own" to "iOS or Android app talking to an Ubuntu
container that we manage and you persist into." Muscle memory for claude still works. Same agent, same auth, BYOK to Anthropic. The session below captures
a first-time install coming from Catnip.
$ # Install Cosyra from App Store or Google Play, sign in,
$ # land in your persistent container.
$ uname -m && lsb_release -d
x86_64
Description: Ubuntu 24.04 LTS
$ # All four CLIs 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
$ export ANTHROPIC_API_KEY=sk-ant-...
$ git clone https://github.com/you/your-app.git && cd your-app
$ claude
> # same Claude Code you used on Catnip, on your own container
The big unlock for most people coming from Catnip is the persistence semantics and the Android handoff. You stop re-provisioning a Codespace every time you reopen, because the container hibernates and resumes; you stop hitting a wall when you pick up a Pixel, because there's a native Android app; and you stop being locked to GitHub, because the container is Ubuntu and the Git provider is your choice. We cover the on-phone setup in more depth in Claude Code on phone and the iPad story in Claude Code on iPad.
Frequently asked questions
What is Catnip?
Catnip is an open-source iOS app from Chris van Pelt at Weights & Biases that wraps GitHub Codespaces with a phone-shaped interface for Claude Code. The Show HN intro reads verbatim: "Hi HN — I built Catnip, an open-source iOS app that lets you run Claude Code against a real development environment from your phone." Source on GitHub is github.com/wandb/catnip under Apache 2.0; latest release v0.12.1 published 2026-01-08, re-verified first-hand 2026-06-01.
[source: Show HN: Catnip — Claude Code from your phone, verbatim quote re-fetched 2026-06-01]
Does Catnip run Claude Code on your iPhone itself?
No. Execution lives in a GitHub Codespace that Catnip provisions on your behalf. The iOS app is the steering wheel: it sends prompts, streams output, manages the worktree, and shuts the Codespace down when you stop. The compute is whatever VM GitHub spins up, billed against your Codespaces seat. That distinction matters because it is the main shape difference between Catnip and a self-contained mobile cloud terminal like us.
[source: wandb/catnip README, re-fetched 2026-06-01]
Does Catnip work on Android?
Not as of 2026-06-01. The W&B Catnip listing on the App Store is iOS only (universal binary for iPhone and iPad), and the wandb/catnip GitHub repo does not list an Android client among its surfaces. If you carry a Pixel or a Samsung phone, Catnip is not an option today. We ship native Android via Google Play in addition to iOS. We will update this answer if Catnip's roadmap adds Android.
[source: W&B Catnip App Store listing, re-fetched 2026-06-01]
How much does Catnip cost?
The iOS app itself is free under Apache 2.0 and the source is on GitHub. The real cost is GitHub Codespaces compute. Personal GitHub accounts include a free monthly Codespaces quota on Free and Pro plans; the Catnip Show HN post quotes 120 free hours per month and notes the auto-shutdown for idle instances. Once you cross that quota, GitHub bills compute and storage against your Codespaces meter. Cosyra is $29.99/month Pro after a 1-hour-on-signup free tier plus an opt-in 10-hour, 7-day trial — and BYOK to Anthropic, OpenAI, or Google for model billing.
[source: GitHub Codespaces product page + Show HN quote, re-fetched 2026-06-01]
What can Catnip do that Cosyra cannot?
Three things. First, the source is Apache 2.0 on GitHub so you can read and fork the client. Second, if your team is already on GitHub Codespaces with seats funded, Catnip is the minimum-friction way to drive Claude Code from your phone without changing where code runs. Third, the README describes a git-worktree manager that spawns concurrent Claude Code agents in parallel branches, which is a different mental model from our single persistent container. Those are real wins for the right user.
[source: wandb/catnip repo + releases, re-fetched 2026-06-01]
What can Cosyra do that Catnip cannot?
Four things. We are not tied to GitHub Codespaces, so GitLab, Bitbucket, self-hosted Git, or no remote at all are all fine. We ship a native Android app on Google Play alongside iOS — Catnip is iOS only. Our container persists with 30 GB of storage that hibernates on idle and resumes where you left off, with no Codespace re-provisioning. And we pre-install four AI coding CLIs — Claude Code, Codex CLI, OpenCode, and Gemini CLI — not just Claude Code.
[source: Cosyra pricing + product page]
Is Cosyra a Catnip alternative?
Cosyra and Catnip overlap on the user intent ("drive Claude Code from a phone") but solve it with different shapes. Catnip is a phone-shaped client to a Codespace that you own. Cosyra owns the runtime — a persistent per-user Ubuntu 24.04 container on Azure AKS — and ships native iOS and Android apps as the primary entry point. If you want a thin client over your existing Codespaces seats and you are an iPhone or iPad user, pick Catnip. If you want a managed Linux box that follows you across iOS, Android, and web with four agents already on PATH, pick us.
[source: wandb/catnip + cosyra.com/pricing, re-fetched 2026-06-01]
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.
Claude Code on phone · Claude Code on iPad · Cosyra vs Codespaces on mobile · Cosyra vs Firebase Studio · See pricing. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.