Skip to content

wandb/catnip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Catnip Logo

🐾 Catnip

The developer environment that's like catnip for agentic programming.

🎯 Perfect for: Getting the most out of coding agents. Catnip helps you stay organized, run many agents in parallel, and operate agents on the go with our mobile interface.

GitHub Stars Docker Pulls Version

πŸ”₯ Parallel vibe coding in containers. Stay organized, get notified, create anything! 😎

Catnip UI Screenshot

πŸ’‘ When to Use Catnip

You should use Catnip if you:

  • Want a quick environment to code with agents like Claude. Catnip runs in a universal docker container or your existing Dev Container, making it easy to start new projects or continue developing existing git repositories.
  • Have so many idea's that you want to try multiple things at once. Catnip creates git worktrees enabling parallel development.
  • Want a safe, isolated environment where AI assistants can run terminal commands without the risk of messing up your primary system and asking for permission all the time.
  • Are so addicted to Claude you want to be able to create and monitor agents from your phone. Catnip has a mobile UI making it a super tool when added to a cloud based runtime like Github Codespaces.

πŸš€ Why Catnip?

Think of Catnip as a multi-agent coding workspace that solves the chaos of having AI assistants work on multiple tasks in parallel.

The Problem: You want to keep Claude Code running as long as possible.

  • It's annoying to manage multiple git worktree's and commit changes
  • Previewing the changes across multiple worktree's and more importantly giving the agent a way to test the changes is tricky and Catnip standardizes it
  • You lose track of what each AI assistant has been working on
  • You want to be able to review changes on the go / from your phone

The Solution: Catnip gives each AI assistant its own isolated workspace while keeping everything synchronized:

  • πŸ”’ Isolated Sandbox: All code runs containerized environment using either Docker or Apple's new [Container SDK] (https://github.com/apple/container). We can use --dangerously-skip-permissions without fear!
  • πŸ§‘β€πŸ’» Worktree Management: Worktree's let you spawn multiple agents in parallel. Catnip keeps everything organized.
  • πŸ“± Mobile Interface: Catnip works on a mobile device. It's like having your own OpenAI Codex service.
  • πŸ’» Full Terminal Access: Open multiple terminals via the web interface, CLI, or directly via SSH.
  • πŸ‘€ Preview Changes: Catnip has a built in proxy and port detection. Start a web service and preview it live!
  • 🌐 Universal Access: Still a big fan of Cursor or VS Code? No problem, full remote development directly in your IDE is supported.

⚑ Quick Start

Github Codespaces / Devcontainers

You can add Catnip to a .devcontainer/devcontainer.json in an existing GitHub repository. This gives you complete control over the environment that claude operates in. If you don't have a devcontainer config, add the following to your repo's github url: /new/main?dev_container_template=1&filename=.devcontainer%2Fdevcontainer.json to create one. Just add the catnip feature and ensure the port is forwarded:

{
  ...
  "features": {
    "ghcr.io/wandb/catnip/feature:1": {}
  },
  "forwardPorts": [6369],
  ...
}

Tip

Why 6369 you might ask? Type C A T S on your telephone keypad and you'll find the answer πŸ€“

Once your codespace is loaded, look for the cat logo in left sidebar. That will allow you to open the catnip interface in a new tab. You can also use catnip from a mobile device! Goto catnip.run and login to your github account. We will automatically start your codespace if needed and then redirect you to the catnip mobile interface. Finally you can vibe code on the go!

Note

To make this work, catnip pings our service running at catnip.run with the name of the codespace and repo it's running in when it boots up. This means you need to start the codespace from the GitHub UI or CLI at least once to be able to access the codespace on mobile. We also store the temporary GITHUB_TOKEN in our backend so we can verify catnip is running within a private codespace. These credentials are encrypted and pruned every 24 hours, see codespace-store.ts

Local Development

You can also run catnip locally:

curl -sSfL install.catnip.sh | sh
# Optionally start catnip from an existing git repo
cd ~/Development/my_awesome_project
catnip run
# Open http://localhost:6369 πŸŽ‰

catnip is a golang binary with a vite SPA embedded in it. The wandb/catnip container was inspired by the openai/codex-universal container. Calling catnip run starts the universal container with catnip pre-installed.

It comes pre-configured with node, python, golang, gcc, and rust. You can have the container install a different version of the language on boot by setting any of these environment variables:

# Set specific language versions for AI development
CATNIP_NODE_VERSION=20.11.0
CATNIP_PYTHON_VERSION=3.12
CATNIP_RUST_VERSION=1.75.0
CATNIP_GO_VERSION=1.22

Note

If you want complete control of your environment, run catnip in a devcontainer as described above

Environment Setup

Catnip currently looks for a file named setup.sh in the root of your repo and runs it when a workspace is created. This is a great place to run pnpm install, pip install -r requirements.txt, or uv sync - perfect for AI projects with complex dependencies.

#!/bin/bash
# Example setup.sh for LLM application development
pip install -r requirements.txt
# Pre-load common dependencies for LLM apps
pip install openai anthropic chromadb
npm install  # For full-stack AI applications
# Set up vector database or other services
docker-compose up -d --build

