[2025年9月更新:从GGUF切换到MLX后,速度从60 tok/sec提升到80 tok/sec]

[2025年8月更新:模型从glm-4.5-air-mlx-4bit切换到gpt-oss-120b]

最近Claude Code比Cursor更流行,可惜国内使用Claude非常困难,我在Apple M4 Max + 128 GB内存的MacBook Pro上离线运行最新的OpenAI gpt-oss-120b开放权重模型,并通过它来驱动Claude Code功能,实现完全本地化的AI编程助手。

硬件环境

我用的是Apple M4 Max处理器和128GB内存的MacBook Pro,依托统一内存Unified Memory运行gpt-oss-120b非常流畅,可以把上下文长度Context Length设置为131072,这对于处理大量代码文件非常有帮助。如下图所示:

MacBook Pro配置
MacBook Pro配置

安装LM Studio

首先,需要安装LM Studio作为本地模型的运行环境。LM Studio的图形界面友好,对MLX支持很好,且支持个人和企业免费使用,开源模型更新非常快,包括最新的gpt-oss-120b模型。

  • 下载并使用openai/gpt-oss-120bGGUF模型(约64GB)

  • 将Context Length设置为131072

  • 将GPU Offload设置为36/36(将模型层全部加载到GPU内存中,提高运行速度)

  • 将CPU Thread Pool Size设置为16/16(尽可能使用M4 Max计算资源)

  • 打开Offload KV Cache to GPU Memory(将KV缓存转移到GPU内存,减轻CPU负担)

  • 打开Keep Model in Memory(保持模型常驻内存,避免重复加载)

  • 打开Try mmap()(使用内存映射加载模型,提高初始化速度)

  • 打开Flash Attention(启用快速注意力机制,大幅提升推理性能)

  • 启动本地服务器,默认服务在http://localhost:1234

安装Claude Code

接下来安装Claude Code,我用homebrew安装:

brew install claude-code
claude config set -g autoUpdates false

按照homebrew关闭自动更新,通过brew upgrade更新。

安装Claude Code Router

Claude Code Router是一个第三方工具,它可以将Claude Code的请求转发到本地的LM Studio服务器,从而实现离线使用Claude Code的功能。通过npm安装:

npm install -g @musistudio/claude-code-router@latest

这个路由器的核心功能是将Claude Code发出的API请求拦截并重定向到我指定的本地或远程模型服务。

配置Claude Code Router

安装完成后,需要创建一个配置文件,指定模型服务地址和API密钥。这是完整的配置示例:

cat > ~/.claude-code-router/config.json << EOF
{
  "LOG": false,
  "API_TIMEOUT_MS": "600000",
  "HOST": "127.0.0.1",
  "PORT": 7890,
  "APIKEY": "",
  "PROXY_URL": "",
  "NON_INTERACTIVE_MODE": false,
  "Transformers": [],
  "Providers": [
    {
      "name": "lmstudio",
      "api_base_url": "http://localhost:1234/v1/chat/completions",
      "api_key": "not_needed",
      "models": [
        "gpt-oss-120b",
        "gpt-oss-20b"
      ],
      "transformer": {
        "use": [
          ["maxtoken", {"max_tokens": 131072}],
          "enhancetool"
        ]
      }
    },
    {
      "name": "gemini",   
      "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
      "api_key": "YOUR_GEMINI_API_TOKEN",
      "models": [
        "gemini-2.5-flash",
        "gemini-2.5-pro"
      ],
      "transformer": {
        "use": [
          "gemini"
        ]
      }
    }
  ],
  "Router": {
    "default": "lmstudio,gpt-oss-120b",
    "background": "lmstudio,gpt-oss-120b",
    "think": "lmstudio,gpt-oss-120b",
    "longContext": "gemini,gemini-2.5-flash",
    "longContextThreshold": 131072,
    "webSearch": "gemini,gemini-2.5-flash"
  }
}
EOF

配置的关键点包括:

  • 设置本地代理服务地址为http://127.0.0.1:7890

  • 配置LM Studio作为主要模型提供者,指向本地运行的gpt-oss-120b

  • 配置Gemini 2.5 Flash作为长上下文模型和网络搜索提供方

  • 设置API超时时间为10分钟,以适应大型代码生成任务

启动服务

配置完成后,可以启动Claude Code Router服务,然后运行Claude Code:

ccr code

如果需要在修改配置后重启服务,可以使用:

ccr restart

检查系统状态,

$ ccr status

📊 Claude Code Router Status
════════════════════════════════════════
 Status: Running
🆔 Process ID: 71742
🌐 Port: 7890
📡 API Endpoint: http://127.0.0.1:7890
📄 PID File: /Users/username/.claude-code-router/.claude-code-router.pid

🚀 Ready to use! Run the following commands:
   ccr code    # Start coding with Claude
   ccr stop    # Stop the service

如果希望支持VSCode和Cursor的Claude Code插件,可以将ccr code映射到claude命令。这样点击VSCode和Cursor右上角的Claude Code图标,就会打开ccr code

echo "alias claude='ccr code'" >> ~/.zshrc

使用体验

通过上述配置,我成功在MacBook Pro上实现了完全离线运行的Claude Code。OpenAI的gpt-oss-120b运行非常流畅,回复速度和代码质量都能接受。

参考资料