English | 简体中文
cc-venv is a named environment manager for Claude Code.
The goal is simple: keep different workflows in separate Claude environments, switch when needed, and leave your default Claude Code setup untouched.
Many people do not use Claude Code for just one kind of work.
Sometimes you want a coding workflow:
- coding-focused
MCPservers - engineering or frontend-focused
Skills - project-oriented
Rules
At other times you want a writing workflow:
- a different set of writing, translation, or summarization instructions
- different
MCPtools, or fewer tools - complete separation from the coding setup
If all of that lives in your default Claude Code configuration, it usually turns into this:
- mixed
Skills MCPsettings affecting each otherRulesandCLAUDE.mdinstructions bleeding across workflows- hesitation to experiment because it may break your default setup
cc-venv solves that by giving you isolated named environments:
- each environment has its own
CLAUDE.md - its own environment variables
- its own
MCP - its own
Skills - its own
Agents / Commands / Rules
That makes it easy to maintain separate environments such as:
codingwritingresearchprod-safe
Switching environments does not affect your default Claude Code configuration.
npm install -g @timerzz/ccvAfter installation:
# Create a virtual environment named coding
ccv create coding
# List all current virtual environments
ccv list
# Run Claude Code inside the coding environment
ccv run coding
# Pass extra arguments through to Claude Code
ccv run coding --model claude-opus -p "summarize this repo"
# Inside Claude Code running in a ccv environment, you can install plugins directly.
# Those plugins are stored only in that virtual environment.
/plugin marketplace add JimLiu/baoyu-skills
# Open the Web UI to manage and configure environments
ccv web
# Export the full coding environment, including Skills and MCP configuration
ccv export codingDownload the binary for your platform from GitHub Releases and add it to your PATH:
- Linux x64:
ccv-linux-amd64 - Linux arm64:
ccv-linux-arm64 - macOS x64:
ccv-darwin-amd64 - macOS arm64:
ccv-darwin-arm64 - Windows x64:
ccv-windows-amd64.exe - Windows arm64:
ccv-windows-arm64.exe
Web UI:
cc-mirror and cc-venv both provide Claude Code isolation, but they optimize for different things.
| Capability | cc-venv |
cc-mirror |
|---|---|---|
| Multiple isolated Claude Code environments | ✅ | ✅ |
Embedded Web UI (ccv web) |
✅ | ❌ |
| Full environment import / export | ✅ | ❌ |
Isolate CLAUDE.md, env vars, Skills, MCP, Agents, Commands, and Rules |
✅ | ✅ |
| Separate Claude Code binary per environment | ❌ | ✅ |
| Provider / prompt-pack / tweak-oriented variant management | ❌ | ✅ |
If your goal is to:
- maintain multiple Claude workflows for different purposes
- switch quickly
- keep the default Claude configuration clean
- move a complete environment to another machine
then cc-venv is the closer fit.
- create named environments
- enter an environment shell
- run Claude Code inside an environment
- manage environments through a Web UI
- isolate
LLM, environment variables,MCP,Skills,Agents,Commands, andRules - export a full environment
- import and restore that environment on a new machine
Each environment maintains its own set of resources:
.claude/CLAUDE.md.claude/settings.json.claude/skills/.claude/agents/.claude/commands/.claude/rules/.claude.json
So this is not just about switching an API key. It isolates a full Claude workflow.
Run:
ccv webThen manage the following in the browser:
- environment list
LLMMCPSkillsEnv VarsCLAUDE.mdAgentsCommandsRules- import / export
Once an environment is configured, you can export it:
ccv export codingThen restore it on another machine:
ccv import coding-20260322-150405.tar.gzThis is especially useful when moving to a new machine, reinstalling a system, or syncing workflows across devices.
Build the frontend and sync embedded static assets:
make frontendBuild binaries for all platforms:
make allPrepare npm distribution packages:
make npm-packagesSync all npm package versions before publishing:
bash scripts/bump-npm-version.sh 0.1.1