Versions
A version is a Claude Code binary managed by cac. Binaries are downloaded from Anthropic’s official distribution and verified with SHA256 checksums.Environments
An environment is a complete, isolated context for running Claude Code. It includes:| Component | What’s isolated |
|---|---|
.claude/ config | Sessions, settings, project memory, auth tokens |
| Device identity | UUID, hostname, MAC address, machine ID, stable ID |
| Claude Code version | Pinned binary (or system default) |
| Proxy | Optional network route |
| mTLS certificate | Per-environment client cert signed by cac’s CA |
Activation
Activating an environment is global — it affects all terminals and all project directories. This is by design: your identity and proxy route are per-user concerns, not per-project.claude invocation and applies the environment’s settings.
Proxy is optional
Two types of users:| User type | Setup | What cac does |
|---|---|---|
| Proxy user | cac env create work -p proxy | Fingerprint isolation + proxy routing + telemetry blocking |
| API key user | cac env create work | Fingerprint isolation + telemetry blocking (keeps ANTHROPIC_API_KEY) |
ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL, and ANTHROPIC_AUTH_TOKEN environment variables. When a proxy is configured, these are cleared to force OAuth authentication through the proxy.
Auto-install
When you reference a version that isn’t installed yet, cac downloads it automatically — just likeuv auto-installs Python versions: