惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
云风的 BLOG
云风的 BLOG
小众软件
小众软件
雷峰网
雷峰网
博客园 - 【当耐特】
V
V2EX
WordPress大学
WordPress大学
IT之家
IT之家
Last Week in AI
Last Week in AI
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
The Cloudflare Blog
Jina AI
Jina AI
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - badwood

iptables规则笔记 secueCRT脚本再试牛刀 主机基线脚本 大模型部署手册-英伟达 大模型部署手册-昇腾服务器 ssl自签证书+nginx 备忘 mindie推理框架及工程化 minio-2.使用 minio-1.搭建 旧源消失的rpm包安装-devtoolset-9 vllm-ascend 2/2 -双机推理 MCP-1.hello world vllm-ascend 1/2 -单机推理 ESP32-S3玩具1-使用Arduino evalscope使用2-使用自定义数据集压测 设置fdfs自动启动 FunASR mindie开启DeepSeek的128K xinference推理embedding等小模型 离线安装docker 昇腾910b服务器初始化 evalscope使用1-基础压测 大模型围栏-nginx+lua 大模型私有化部署-deepseek671-mindie dify-2:问题分类器调整
Claude Code私有化使用
badwood · 2026-04-03 · via 博客园 - badwood

  都说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

四、技能: