Skip to main content
Each environment is a fully isolated context: its own .claude config, device identity, Claude Code version, and optional proxy.

create

Create a new environment.
The new environment is automatically activated after creation. Examples:
Proxy formats:
Environment names must be alphanumeric, dashes, or underscores. Names like my-work and prod_us1 are valid; my/work is not.

ls

List all environments.
The marker shows the active environment.

activate

Activate an environment. This is global — affects all terminals.
Activation:
  1. Sets ~/.cac/current to the environment name
  2. Updates statsig and user ID files in the isolated .claude config
  3. Restarts relay if TUN is detected and proxy is configured

set

Modify a setting on an existing environment without recreating it.
If name is omitted, the currently active environment is used. Shorthand: cac env <name> <key> <value> (equivalent to cac env set <name> <key> <value>).

Proxy

Version

Telemetry mode

Change telemetry blocking strategy after environment creation.

Persona

Add or change terminal environment preset for container/server disguise.

check

Run diagnostics on the current active environment. Prints a concise conclusion with a pass/fail summary.
Checks:
  • Environment info (proxy, UUID, version, timezone)
  • Proxy connectivity and exit IP (if proxy configured)
  • TUN conflict detection (if proxy configured)
  • Security protections (DNS guard, telemetry env vars, mTLS)
  • Wrapper PATH detection

rm

Remove an environment. Cannot remove the active environment.
This permanently deletes the environment directory including its .claude config, identity files, and mTLS certificates.