Skip to content

// guides

Cosyra vs Catnip: Claude Code From Your Phone in 2026

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.

Decision diagram comparing Cosyra and Catnip in 2026 for running Claude Code from a phone. The top node asks which constraint matters most: do you need Android support today, non-GitHub compute, more than one AI agent, or open-source client source. The left branch describes Catnip as an Apache 2.0 iOS-only app from Chris van Pelt at Weights and Biases, with version v0.12.1 published 2026-01-08, that wraps GitHub Codespaces with a phone interface for Claude Code; the app is free and the cost is your Codespaces seat; the Show HN post quotes 120 free Codespaces hours per month on personal accounts; the README ships a git-worktree manager for spawning concurrent Claude Code agents; there is no Android client as of 2026-06-01. It lists where Catnip wins: open-source under Apache 2.0, minimum-friction client over Codespaces seats you already have, and built-in parallel-agent worktree workflow. The right branch describes Cosyra as a managed mobile cloud terminal with native iOS and Android apps backed by a per-user Ubuntu 24.04 x86_64 container on Azure AKS; four AI coding CLIs Claude Code, Codex CLI, OpenCode, and Gemini CLI come pre-installed on PATH; storage is 30 gigabytes persistent that hibernates and resumes; pricing is 1 hour free on signup plus an opt-in 10 hour 7 day trial then 29 dollars and 99 cents per month, with BYOK billing direct to the model provider; no GitHub dependency means GitLab, Bitbucket, self-hosted Git, or no remote at all are all fine. The conclusion at the bottom restates the picker: choose Catnip if you live on GitHub Codespaces seats and want only Claude Code from an iPhone or iPad in an open-source client; choose Cosyra if you want a persistent Linux box that follows you across iOS, Android, and web with four agents already installed. Verified 2026-06-01 against github.com/wandb/catnip, the W and B Catnip App Store listing, and the Show HN thread at news.ycombinator.com/item id 46544142. Reconstruction of the decision logic, not a screenshot.
Decision diagram: which product fits the job. Reconstructed from github.com/wandb/catnip, the W&B Catnip App Store listing, and the Show HN thread, verified 2026-06-01.

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.

cosyra, same container from iPad then Pixel 8

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

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

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.

cosyra, first session, 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.

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.

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.

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.

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.

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.

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.

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.