Claude Code 伴侣帮助

使用 Claude Code 伴侣设置 Claude Code 的完整指南

前置要求 请先保证系统上已经安装了官方版的 Claude Code

生成代理脚本

生成启动脚本来使用此代理服务器。脚本会自动设置必要的环境变量并启动 Claude Code。

Windows 脚本 (ccc.bat)
增强脚本说明 此脚本会自动检查并修改 Claude Code 设置文件以确保代理配置生效。如果设置文件存在冲突配置,会自动备份原文件。
@echo off
REM Claude Code Companion - Windows Launcher
echo Configuring Claude Code for proxy use...

REM Set environment variables first (fallback and primary method)
set ANTHROPIC_BASE_URL=https://127.0.0.1:3000
set ANTHROPIC_AUTH_TOKEN=hello
set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
set API_TIMEOUT_MS=600000

REM Use embedded Node.js to process settings.json if it exists
node -e "const fs=require('fs');const path=require('path');const os=require('os');const claudeDir=path.join(os.homedir(),'.claude');const settingsFile=path.join(claudeDir,'settings.json');const targetEnv={'ANTHROPIC_BASE_URL':'https://127.0.0.1:3000','ANTHROPIC_AUTH_TOKEN':'hello','CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC':'1','API_TIMEOUT_MS':'600000'};function processSettings(){if(!fs.existsSync(settingsFile)){console.log('Claude settings file not found, environment variables already set');return true;}try{const content=fs.readFileSync(settingsFile,'utf8');const settings=JSON.parse(content);if(!settings.env)settings.env={};let needsUpdate=false;let backupCreated=false;for(const[key,targetValue]of Object.entries(targetEnv)){const currentValue=settings.env[key];if(currentValue!==targetValue){if(!backupCreated){const timestamp=new Date().toISOString().replace(/[:.]/g,'-');const backupFile=settingsFile+'.backup-'+timestamp;fs.copyFileSync(settingsFile,backupFile);console.log('Backed up settings to: '+backupFile);backupCreated=true;}if(currentValue){console.log('Updating '+key+': '+currentValue+' -> '+targetValue);}else{console.log('Adding '+key+': '+targetValue);}settings.env[key]=targetValue;needsUpdate=true;}}if(needsUpdate){fs.writeFileSync(settingsFile,JSON.stringify(settings,null,2));console.log('Settings updated successfully');}else{console.log('Settings already configured correctly');}return true;}catch(error){console.error('Error processing settings:',error.message);console.log('Environment variables already set as fallback');return false;}}processSettings();" >nul 2>&1

echo Starting Claude with proxy configuration...
claude %*
macOS 脚本 (ccc.command)
增强脚本说明 此脚本会自动检查并修改 Claude Code 设置文件以确保代理配置生效。如果设置文件存在冲突配置,会自动备份原文件。
#!/bin/bash
# Claude Code Companion - macOS Launcher
echo "Configuring Claude Code for proxy use..."

# Set environment variables first (fallback and primary method)
export ANTHROPIC_BASE_URL="https://127.0.0.1:3000"
export ANTHROPIC_AUTH_TOKEN="hello"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export API_TIMEOUT_MS="600000"

# Use embedded Node.js to process settings.json if it exists
node -e "const fs=require('fs');const path=require('path');const os=require('os');const claudeDir=path.join(os.homedir(),'.claude');const settingsFile=path.join(claudeDir,'settings.json');const targetEnv={'ANTHROPIC_BASE_URL':'https://127.0.0.1:3000','ANTHROPIC_AUTH_TOKEN':'hello','CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC':'1','API_TIMEOUT_MS':'600000'};function processSettings(){if(!fs.existsSync(settingsFile)){console.log('Claude settings file not found, environment variables already set');return true;}try{const content=fs.readFileSync(settingsFile,'utf8');const settings=JSON.parse(content);if(!settings.env)settings.env={};let needsUpdate=false;let backupCreated=false;for(const[key,targetValue]of Object.entries(targetEnv)){const currentValue=settings.env[key];if(currentValue!==targetValue){if(!backupCreated){const timestamp=new Date().toISOString().replace(/[:.]/g,'-');const backupFile=settingsFile+'.backup-'+timestamp;fs.copyFileSync(settingsFile,backupFile);console.log('Backed up settings to: '+backupFile);backupCreated=true;}if(currentValue){console.log('Updating '+key+': '+currentValue+' -> '+targetValue);}else{console.log('Adding '+key+': '+targetValue);}settings.env[key]=targetValue;needsUpdate=true;}}if(needsUpdate){fs.writeFileSync(settingsFile,JSON.stringify(settings,null,2));console.log('Settings updated successfully');}else{console.log('Settings already configured correctly');}return true;}catch(error){console.error('Error processing settings:',error.message);console.log('Environment variables already set as fallback');return false;}}processSettings();" >/dev/null 2>&1

