# Catnip

Run Claude Code Everywhere — a containerized web service that automates git-worktree creation and runs many AI coding agents in parallel, operable from the web, a native iOS app, or SSH.

Source: https://wheredoirunthis.com/products/catnip · JSON: https://wheredoirunthis.com/api/products/catnip · Read on 2026-06-07

## At a glance

- Type: Persistent environment
- Kind: Open source tool
- Isolation: Container
- Free tier: Not documented
- Starting price: Not disclosed
- GPU: No
- Regions: Not disclosed
- Coverage: 7 of 50 assessed capabilities supported · 11 not assessed
- Agent readiness: read 4 of 10 signals, drive 5 of 8 signals

## Links

- Homepage: https://catnip.run/
- Docs: https://github.com/wandb/catnip#readme
- Repository: https://github.com/wandb/catnip

## Runtime

- **GPU & accelerators**: No — "No GPU feature; the universal container is a CPU dev environment (node/python/go/gcc/rust). GPU would be the host/Codespace's concern, not a Catnip feature." (source: repo) (confidence: medium)
- **BYOC (Bring your own cloud)**: na — "BYOC (a managed control plane deploying into a customer's cloud) does not apply — you run Catnip yourself on your own machine or Codespace; there is no managed control plane." (source: n/a (self-host tool)) (confidence: high)
- **Secrets management**: No — "No managed secrets store — secrets are passed by env-var passthrough (`catnip run -e ANTHROPIC_API_KEY -e OPENAI_API_KEY ...`), the operator's responsibility, not a first-class secrets feature." [source](https://github.com/wandb/catnip) (confidence: high)
- **Storage options**: Per-workspace git worktrees inside the container; mounts the host git repo (changes round-trip via refs/catnip/$NAME → named branches, fetchable with `git fetch catnip`); a built-in git server (http clone, e.g. `git clone -o catnip http://localhost:6369/repo.git`). — "README Git section: worktree mounts, auto-commit refs, named branches, and an in-container git server." [source](https://github.com/wandb/catnip) (confidence: high)
- **Supported workloads**: parallel-ai-coding-agents, claude-code-sessions, containerized-dev-environments, llm-app-development, remote-mobile-coding — "'run many agents in parallel', 'keep Claude Code running as long as possible', LLM-app development (FastAPI/React/Streamlit/Jupyter/vector DBs via port detection), and 'vibe code on the go' from the iOS app." [source](https://github.com/wandb/catnip) (confidence: high)
- **Persistence**: Container working filesystem + your mounted host git repo; agent edits auto-committed to git refs (refs/catnip/$NAME) and synced to named branches. Persistence is tied to the host / Codespace lifecycle — there is no managed persistent-volume primitive. — "'If you run catnip from within a git repo, we mount the repo into the container... the system automatically commits changes as Claude makes them' to refs/catnip/$NAME; data lives in the container + host repo." [source](https://github.com/wandb/catnip) (confidence: high)
- **Data jurisdiction**: na — "Data residency / jurisdiction is moot — Catnip runs wherever you run it (your machine or your Codespace's region)." (source: n/a (self-host tool)) (confidence: high)
- **Resource limits & quotas**: Bounded by the host machine / Codespace resources; language versions set at boot via CATNIP_*_VERSION; single-operator (your own instance), no multi-tenant quotas. — "Resources come from your Docker host or Codespace; CATNIP_NODE/PYTHON/RUST/GO_VERSION control the toolchain at boot." [source](https://github.com/wandb/catnip) (confidence: high)
- **SDK languages**: Not documented — "No published client SDK. The HTTP API (OpenAPI/Swagger) + the `catnip` CLI + the web/mobile UIs are the interfaces; the embedded SPA consumes the API directly." (source: repo) (confidence: high)
- **Network & egress controls**: No — "No configurable outbound egress allowlist/firewall feature; the container gets normal Docker/Codespace networking (host firewall is the operator's concern)." (source: repo) (confidence: medium)
- **Snapshots & forks**: No — "No instance/container snapshot or copy-on-write fork. There IS git-level checkpointing (auto-commit to refs/catnip/$NAME for granular review/rollback), but that is git history, not an instance snapshot/fork primitive." [source](https://github.com/wandb/catnip) (confidence: medium)
- **Deployment methods**: cli, web-ui, mobile-app, ssh, devcontainer — "`catnip run` CLI; web UI at localhost:6369; native iOS app (App Store 'W&B Catnip'); SSH (`ssh catnip` + Remote-SSH for Cursor/VS Code); devcontainer feature for Codespaces." [source](https://github.com/wandb/catnip) (confidence: high)
- **Isolation**: Container — "README 'Isolated Sandbox': 'All code runs containerized environment using either Docker or Apple's new Container SDK. We can use --dangerously-skip-permissions without fear!' — OS-level container isolation, not a microVM/VM." [source](https://github.com/wandb/catnip) (confidence: high)

## Capabilities

### AI & agents

| Capability | Status | Evidence |
| --- | --- | --- |
| Agent skills | Not supported | "No installable/declarable agent-skills system for users (the repo's own .claude/ + AGENTS.md are for developing Catnip itself)." [source](https://github.com/wandb/catnip) |
| AI app builder | Not supported | "No prompt-to-app / vibe-coding generation surface — Catnip orchestrates a coding agent in a workspace; it does not generate apps from a prompt." [source](https://github.com/wandb/catnip) |
| Autonomous QA agent | Not assessed |  |
| Built-in coding agent | Not supported | "Catnip ships no first-party coding agent — it HOSTS/orchestrates Claude Code (an external agent). Claude Code is recorded under `harnesses`, not as a built-in agent." [source](https://github.com/wandb/catnip) |
| BYOK for LLMs | Supported | "`catnip run -e ANTHROPIC_API_KEY -e OPENAI_API_KEY -e PINECONE_API_KEY` injects your own provider keys (and `-e ANTHROPIC_BASE_URL=...` to point at any provider) into the agent sessions — bring-your-own-keys." [source](https://github.com/wandb/catnip) |
| Credential-injection proxy | Not assessed |  |
| LLM gateway | Not supported | "No multi-provider LLM gateway/router; Catnip only passes provider keys/base-URLs through to the agent via env vars (`-e ANTHROPIC_BASE_URL=...`) — that is BYOK passthrough, not a gateway." [source](https://github.com/wandb/catnip) |
| MCP client | Not supported | "No MCP client (no MCP anywhere in the repo)." [source](https://github.com/wandb/catnip) |
| MCP-server hosting | Not supported | "No MCP-server-hosting feature (you could run an MCP server inside the container, but that's generic container usage)." [source](https://github.com/wandb/catnip) |
| MCP server | Not supported | "No MCP server — an `mcp` search over the 713-entry repo tree is empty; catnip.run/.well-known/mcp returns the SPA app shell, not an MCP endpoint." [source](https://github.com/wandb/catnip) |
| Model inference API (first-party) | Not applicable | "Serves no first-party model inference API (it runs your chosen agent with your own keys)." [source](https://github.com/wandb/catnip) |
| Preinstalled coding agent | Not assessed |  |

### Networking & delivery

| Capability | Status | Evidence |
| --- | --- | --- |
| Automatic HTTPS | Not applicable | "Local dev tool — services are reached over http on localhost (port forwarding/proxy at localhost:6369/$PORT); per-workload public TLS is not applicable to a local instance." [source](https://github.com/wandb/catnip) |
| Custom domains | Not applicable | "Local dev tool — no public domain mapping (localhost port forwarding)." [source](https://github.com/wandb/catnip) |
| Direct public IPv6 | Not applicable | "Local port-forwarding networking model (localhost); no per-instance public IPv6." [source](https://github.com/wandb/catnip) |
| Edge KV store | Not applicable | "Not an edge-runtime KV store." [source](https://github.com/wandb/catnip) |
| Egress controls | Not supported | "No configurable egress allowlist/firewall; the container uses normal Docker/Codespace networking (host firewall is the operator's concern)." [source](https://github.com/wandb/catnip) |
| Email send / receive | Not applicable | "Not an email product." [source](https://github.com/wandb/catnip) |
| Public preview URLs | Partially supported | "Live preview of running services via the built-in proxy + port detection (localhost:6369/$PORT), and remote access to your own running workspace via the catnip.run mobile bridge — but not public shareable per-deploy URLs for others." [source](https://github.com/wandb/catnip) |
| Private networking | Not assessed |  |
| Built-in reverse proxy | Supported | "'Catnip has a built in proxy and port detection in the container'; services are reachable through the Catnip UI proxy at http://localhost:6369/$PORT with automatic port detection/forwarding." [source](https://github.com/wandb/catnip) |

### Organisation & security

| Capability | Status | Evidence |
| --- | --- | --- |
| Built-in auth | Not applicable | "Single-operator self-host tool — the local server is localhost-bound (no workload auth/IAM). The catnip.run bridge's GitHub OAuth is for accessing YOUR codespace, not a workload-auth feature." [source](https://github.com/wandb/catnip) |
| BYOC | Not applicable | "Self-host tool — you own the machine/Codespace; managed-control-plane BYOC does not apply." [source](https://github.com/wandb/catnip) |
| Deploy into customers' VPCs | Not assessed |  |
| Secrets management | Not supported | "No managed secrets store — secrets are env-var passthrough (`-e ANTHROPIC_API_KEY`), the operator's responsibility." [source](https://github.com/wandb/catnip) |
| Self-host / OSS core | Supported | "Apache-2.0; self-host is the only deployment (local install / devcontainer feature / container image). 'This project is licensed under the Apache 2.0.'" [source](https://github.com/wandb/catnip) |
| Sharing | Not applicable | "Single-operator tool — the mobile/web/SSH surfaces are remote access to YOUR OWN workspace, not a share-a-resource-with-others link primitive." [source](https://github.com/wandb/catnip) |
| SSO / SAML | Not applicable | "Single-operator self-host tool — no enterprise SSO/SAML." [source](https://github.com/wandb/catnip) |
| Teams | Not applicable | "Single-operator self-host tool — no multi-user team accounts (you run your own instance)." [source](https://github.com/wandb/catnip) |
| Workload identity | Not assessed |  |

### Developer access

| Capability | Status | Evidence |
| --- | --- | --- |
| CLI | Supported | "The `catnip` CLI is a primary interface — `curl -sSfL install.catnip.sh \| sh`, then `catnip run` (with `-e`, `--dind`, `--disable-ssh`, `--dev`). Official, comprehensive." [source](https://github.com/wandb/catnip) |
| E2B-compatible API | Not assessed |  |
| Filesystem API | Partially supported | "An in-container git server exposes files over http (`git clone -o catnip http://localhost:6369/repo.git`) and the web UI browses workspace files/diffs over the HTTP API; but there is no documented standalone list/read/write/watch file API." [source](https://github.com/wandb/catnip) |
| Git deploy | Not supported | "No push-to-deploy of an app. Catnip is deeply git-integrated (mounts your repo, auto-commits to refs/catnip/$NAME, runs an in-container git server) but it is a dev-workspace tool, not a deploy-from-git hosting platform." [source](https://github.com/wandb/catnip) |
| HTTP data API | Not applicable | "Data-layer primitive — not applicable." [source](https://github.com/wandb/catnip) |
| OpenAPI spec | Supported | "container/docs/swagger.json + container/docs/swagger.yaml — a published OpenAPI/Swagger spec, served by the running container." [source](https://github.com/wandb/catnip) |
| Private container registry | Not supported | "No hosted private image registry. Catnip publishes its own image to Docker Hub/ghcr but does not host a registry for users." [source](https://github.com/wandb/catnip) |
| Public API | Supported | "The Go container server exposes an HTTP API ('exposes API's and UI's to interact with it'), documented by an OpenAPI/Swagger spec (container/docs/swagger.json + swagger.yaml). It is the self-hosted server's API (localhost), but documented and machine-usable." [source](https://github.com/wandb/catnip) |
| SDK | Not supported | "No published client SDK/library — the API (OpenAPI), CLI, and UIs are the interfaces." [source](https://github.com/wandb/catnip) |
| SSH access | Supported | "'catnip run configures SSH within the container by default... allowing you to run ssh catnip or open a remote development environment via the Remote-SSH extension' (Cursor/VS Code). This is why might-work harnesses derive." [source](https://github.com/wandb/catnip) |

### Compute & storage

| Capability | Status | Evidence |
| --- | --- | --- |
| Cloud-init / ignition config | Not supported | "Boot customisation is via a `setup.sh` lifecycle hook + CATNIP_*_VERSION env + devcontainer.json — NOT the cloud-init/ignition metadata interface." [source](https://github.com/wandb/catnip) |
| Desktop / computer-use sandbox | Not supported | "No virtual-desktop / computer-use GUI (VNC/noVNC); the container is a headless dev environment with a terminal/web UI." [source](https://github.com/wandb/catnip) |
| GPU compute | Not supported | "No GPU feature; the universal container is a CPU dev environment (node/python/go/gcc/rust)." [source](https://github.com/wandb/catnip) |
| Live-state (memory) snapshots | Not assessed |  |
| Multi-region | Not applicable | "Self-host tool — runs on your machine / Codespace; no region concept." [source](https://github.com/wandb/catnip) |
| Object storage | Not assessed |  |
| Persistent disk | Partially supported | "The container has a working filesystem + your mounted host repo, and agent changes round-trip to git refs/branches; but persistence is tied to the host/Codespace lifecycle — there is no managed persistent-volume primitive." [source](https://github.com/wandb/catnip) |
| Sandbox templates / custom images | Partially supported | "Ships a fixed 'universal' base container (node/python/go/gcc/rust), but supports full environment control via a custom `.devcontainer/devcontainer.json` ('complete control over the environment that claude operates in') + a `setup.sh` lifecycle hook + CATNIP_*_VERSION env — environment customisation, but not a build-and-fork-instances-from-custom-images system." [source](https://github.com/wandb/catnip) |
| Scale to zero | Not supported | "No scale-to-zero primitive (Catnip is a running container; any idle-stop is GitHub Codespaces' behaviour, not Catnip's)." [source](https://github.com/wandb/catnip) |
| Selectable isolation runtime | Not assessed |  |
| Snapshots / forking | Not supported | "No instance/container snapshot or CoW fork. Git-level checkpointing exists (auto-commit to refs/catnip/$NAME) but that is git history, not an instance fork." [source](https://github.com/wandb/catnip) |

### Data

| Capability | Status | Evidence |
| --- | --- | --- |
| Database branching | Not applicable | "Data-layer primitive — not applicable to an agent-workspace tool." [source](https://github.com/wandb/catnip) |
| Ephemeral instant DB (no-signup) | Not applicable | "Data-layer primitive — not applicable." [source](https://github.com/wandb/catnip) |
| First-party database | Not supported | "Offers no managed database (you'd run one in the container, e.g. a vector DB for LLM apps — generic container usage)." [source](https://github.com/wandb/catnip) |
| Vector search | Not applicable | "Data-layer RAG primitive — not applicable (you'd run a vector DB inside the container for LLM apps)." [source](https://github.com/wandb/catnip) |

### Platform & operations

| Capability | Status | Evidence |
| --- | --- | --- |
| Managed CI/CD runners | Not applicable | "Not a CI-runner platform." [source](https://github.com/wandb/catnip) |
| Built-in observability | Not supported | "Terminal/session views exist, but no metrics/logs/tracing/APM observability stack." [source](https://github.com/wandb/catnip) |
| Preview environments | Not supported | "Worktree-per-agent workspaces are dev workspaces, not deployed ephemeral per-PR environments (with addons/DB, torn down on merge); no preview-environment primitive." [source](https://github.com/wandb/catnip) |
| Scheduled tasks | Not supported | "No cron/scheduled-task primitive (you'd run cron inside the container yourself)." [source](https://github.com/wandb/catnip) |
| Project template marketplace | Not assessed |  |
| Durable workflows | Not applicable | "Not a durable-execution / workflow engine — an agent-workspace orchestrator." [source](https://github.com/wandb/catnip) |

## Agent readiness

### Read: 4 of 10 signals present

4/10 signals (1 full, 3 partial)

- Llms txt: fail — "catnip.run/llms.txt returns the SPA app shell (633 bytes, identical across all well-known paths) — no real llms.txt."
- Llms full txt: fail — "No /llms-full.txt (same SPA shell)."
- Robots AI policy: partial — "catnip.run/robots.txt (Cloudflare-managed) is default-allow (Allow: / for *) and does NOT block major AI-assistant UAs (GPTBot/ClaudeBot/PerplexityBot), but it blocks some scraper bots (Amazonbot/Bytespider/Applebot-Extended) and sets Content-Signal ai-train=no — default-allow with a no-train signal, not an explicit AI allow."
- JSON LD: fail — "No application/ld+json on the catnip.run SPA shell."
- Sitemap: fail — "catnip.run/sitemap.xml returns the SPA shell (not a real sitemap); robots.txt declares no Sitemap:."
- Meta quality: partial — "The SPA shell has <title>Catnip</title> + PWA meta (theme-color, apple-itunes-app, manifest, favicon) but no meta description / OG — present but thin."
- Markdown negotiation: fail — "catnip.run serves the SPA; rich markdown (README, docs/*.md) lives on GitHub only, not via content negotiation on the web surface."
- Content efficiency: fail — "catnip.run is a 633-byte JS SPA shell (an empty #root + script tags) → ~0% readable text in the raw HTML (<1%)."
- Docs discoverable: partial — "Docs are first-class in the GitHub repo (README self-host guide + docs/ architecture + OpenAPI spec), but the catnip.run web landing is a login bridge with no docs link."
- Pricing machine readable: na — "oss-tool — free under Apache-2.0, no hosted pricing surface."
- Anti bot: pass — "catnip.run GET 200 with a normal UA — no challenge on public content (Cloudflare-fronted but no bot challenge)."

### Drive: 5 of 8 signals present

5/8 signals (3 full, 2 partial)

- Public API: pass — "Documented HTTP API on the Go container server (OpenAPI/Swagger spec in container/docs/), machine-usable once Catnip is running."
- Openapi spec: pass — "container/docs/swagger.json + swagger.yaml — a real OpenAPI/Swagger spec, served by the container."
- MCP server: fail — "No MCP server (empty `mcp` grep over the repo tree)."
- SDK packages: fail — "No official client SDK package."
- Auth docs: na — "Localhost API (no remote API to authenticate to); the catnip.run GitHub-OAuth flow is for the mobile bridge, not the run-destination API."
- Agent self serve creds: na — "No hosted signup for the run-destination — it's self-hosted; nothing to self-serve credentials for."
- Webhooks: fail — "No documented webhooks."
- CLI tool: pass — "The `catnip` CLI is official and central (install.catnip.sh → `catnip run`)."
- Error model: partial — "The OpenAPI/Swagger spec defines API response schemas; no separately-documented JSON error model in prose."
- Rate limit docs: na — "Local/self-hosted API — no hosted rate limits."
- Agent config: partial — "AGENTS.md + CLAUDE.md present at the repo root (one surface) — but contributor-facing (for agents working ON Catnip), not a user-integration agent-config surface."

## Coding harnesses

- Claude Code (Anthropic) — "'Run Claude Code Everywhere'; 'Currently optimized for Claude Code'. Catnip is purpose-built to host and orchestrate Claude Code sessions (terminal, web, mobile, SSH)." [source](https://github.com/wandb/catnip)

Plausible compatibility (derived, not stored):

- Aider
- Amp
- Antigravity
- Codex CLI
- Devin
- Droid
- Gemini CLI
- Goose
- Hermes Agent
- Kilo Code
- Kiro CLI
- OpenCode
- Pi
- Qwen Code

## Open source

- Repository: https://github.com/wandb/catnip
- License: Apache-2.0
- Stars: 485
- Forks: 39
- Self-host methods: binary, docker, other
- Self-host dependencies: docker

## Company & presence

- Headquarters: San Francisco, California, USA
- Founded: 2017 (Weights & Biases); Catnip repo created 2025-07-09
- Team size: W&B: large (hundreds, now part of CoreWeave); Catnip is a small W&B team project
- Privacy policy: https://wandb.ai/site/privacy
- Terms of service: https://wandb.ai/site/terms
- GitHub: https://github.com/wandb/catnip
- Docker Hub: https://hub.docker.com/r/wandb/catnip
- iOS App Store (W&B Catnip): https://apps.apple.com/us/app/w-b-catnip/id6755161660
- catnip.run (mobile bridge): https://catnip.run/
- Weights & Biases: https://wandb.ai/

## Nearby in the atlas

- [Docker Offload](/products/docker-offload.md)
- [exe.dev](/products/exe.dev.md)
- [machine](/products/machine.md)
- [machine0](/products/machine0.md)
- [Multipass](/products/multipass.md)
- [ShellBox](/products/shellbox.md)

## Method

Facts come from the product's own public pages. Each claim carries its evidence: a quote and the page it came from. We count capabilities rather than grade products, and "Not assessed" means we have not checked, never that the product lacks it.
