Claude Code ๅฐ้จ่กฃ โ Isolate, protect, and manage your Claude Code.
Run Claude Code your way โ isolated, protected, managed.
โญ Star this repo if it helps โ it helps others find it too.
cac ๆฏ Claude Code ็็ฏๅข็ฎก็ๅจ๏ผ็ฑปไผผ uv ไนไบ Python๏ผ
- ็ๆฌ็ฎก็ โ ๅฎ่ฃ ใๅๆขใๅๆป Claude Code ็ๆฌ
- ็ฏๅข้็ฆป โ ๆฏไธช็ฏๅข็ฌ็ซ็
.claude้ ็ฝฎ + ่บซไปฝ + ไปฃ็ - ้็งไฟๆค โ ่ฎพๅคๆ็บนไผช่ฃ
+ ้ฅๆตๅ็บง๏ผ
conservative/aggressive๏ผ+ mTLS - ้
็ฝฎ็ปงๆฟ โ
--cloneไปๅฎฟไธปๆๅ ถไป็ฏๅข็ปงๆฟ้ ็ฝฎ๏ผ~/.cac/settings.jsonๅ จๅฑๅๅฅฝ - ้ถ้ ็ฝฎ โ ๆ ้ setup๏ผ้ฆๆฌกไฝฟ็จ่ชๅจๅๅงๅ
ๅฐๅท้ฃ้ฉ่ฏดๆ๏ผcac ๆไพ่ฎพๅคๆ็บนๅฑไฟๆค๏ผUUIDใไธปๆบๅใMACใ้ฅๆต้ปๆญใ้ ็ฝฎ้็ฆป๏ผ๏ผไฝๆ ๆณๅฝฑๅ่ดฆๅทๅฑ้ฃ้ฉโโๅ ๆฌ OAuth ่ดฆๅทๆฌ่บซใๆฏไปๆนๅผๆ็บนใIP ไฟก่ช่ฏๅ๏ผไปฅๅ Anthropic ็ๆๅก็ซฏๅฐ็ฆๅณ็ญใๅฐๅทๆฏ่ดฆๅทๅฑ้ฎ้ข๏ผcac ๅฏนๆญคๆ ่ฝไธบๅใ่ฏฆ่ง ๅฐๅท้ฃ้ฉ FAQใ
ไปฃ็ๅทฅๅ ทๅฒ็ช๏ผๅฆๆๆฌๅฐๅฏๅจไบ ClashใShadowrocketใSurgeใsing-box ็ญไปฃ็/VPN ๅทฅๅ ท๏ผๅปบ่ฎฎๅจไฝฟ็จ cac ๆถๅ ๅ ณ้ญใTUN ๆจกๅผๅ ผๅฎนๆงไปๅฑๅฎ้ชๆงๅ่ฝใๅณไฝฟๅ็ๅฒ็ช๏ผcac ไนไผ่ชๅจๅๆญข่ฟๆฅ๏ผfail-closed๏ผ๏ผไธไผๆณ้ฒไฝ ็็ๅฎ IPใ
- ้ฆๆฌก็ปๅฝ๏ผๅฏๅจ
claudeๅ๏ผ่พๅ ฅ/loginๅฎๆ OAuth ๆๆ - ๅฎๅ
จ้ช่ฏ๏ผ้ๆถ่ฟ่ก
cac env check็กฎ่ฎค้็งไฟๆค็ถๆ๏ผไนๅฏไปฅwhich claude็กฎ่ฎคไฝฟ็จ็ๆฏ cac ๆ็ฎก็ claude - ่ชๅจๅฎๅ จๆฃๆฅ๏ผๆฏๆฌกๅฏๅจ Claude Code ไผ่ฏๆถ๏ผcac ไผๅฟซ้ๆฃๆฅ็ฏๅขใๅฆๆๅผๅธธไผ็ปๆญขไผ่ฏ๏ผไธไผๅ้ไปปไฝๆฐๆฎ
- ็ฝ็ป็จณๅฎๆง๏ผๆต้ไธฅๆ ผ่ตฐไปฃ็โโไปฃ็ๆญๅผๆถๆต้ๅฎๅ จๅๆญข๏ผไธไผๅ้็ด่ฟใๅ ็ฝฎๅฟ่ทณๆฃๆตๅ่ชๅจๆขๅค๏ผๆญ็บฟๅๆ ้ๆๅจ้ๅฏ
- IPv6๏ผๅปบ่ฎฎ็ณป็ป็บงๅ ณ้ญ๏ผ้ฒๆญข็ๅฎๅฐๅๆณ้ฒ
# npm๏ผๆจ่๏ผ
npm install -g claude-cac
# ๆๆๅจๅฎ่ฃ
curl -fsSL https://raw.githubusercontent.com/nmhjklnm/cac/master/install.sh | bash# ๅฎ่ฃ
Claude Code
cac claude install latest
# ๅๅปบ็ฏๅข๏ผ่ชๅจๆฟๆดป๏ผ่ชๅจไฝฟ็จๆๆฐ็๏ผ
cac env create work -p 1.2.3.4:1080:u:p
# ๅฏๅจ Claude Code๏ผ้ฆๆฌก้ /login๏ผ
claudeไปฃ็ๅฏ้ โ ไธ้่ฆไปฃ็ไน่ฝ็จ๏ผ
cac env create personal # ๅช่ฆ่บซไปฝ้็ฆป
cac env create work -c 2.1.81 # ๆๅฎ็ๆฌ๏ผๆ ไปฃ็cac claude install latest # ๅฎ่ฃ
ๆๆฐ็
cac claude install 2.1.81 # ๅฎ่ฃ
ๆๅฎ็ๆฌ
cac claude ls # ๅๅบๅทฒๅฎ่ฃ
็ๆฌ
cac claude pin 2.1.81 # ๅฝๅ็ฏๅขๅๆข็ๆฌ
cac claude uninstall 2.1.81 # ๅธ่ฝฝcac env create <name> [-p <proxy>] [-c <version>] # ๅๅปบๅนถ่ชๅจๆฟๆดป๏ผ่ชๅจ่งฃๆๆๆฐ็๏ผ
cac env ls # ๅๅบๆๆ็ฏๅข
cac env rm <name> # ๅ ้ค็ฏๅข
cac env set [name] proxy <url> # ่ฎพ็ฝฎ / ไฟฎๆนไปฃ็
cac env set [name] proxy --remove # ็งป้คไปฃ็
cac env set [name] version <ver> # ๅๆข็ๆฌ
cac <name> # ๆฟๆดป็ฏๅข๏ผๅฟซๆทๆนๅผ๏ผ
cac ls # = cac env lsๆฏไธช็ฏๅขๅฎๅ จ้็ฆป๏ผ
- Claude Code ็ๆฌ โ ไธๅ็ฏๅขๅฏไปฅ็จไธๅ็ๆฌ
.claude้ ็ฝฎ โ sessionsใsettingsใmemory ๅ่ช็ฌ็ซ- ่บซไปฝไฟกๆฏ โ UUIDใhostnameใMAC ็ญๅฎๅ จไธๅ
- ไปฃ็ๅบๅฃ โ ๆฏไธช็ฏๅข่ตฐไธๅไปฃ็๏ผๆไธ่ตฐไปฃ็๏ผ
| ๅฝไปค | ่ฏดๆ |
|---|---|
| ็ๆฌ็ฎก็ | |
cac claude install [latest|<ver>] |
ๅฎ่ฃ Claude Code |
cac claude uninstall <ver> |
ๅธ่ฝฝ็ๆฌ |
cac claude ls |
ๅๅบๅทฒๅฎ่ฃ ็ๆฌ |
cac claude pin <ver> |
ๅฝๅ็ฏๅข็ปๅฎ็ๆฌ |
| ็ฏๅข็ฎก็ | |
cac env create <name> [-p proxy] [-c ver] [--clone] [--telemetry mode] [--persona preset] |
ๅๅปบ็ฏๅข๏ผ่ชๅจๆฟๆดป๏ผ--telemetry transparent/stealth/paranoid ๆงๅถ้ฅๆต๏ผ--persona macos-vscode/... ็จไบๅฎนๅจ๏ผ |
cac env ls |
ๅๅบ็ฏๅข |
cac env rm <name> |
ๅ ้ค็ฏๅข |
cac env set [name] <key> <value> |
ไฟฎๆน็ฏๅข๏ผproxy / version / telemetry / persona๏ผ |
cac env check [-d] |
้ช่ฏๅฝๅ็ฏๅข๏ผ-d ๆพ็คบ่ฏฆๆ
๏ผ |
cac <name> |
ๆฟๆดป็ฏๅข |
| ่ช็ฎก็ | |
cac self update |
ๆดๆฐ cac ่ช่บซ |
cac self delete |
ๅธ่ฝฝ cac |
| ๅ ถไป | |
cac ls |
ๅๅบ็ฏๅข๏ผ= cac env ls๏ผ |
cac check |
ๆฃๆฅๅฝๅ็ฏๅข๏ผcac env check ็ๅซๅ๏ผ |
cac -v |
็ๆฌๅท |
host:port:user:pass ๅธฆ่ฎค่ฏ๏ผ่ชๅจๆฃๆตๅ่ฎฎ๏ผ
host:port ๆ ่ฎค่ฏ
socks5://u:p@host:port ๆๅฎๅ่ฎฎ
| ็นๆง | ๅฎ็ฐๆนๅผ |
|---|---|
| ็กฌไปถ UUID ้็ฆป | macOS ioreg / Linux machine-id / Windows wmic+reg shim |
| ไธปๆบๅ / MAC ้็ฆป | Shell shim + Node.js os.hostname() / os.networkInterfaces() hook |
| Node.js ๆ็บน้ฉๅญ | fingerprint-hook.js ้่ฟ NODE_OPTIONS --require ๆณจๅ
ฅ |
| ้ฅๆต้ปๆญ | DNS guard + ็ฏๅขๅ้ + fetch ๆฆๆช + ๅ็บงๆจกๅผ๏ผconservative/aggressive๏ผ |
| ๅฅๅบทๆฃๆฅ bypass | ่ฟ็จๅ Node.js ๆฆๆช๏ผๆ ้ /etc/hosts ๆ root๏ผ |
| mTLS ๅฎขๆท็ซฏ่ฏไนฆ | ่ช็ญพ CA + ๆฏ็ฏๅข็ฌ็ซๅฎขๆท็ซฏ่ฏไนฆ |
.claude ้
็ฝฎ้็ฆป |
ๆฏไธช็ฏๅข็ฌ็ซ็ CLAUDE_CONFIG_DIR |
cac wrapper๏ผ่ฟ็จ็บง๏ผ้ถไพตๅ
ฅๆบไปฃ็ ๏ผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
claude โโโโโบโ CLAUDE_CONFIG_DIR โ ้็ฆป้
็ฝฎ็ฎๅฝ โ
โ ็ๆฌ่งฃๆ โ ~/.cac/versions/<ver>/claude โ
โ ๅฅๅบทๆฃๆฅ bypass๏ผ่ฟ็จๅ
ๆฆๆช๏ผ โ
โ 12 ๅฑ้ฅๆต็ฏๅขๅ้ไฟๆค โโโโบ ไปฃ็ โโโบ Anthropic API
โ NODE_OPTIONS: DNS guard + ๆ็บน้ฉๅญ โ
โ PATH: ่ฎพๅคๆ็บน shim โ
โ mTLS: ๅฎขๆท็ซฏ่ฏไนฆๆณจๅ
ฅ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
~/.cac/
โโโ versions/<ver>/claude # Claude Code ไบ่ฟๅถๆไปถ
โโโ bin/claude # wrapper
โโโ shim-bin/ # ioreg / hostname / ifconfig / cat shim
โโโ fingerprint-hook.js # Node.js ๆ็บนๆฆๆช
โโโ cac-dns-guard.js # DNS + fetch ้ฅๆตๆฆๆช
โโโ ca/ # ่ช็ญพ CA + ๅฅๅบทๆฃๆฅ bypass ่ฏไนฆ
โโโ current # ๅฝๅๆฟๆดป็็ฏๅขๅ
โโโ envs/<name>/
โโโ .claude/ # ้็ฆป็ .claude ้
็ฝฎ็ฎๅฝ
โ โโโ settings.json # ็ฏๅขไธๅฑ่ฎพ็ฝฎ
โ โโโ CLAUDE.md # ็ฏๅขไธๅฑ่ฎฐๅฟ
โ โโโ statusline-command.sh
โโโ proxy # ไปฃ็ๅฐๅ๏ผๅฏ้๏ผ
โโโ version # ็ปๅฎ็ Claude Code ็ๆฌ
โโโ uuid / stable_id # ้็ฆป่บซไปฝ
โโโ hostname / mac_address / machine_id
โโโ client_cert.pem # mTLS ่ฏไนฆ
ๅฎๅ จ้็ฆป็่ฟ่ก็ฏๅข๏ผsing-box TUN ็ฝ็ป้็ฆป + cac ่บซไปฝไผช่ฃ ๏ผ้ข่ฃ Claude Codeใ
cac docker setup # ็ฒ่ดดไปฃ็ๅฐๅ๏ผ็ฝ็ป่ชๅจๆฃๆต
cac docker start # ๅฏๅจๅฎนๅจ
cac docker enter # ่ฟๅ
ฅๅฎนๅจ๏ผclaude + cac ็ดๆฅๅฏ็จ
cac docker check # ็ฝ็ป + ่บซไปฝไธ้ฎ่ฏๆญ
cac docker port 6287 # ็ซฏๅฃ่ฝฌๅไปฃ็ๆ ผๅผ๏ผip:port:user:pass๏ผSOCKS5๏ผใss://...ใvmess://...ใvless://...ใtrojan://...
cac โ Isolate, protect, and manage your Claude Code:
- Version management โ install, switch, rollback Claude Code versions
- Environment isolation โ independent
.claudeconfig + identity + proxy per environment - Privacy protection โ device fingerprint spoofing + telemetry modes (
conservative/aggressive) + mTLS - Config inheritance โ
--cloneinherits config from host or other envs,~/.cac/settings.jsonfor global preferences - Zero config โ no setup needed, auto-initializes on first use
Account ban notice: cac provides device fingerprint layer protection (UUID, hostname, MAC, telemetry blocking, config isolation), but cannot affect account-layer risks โ including your OAuth account, payment method fingerprint, IP reputation score, or Anthropic's server-side ban decisions. Account bans are an account-layer issue that cac does not address. See the Ban Risk FAQ for details.
Proxy tool conflicts: If you have Clash, Shadowrocket, Surge, sing-box or other proxy/VPN tools running locally, turn them off before using cac. TUN-mode compatibility is still experimental. Even if a conflict occurs, cac will fail-closed โ your real IP is never exposed.
- First login: Run
claude, then type/login. Health check is automatically bypassed. - Verify your setup: Run
cac env checkanytime. Usewhich claudeto confirm you're using the cac-managed wrapper. - Automatic safety checks: Every new Claude Code session runs a quick cac check. If anything is wrong, the session is terminated before any data is sent.
- Network resilience: Traffic is strictly routed through your proxy. If the proxy drops, traffic stops entirely โ no fallback to direct connection. Built-in heartbeat detection and auto-recovery โ no manual restart needed after disconnections.
- IPv6: Recommend disabling system-wide to prevent real address exposure.
# npm (recommended)
npm install -g claude-cac
# or manual
curl -fsSL https://raw.githubusercontent.com/nmhjklnm/cac/master/install.sh | bash# Install Claude Code
cac claude install latest
# Create environment (auto-activates, auto-resolves latest version)
cac env create work -p 1.2.3.4:1080:u:p
# Run Claude Code (first time: /login)
claudeProxy is optional:
cac env create personal # identity isolation only
cac env create work -c 2.1.81 # pinned version, no proxycac claude install latest # install latest
cac claude install 2.1.81 # install specific version
cac claude ls # list installed versions
cac claude pin 2.1.81 # pin current env to version
cac claude uninstall 2.1.81 # removecac env create <name> [-p <proxy>] [-c <version>] # create and auto-activate (auto-resolves latest)
cac env ls # list all environments
cac env rm <name> # remove environment
cac env set [name] proxy <url> # set / change proxy
cac env set [name] proxy --remove # remove proxy
cac env set [name] version <ver> # change version
cac <name> # activate (shortcut)
cac ls # = cac env lsEach environment is fully isolated:
- Claude Code version โ different envs can use different versions
.claudeconfig โ sessions, settings, memory are independent- Identity โ UUID, hostname, MAC are all different
- Proxy โ each env routes through a different proxy (or none)
| Command | Description |
|---|---|
| Version management | |
cac claude install [latest|<ver>] |
Install Claude Code |
cac claude uninstall <ver> |
Remove version |
cac claude ls |
List installed versions |
cac claude pin <ver> |
Pin current env to version |
| Environment management | |
cac env create <name> [-p proxy] [-c ver] [--clone] [--telemetry mode] [--persona preset] |
Create environment (auto-activates, --telemetry transparent/stealth/paranoid for telemetry control, --persona macos-vscode/... for containers) |
cac env ls |
List environments |
cac env rm <name> |
Remove environment |
cac env set [name] <key> <value> |
Modify environment (proxy / version / telemetry / persona) |
cac env check [-d] |
Verify current environment (-d for details) |
cac <name> |
Activate environment |
| Self-management | |
cac self update |
Update cac itself |
cac self delete |
Uninstall cac |
| Other | |
cac ls |
List environments (= cac env ls) |
cac check |
Verify environment (alias for cac env check) |
cac -v |
Show version |
| Feature | How |
|---|---|
| Hardware UUID isolation | macOS ioreg / Linux machine-id / Windows wmic+reg shim |
| Hostname / MAC isolation | Shell shim + Node.js os.hostname() / os.networkInterfaces() hook |
| Node.js fingerprint hook | fingerprint-hook.js via NODE_OPTIONS --require |
| Telemetry blocking | DNS guard + env vars + fetch interception + modes (conservative/aggressive) |
| Health check bypass | In-process Node.js interception (no /etc/hosts, no root) |
| mTLS client certificates | Self-signed CA + per-profile client certs |
.claude config isolation |
Per-environment CLAUDE_CONFIG_DIR |
cac wrapper (process-level, zero source invasion)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
claude โโโโโบโ CLAUDE_CONFIG_DIR โ isolated config dir โ
โ Version resolve โ ~/.cac/versions/<ver> โ
โ Health check bypass (in-process intercept) โ
โ Env vars: 12-layer telemetry kill โโโโบ Proxy โโโบ Anthropic API
โ NODE_OPTIONS: DNS guard + fingerprint โ
โ PATH: device fingerprint shims โ
โ mTLS: client cert injection โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
~/.cac/
โโโ versions/<ver>/claude # Claude Code binaries
โโโ bin/claude # wrapper
โโโ shim-bin/ # ioreg / hostname / ifconfig / cat shims
โโโ fingerprint-hook.js # Node.js fingerprint interception
โโโ cac-dns-guard.js # DNS + fetch telemetry interception
โโโ ca/ # self-signed CA + health bypass cert
โโโ current # active environment name
โโโ envs/<name>/
โโโ .claude/ # isolated .claude config directory
โ โโโ settings.json # env-specific settings
โ โโโ CLAUDE.md # env-specific memory
โ โโโ statusline-command.sh
โโโ proxy # proxy URL (optional)
โโโ version # pinned Claude Code version
โโโ uuid / stable_id # isolated identity
โโโ hostname / mac_address / machine_id
โโโ client_cert.pem # mTLS cert
Fully isolated environment: sing-box TUN network isolation + cac identity protection, with Claude Code pre-installed.
cac docker setup # paste proxy, network auto-detected
cac docker start # start container
cac docker enter # shell with claude + cac ready
cac docker check # network + identity diagnostics
cac docker port 6287 # port forwardingProxy formats: ip:port:user:pass (SOCKS5), ss://..., vmess://..., vless://..., trojan://...
MIT License