echo "Starting Claude with proxy configuration..."
exec claude "$@"
Linux 脚本 (ccc.sh)
增强脚本说明 此脚本会自动检查并修改 Claude Code 设置文件以确保代理配置生效。如果设置文件存在冲突配置,会自动备份原文件。
#!/bin/bash
# Claude Code Companion - Linux Launcher
echo "Configuring Claude Code for proxy use..."

# Set environment variables first (fallback and primary method)
export ANTHROPIC_BASE_URL="https://127.0.0.1:3000"
export ANTHROPIC_AUTH_TOKEN="hello"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export API_TIMEOUT_MS="600000"

# Use embedded Node.js to process settings.json if it exists
node -e "const fs=require('fs');const path=require('path');const os=require('os');const claudeDir=path.join(os.homedir(),'.claude');const settingsFile=path.join(claudeDir,'settings.json');const targetEnv={'ANTHROPIC_BASE_URL':'https://127.0.0.1:3000','ANTHROPIC_AUTH_TOKEN':'hello','CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC':'1','API_TIMEOUT_MS':'600000'};function processSettings(){if(!fs.existsSync(settingsFile)){console.log('Claude settings file not found, environment variables already set');return true;}try{const content=fs.readFileSync(settingsFile,'utf8');const settings=JSON.parse(content);if(!settings.env)settings.env={};let needsUpdate=false;let backupCreated=false;for(const[key,targetValue]of Object.entries(targetEnv)){const currentValue=settings.env[key];if(currentValue!==targetValue){if(!backupCreated){const timestamp=new Date().toISOString().replace(/[:.]/g,'-');const backupFile=settingsFile+'.backup-'+timestamp;fs.copyFileSync(settingsFile,backupFile);console.log('Backed up settings to: '+backupFile);backupCreated=true;}if(currentValue){console.log('Updating '+key+': '+currentValue+' -> '+targetValue);}else{console.log('Adding '+key+': '+targetValue);}settings.env[key]=targetValue;needsUpdate=true;}}if(needsUpdate){fs.writeFileSync(settingsFile,JSON.stringify(settings,null,2));console.log('Settings updated successfully');}else{console.log('Settings already configured correctly');}return true;}catch(error){console.error('Error processing settings:',error.message);console.log('Environment variables already set as fallback');return false;}}processSettings();" >/dev/null 2>&1

echo "Starting Claude with proxy configuration..."
exec claude "$@"

使用说明

如何使用
  1. 下载并保存上述脚本到您的系统
  2. 使脚本可执行(Linux/macOS):
    chmod +x ccc.sh # chmod +x ccc.command
  3. 使用脚本代替直接调用 claude:
    # Windows
    ccc.bat --help
    ccc.bat interactive

    # Linux/macOS
    ./ccc.sh --help
    ./ccc.command interactive
智能配置 脚本会自动检测并处理 Claude Code 设置文件,确保代理配置始终生效。
增强功能
  • 自动修改 settings.json 文件
  • 冲突时自动备份原始配置
  • 失败时环境变量后备支持
  • 保留用户自定义设置
环境变量说明
  • ANTHROPIC_BASE_URL: 代理服务器 URL
  • ANTHROPIC_AUTH_TOKEN: 认证令牌
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 禁用非必要流量
  • API_TIMEOUT_MS: API 超时时间(毫秒)
常见问题
完全安全。脚本在修改前会自动创建带时间戳的备份文件,您可以随时恢复。脚本只修改代理相关的环境变量,保留所有其他配置。
不需要单独安装。Claude Code 本身基于 Node.js,所以脚本可以直接使用现有的 Node.js 环境。
在 ~/.claude/ 目录中找到 settings.json.backup-* 文件,将其重命名为 settings.json 即可恢复。