Claude Code私有化使用
都说claude code很好,但代码的事情需要慎重,不能使用私有化模型就不敢用,最终搞定了使用私有化模型的方法:
一、安装:mac上可能需要用sudo
claude code:
npm install -g @anthropic-ai/claude-code
claude code router:
npm install -g @musistudio/claude-code-router
二、配置
claude code:使用ccr则无需多余配置跳过登录要求
# .claude.json
"numStartups": 4,
"tipsHistory": {
"new-user-warmup": 1,
"plan-mode-for-complex-tasks": 3,
"memory-command": 3,
"shift-enter": 4,
"theme-command": 4
},
"promptQueueUseCount": 3,
"firstStartTime": "2026-04-03T07:11:40.580Z",
"opusProMigrationComplete": true,
"sonnet1m45MigrationComplete": true,
"migrationVersion": 11,
"appleTerminalSetupInProgress": false,
"appleTerminalBackupPath": "/Users/abc/Library/Preferences/com.apple.Terminal.plist.bak",
"optionAsMetaKeyInstalled": true,
"hasCompletedOnboarding": true,
"lastOnboardingVersion": "2.1.91",
"deepLinkTerminal": "Terminal",
"opus1mMergeNoticeSeenCount": 4,
"lastReleaseNotesSeen": "2.1.91",
"projects": {
"/Users/abc": {
"allowedTools": [],
"mcpContextUris": [],
"mcpServers": {},
"enabledMcpjsonServers": [],
"disabledMcpjsonServers": [],
"hasTrustDialogAccepted": false,
"projectOnboardingSeenCount": 1,
"hasClaudeMdExternalIncludesApproved": false,
"hasClaudeMdExternalIncludesWarningShown": false,
"exampleFiles": [],
"lastCost": 0,
"lastAPIDuration": 0,
"lastAPIDurationWithoutRetries": 0,
"lastToolDuration": 0,
"lastDuration": 143095,
"lastLinesAdded": 0,
"lastLinesRemoved": 0,
"lastTotalInputTokens": 0,
"lastTotalOutputTokens": 0,
"lastTotalCacheCreationInputTokens": 0,
"lastTotalCacheReadInputTokens": 0,
"lastTotalWebSearchRequests": 0,
"lastFpsAverage": 16.24,
"lastFpsLow1Pct": 1003.73,
"lastModelUsage": {},
"lastSessionId": "80227128-4ea4-4b2a-8f22-80b1bd101583",
"lastSessionMetrics": {
"frame_duration_ms_count": 2316,
"frame_duration_ms_min": 0.04019299999345094,
"frame_duration_ms_max": 18.358989000000065,
"frame_duration_ms_avg": 0.3129580051812182,
"frame_duration_ms_p50": 0.30174600000464125,
"frame_duration_ms_p95": 0.6338651500038394,
"frame_duration_ms_p99": 0.9816349100001382,
"hook_duration_ms_count": 1,
"hook_duration_ms_min": 1901,
"hook_duration_ms_max": 1901,
"hook_duration_ms_avg": 1901,
"hook_duration_ms_p50": 1901,
"hook_duration_ms_p95": 1901,
"hook_duration_ms_p99": 1901
}
},
"/Users/abc/.claude": {
"allowedTools": [],
"mcpContextUris": [],
"mcpServers": {},
"enabledMcpjsonServers": [],
"disabledMcpjsonServers": [],
"hasTrustDialogAccepted": true,
"projectOnboardingSeenCount": 0,
"hasClaudeMdExternalIncludesApproved": false,
"hasClaudeMdExternalIncludesWarningShown": false,
"lastCost": 0.12233499999999999,
"lastAPIDuration": 5435,
"lastAPIDurationWithoutRetries": 5319,
"lastToolDuration": 0,
"lastDuration": 260724,
"lastLinesAdded": 0,
"lastLinesRemoved": 0,
"lastTotalInputTokens": 24322,
"lastTotalOutputTokens": 29,
"lastTotalCacheCreationInputTokens": 0,
"lastTotalCacheReadInputTokens": 0,
"lastTotalWebSearchRequests": 0,
"lastFpsAverage": 0.83,
"lastFpsLow1Pct": 208.54,
"lastModelUsage": {
"qwen3-30b": {
"inputTokens": 213,
"outputTokens": 12,
"cacheReadInputTokens": 0,
"cacheCreationInputTokens": 0,
"webSearchRequests": 0,
"costUSD": 0.001365
},
"glm-5": {
"inputTokens": 24109,
"outputTokens": 17,
"cacheReadInputTokens": 0,
"cacheCreationInputTokens": 0,
"webSearchRequests": 0,
"costUSD": 0.12096999999999998
}
},
"lastSessionId": "2b82ec80-dca4-4c4f-a524-fad76bc8ec0c",
"lastSessionMetrics": {
"frame_duration_ms_count": 217,
"frame_duration_ms_min": 0.06400400001439266,
"frame_duration_ms_max": 17.76127100000008,
"frame_duration_ms_avg": 0.5869657050709898,
"frame_duration_ms_p50": 0.42231200000969693,
"frame_duration_ms_p95": 1.2305820000010472,
"frame_duration_ms_p99": 4.704016760002125,
"hook_duration_ms_count": 1,
"hook_duration_ms_min": 570,
"hook_duration_ms_max": 570,
"hook_duration_ms_avg": 570,
"hook_duration_ms_p50": 570,
"hook_duration_ms_p95": 570,
"hook_duration_ms_p99": 570
}
},
"userID": "3cebc034ef77f463176869ff6511663fde73839fabe76f5ea63d6e56c1afbf71",
"officialMarketplaceAutoInstallAttempted": true,
"officialMarketplaceAutoInstalled": true,
"ideHintShownCount": 4,
"metricsStatusCache": {
"enabled": false,
"timestamp": 1775200611427
},
"skillUsage": {
"init": {
"usageCount": 2,
"lastUsedAt": 1775205920760
}
}
}
# ~/.claude/settings.json
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-oXSRk***A84c",
"ANTHROPIC_BASE_URL": "http://localhost:8000",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3-30b",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "DeepSeek-V3",
"ANTHROPIC_MODEL": "glm-5",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"API_TIMEOUT_MS": "3000000"
},
"permissions": {
"allow": [
"Bash(npm test)",
"Bash(ls)",
"Bash(cat)",
"Bash(git status)",
"Read(cat, grep, ls, pwd, head, tail, find)",
"Write(sed, mv, rm, cp, mkdir, touch, echo)",
"Edit",
"Delete",
"Execute(bash, zsh, python3, node, git, ls, cat, grep)"
],
"deny": [
"Bash(curl)",
"Bash(rm)",
"Bash(sudo)",
"Bash(passwd)"
],
"ask": [
"Bash(reboot)",
"Bash(shutdown)"
],
"sandbox": false,
"defaultMode": "acceptEdits"
},
"model": "DeepSeek-V3",
"enabledPlugins": {
"superpowers@claude-plugins-official": true
},
"language": "中文",
"models": {
"default": "kimi",
"available": [
"DeepSeek-V3",
"kimi",
"qwen3-30b",
"glm-5"
]
}
}
claude code router:参数"api_base_url": "http://192.168.136.40:3000/v1/chat/completions"很重要,可以通过右上角日志中的调试来找到正确的路径
# ~/.claude-code-router/config.json
{
"LOG": true,
"LOG_LEVEL": "debug",
"CLAUDE_PATH": "",
"HOST": "127.0.0.1",
"PORT": 3456,
"APIKEY": "",
"API_TIMEOUT_MS": "600000",
"PROXY_URL": "",
"transformers": [],
"Providers": [
{
"name": "local",
"api_base_url": "http://192.168.136.40:3000/v1/chat/completions",
"api_key": "sk-oXSRkwNPo***A84c",
"models": [
"DeepSeek-V3",
"kimi",
"glm-5",
"im-30b"
],
"transformer": {
"use": [
"deepseek"
]
}
}
],
"StatusLine": {
"enabled": true,
"currentStyle": "default",
"default": {
"modules": []
},
"powerline": {
"modules": []
}
},
"Router": {
"default": "local,DeepSeek-V3",
"background": "local,DeepSeek-V3",
"think": "local,DeepSeek-V3",
"longContext": "local,DeepSeek-V3",
"longContextThreshold": 128000,
"webSearch": "local,DeepSeek-V3",
"image": "local,kimi"
},
"CUSTOM_ROUTER_PATH": ""
}
三、使用:
claude code:
claude code router:
# 通过浏览器配置ccr
ccr ui
# 运行claude code
ccr code
四、技能:
浙公网安备 33010602011771号