Environment variables

catnip run accepts -e arguments. For instance if you want to pass ANTHROPIC_API_KEY from your host into the container you can simply add -e ANTHROPIC_API_KEY and then all terminals and AI agent sessions within the container will see that variable. You can also explicitly set variables, -e ANTHROPIC_BASE_URL=https://some.otherprovider.com/v1

# Essential for LLM application development
catnip run -e ANTHROPIC_API_KEY -e OPENAI_API_KEY -e PINECONE_API_KEY

SSH

The catnip run command configures SSH within the container by default. It creates a key pair named catnip_remote and configures a catnip host allowing you to run ssh catnip or open a remote development environment via the Remote-SSH extension. This works perfectly with Cursor, VS Code, and other editors that AI engineers commonly use. You can disable ssh by adding --disable-ssh to the run command.

Docker in Docker

If you want the catnip container to be able to run docker commands, pass the --dind flag to the catnip run command. This mounts the docker socket from the host into the container allowing your terminals and AI agents to build or run containers - useful for containerized ML services or complex multi-service applications.

Git

If you run catnip from within a git repo, we mount the repo into the container and create a default workspace. When you start a Claude session in Catnip the system automatically commits changes as Claude makes them.

Tip

The workspace within the container is committing to a custom ref refs/catnip/$NAME. For convenience we also create a nicely named branch like feature/make-something-great. This branch is kept in sync with the workspace ref which means you can run git checkout feature/make-something-great outside of the container to see changes locally - perfect for AI-assisted development workflows where you want to review agent changes!

We also run a git server in the container. You will see a Git option in the "Open in..." menu that will provide you with a clone command like:

git clone -o catnip http://localhost:6369/my-sick-repo.git

As you create new workspaces in the container, you can run git fetch catnip back on your host to see your changes outside of the container!

Ports

Catnip forwards ports directly to the host system. When a service starts within the container, Catnip automatically detects and forwards the port, making it accessible at http://localhost:$PORT. Each workspace also has the PORT environment variable set to a known free port. For convenience, services can also be accessed through the Catnip UI proxy at http://localhost:6369/$PORT.

This is especially powerful for LLM and agentic application development where you might have:

  • FastAPI backends with LLM integration on port 8000
  • React/Next.js chat interfaces on port 3000
  • Streamlit data exploration dashboards on port 8501
  • Jupyter notebooks for experimentation on port 8888
  • Vector databases and other services on various ports

Note

If a port isn't bindable on the host (e.g., already in use), Catnip will automatically find and use the first available port instead. The UI will notify you of the actual port being used.

πŸ—ΊοΈ Roadmap

Coming Soon

  • 🎯 Native devcontainer support
  • πŸ“± Mobile UI
  • πŸ”„ Restore to previous checkpoints
  • πŸ€– Support for more AI coding agents
  • 🌐 Cloud based deployments
  • πŸ”§ Plugin ecosystem

❓ FAQ

How is Catnip different from Jules, Open SWE, or Conductor Catnip is Open Source, built to be extensible, and prioritizes local development first with support for cloud based deployments on the roadmap. It's specifically designed for AI engineers who need sophisticated multi-agent orchestration with powerful Git worktree management and real-time service discovery.
What AI assistants does Catnip support?

Currently optimized for Claude Code, with support for additional AI coding assistants likely coming soon. The architecture is designed to be extensible for the growing ecosystem of AI development tools.

Can I use this for LLM and AI application projects? Absolutely! Catnip is perfect for LLM app development. The containerized environment handles complex dependencies (vector databases, embedding models, etc.), automatic port detection works great with Jupyter/Streamlit/FastAPI, and the multi-agent system lets you parallelize RAG backend development, chat interface building, and data pipeline work.
How does the Git worktree system work with multiple AI agents? Each agent works in an isolated worktree using custom `refs/catnip/*` references, preventing Git checkout conflicts. Catnip automatically creates and syncs "nice" feature branches for PRs, so you get the isolation you need for parallel agents while maintaining clean Git workflows.
Did you develop Catnip with Catnip? Big time... Inception 🀯 We've been using Catnip to build Catnip, which has been invaluable for dogfooding the multi-agent workflow experience.

🀝 Contributing

We welcome contributions! Catnip is designed to make agentic programming more powerful and accessible for AI engineers.

  1. 🍴 Fork the repository
  2. 🌿 Run catnip in dev mode catnip run --dev (you must run this from within the catnip repo)
  3. πŸ’» Make your changes
  4. βœ… Add tests if applicable
  5. πŸ“€ Submit a pull request

The codebase includes both a Go backend for container orchestration and Git operations, plus a React/TypeScript frontend for the web interface. Contributing to AI agent integration, multi-workspace management, or real-time features are all great ways to help improve the platform for AI development workflows.

πŸ“„ License

This project is licensed under the Apache 2.0 - see the LICENSE file for details.


Made with ❀️ by the Weights & Biases team
Star on GitHub

About

Like catnip, a highly addictive agentic coding tool

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •