LM Studio 0.4.1 完整攻略:從 Anthropic API 到 Claude Code 本地化

LM Studio 0.4.1 完整攻略:從 Anthropic API 到 Claude Code 本地化

lmstudio-041-cover

那天晚上我在 debug 一個棘手的 race condition,Claude Code 用得正順手,突然收到帳單通知 -- 這個月的 API 費用又破百美金了。我盯著螢幕想,明明手上這台 M4 Max 有 128GB 記憶體,為什麼每次推理都得送到雲端去?

後來我發現 LM Studio 0.4.1 悄悄加了一個殺手級功能:Anthropic API 相容端點。意思是,你可以用 3 行指令,把 Claude Code 直接接到跑在你自己電腦上的模型,零成本、完全隱私、不用改任何程式碼。

這篇文章就是我折騰了一個週末之後的完整筆記。


從 0.4.0 到 0.4.2,三個版本做了什麼

LM Studio 在 2026 年初連發三個版本,節奏快到我差點跟不上。先拉一條時間線出來看:

0.4.0(2026-01-28) 是一次大改版。引入了 llmster 守護程式,讓你不開 GUI 也能跑模型;支援平行推理,同時處理多個請求不再排隊;全新的 REST API v1 有了狀態管理能力;UI 也重新設計過了。

0.4.1(2026-01-30) 只隔了兩天就出來,改動看起來不大 -- 就加了一個 Anthropic API 相容端點 POST /v1/messages。但這個小功能的影響力遠超想像。因為 Claude Code、Cursor、Cline 這些工具都是走 Anthropic 的 Messages API 溝通的,有了這個端點,所有這些工具瞬間都能接上本地模型。

0.4.2(2026-02-06) 補上了 MLX 後端的平行請求支援。在 Apple Silicon 上跑模型的人終於可以同時餵多個請求,不用再一個一個等了。

三個版本連在一起看,LM Studio 的野心很清楚:它不只想當一個跑模型的 GUI,它想成為本地 AI 的基礎設施。


三層 API 架構,一張圖看懂

lmstudio-041-api-architecture

0.4.1 之後的 LM Studio 同時暴露三套 API,跑在同一個 port 上:

三層 API 一覽

  • 原生 REST API v1/api/v1/)-- 有狀態聊天 + MCP 整合,功能最完整
  • OpenAI 相容/v1/chat/completions, /v1/responses, /v1/embeddings)-- 讓原本接 OpenAI 的工具無縫切換
  • Anthropic 相容/v1/messages)-- 0.4.1 新增,讓 Claude Code 等工具直接對接
為什麼要搞三套?因為現在的 AI 工具生態已經分裂成兩個陣營了。一邊是 OpenAI 的 Chat Completions 格式,另一邊是 Anthropic 的 Messages 格式。LM Studio 兩邊都支援,等於幫你打通了所有工具鏈。

原生 API 則是 LM Studio 自己的東西,有些獨家功能像有狀態聊天管理和 MCP 整合,只有透過 /api/v1/ 才能用。

三套 API 共用同一個 port,靠 URL path 區分,所以啟動一次 server 就全部可用了。


Claude Code 整合實戰:3 行搞定

lmstudio-041-claude-code-workflow

好,這是整篇文章最重要的部分。先確認幾件事:

  • LM Studio 0.4.1 以上已安裝
  • 至少一個模型已下載(我推薦 openai/gpt-oss-20bqwen3-coder
  • Claude Code CLI 已安裝

然後就這麼簡單:

# 啟動 LM Studio server
lms server start --port 1234

# 把 Claude Code 指向本地
export ANTHROPIC_BASE_URL=http://localhost:1234/
export ANTHROPIC_AUTH_TOKEN=lmstudio

# 啟動 Claude Code,指定模型
claude --model openai/gpt-oss-20b

就這樣。沒了。Claude Code 會以為自己在跟 Anthropic 的伺服器說話,但實際上所有請求都被導到你本機的 LM Studio。

有幾個地方值得注意:

ANTHROPIC_AUTH_TOKEN 設成 lmstudio 只是因為 Claude Code 要求這個環境變數不能為空。LM Studio 預設不檢查認證,所以你填什麼都行,但不能不填。

--model 後面接的是你在 LM Studio 裡載入的模型識別碼。你可以用 lms ls 查看已下載的模型。

效能提醒:本地模型的推理速度跟你的硬體直接相關。在 M4 Max 上跑 20B 參數的模型,回應速度大概在每秒 30-50 tokens,體驗還不錯。但如果你的機器記憶體不夠,模型會被迫 offload 到磁碟,速度會慢到讓你懷疑人生。

---

API 使用範例

除了 Claude Code 的整合之外,你可能也想直接從自己的程式碼呼叫 LM Studio 的 API。以下是三種語言的範例。

cURL -- Anthropic Messages 格式

curl http://localhost:1234/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: lmstudio" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "openai/gpt-oss-20b",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用一句話解釋什麼是 WebSocket"}
    ]
  }'

cURL -- OpenAI Chat Completions 格式

curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer lmstudio" \
  -d '{
    "model": "openai/gpt-oss-20b",
    "messages": [
      {"role": "system", "content": "你是一個資深軟體工程師"},
      {"role": "user", "content": "解釋 event loop"}
    ],
    "temperature": 0.7,
    "stream": true
  }'

Python -- 用 Anthropic SDK

import anthropic

client = anthropic.Anthropic(
    base_url="http://localhost:1234",
    api_key="lmstudio",  # 任意值,LM Studio 預設不檢查
)

message = client.messages.create(
    model="openai/gpt-oss-20b",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "寫一個 Python decorator 實作 retry 機制"}
    ],
)

print(message.content[0].text)

TypeScript -- 用 OpenAI SDK

import OpenAI from "openai"

const client = new OpenAI({
  baseURL: "http://localhost:1234/v1",
  apiKey: "lmstudio",
})

const response = await client.chat.completions.create({
  model: "openai/gpt-oss-20b",
  messages: [
    { role: "user", content: "解釋 TypeScript 的 conditional types" },
  ],
  stream: true,
})

for await (const chunk of response) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "")
}

重點是:你原本用 Anthropic SDK 或 OpenAI SDK 寫的程式碼,只要改個 base_url 就能切到本地,不需要動其他邏輯。


llmster 無頭部署

如果你想在伺服器上跑 LM Studio 但不需要 GUI(比如在一台 Linux 工作站上),llmster 就是你要的東西。它是 0.4.0 引入的無頭守護程式。

安裝

# macOS / Linux
curl -fsSL https://lmstudio.ai/install-lmstudio-cli | bash

# 或者從 LM Studio GUI 裡安裝 CLI:
# 左側選單 > Developer > 安裝 CLI

基本使用

# 啟動 server(前景模式)
lmstudio server start --port 1234

# 背景模式
lmstudio server start --port 1234 &

# 載入模型
lms load openai/gpt-oss-20b

# 查看已載入模型
lms ps

# 停止 server
lms server stop

systemd 服務配置

在生產環境裡,你會想讓 llmster 跟著系統啟動。建立 /etc/systemd/system/lmstudio.service

[Unit]
Description=LM Studio Server (llmster)
After=network.target

[Service]
Type=simple
User=your-username
ExecStart=/usr/local/bin/lmstudio server start --port 1234
Restart=on-failure
RestartSec=10
Environment=HOME=/home/your-username

[Install]
WantedBy=multi-user.target

然後:

sudo systemctl daemon-reload
sudo systemctl enable lmstudio
sudo systemctl start lmstudio

# 確認狀態
sudo systemctl status lmstudio

這樣你就有了一台永遠在線的本地 AI 推理伺服器。把 ANTHROPIC_BASE_URL 指向這台機器的 IP,辦公室裡的每個人都能用。


CLI 命令速查表

lms 可以在終端機控制 LM Studio 的一切:

命令 說明
lms status 查看 server 狀態
lms server start --port 1234 啟動 API server
lms server stop 停止 server
lms load <model> 載入模型到記憶體
lms unload <model> 卸載模型
lms ps 查看已載入的模型
lms ls 列出已下載的模型
lms get <model> 下載模型
lms log stream 即時查看 server log
lms create 建立自訂模型配置
lms version 查看版本資訊

幾個我常用的組合:

# 一行搞定:啟動 server + 載入模型
lms server start --port 1234 && lms load openai/gpt-oss-20b

# 監控推理狀態
lms log stream | grep -i "inference"

# 快速切換模型
lms unload openai/gpt-oss-20b && lms load qwen3-coder

推薦模型

跑了一圈下來,以下是我覺得在 LM Studio 裡體驗最好的幾個模型:

模型 參數量 適合場景 記憶體需求
openai/gpt-oss-20b 20B 通用程式碼生成、對話 14GB
qwen3-coder 14B/32B 程式碼補全、重構 10GB / 22GB
ibm/granite-4-micro 8B 輕量推理、快速回應 6GB

openai/gpt-oss-20b 是我目前的主力。OpenAI 開源的這個模型在程式碼理解上出乎意料地好,跑在 M4 Max 上速度也夠快,是性價比最高的選擇。

qwen3-coder 如果你的機器記憶體夠大,32B 版本在程式碼任務上的表現非常接近雲端模型。14B 版本則是記憶體吃緊時的好選擇。

ibm/granite-4-micro 適合需要極快回應速度的場景。8B 參數量意味著它可以在幾乎任何 Apple Silicon Mac 上流暢運行,拿來做 code review 的初步篩選很合適。

選擇建議:如果你只想下載一個模型先試試,選 openai/gpt-oss-20b。它在通用性和效能之間取得了很好的平衡,搭配 Claude Code 使用的體驗也最穩定。

---

認證機制

LM Studio 預設是不需要認證的 -- 畢竟你是在本機跑,通常不需要擔心未授權的存取。

但如果你把 server 開放到區域網路,或者有安全需求,可以在 Developer Settings 裡啟用 API Token:

  1. 開啟 LM Studio
  2. 進入 Developer 頁面
  3. 找到 API Security 區塊
  4. 啟用 Require API Token
  5. 複製產生的 token

啟用之後,所有 API 請求都需要帶上認證:

# OpenAI 格式
curl http://localhost:1234/v1/chat/completions \
  -H "Authorization: Bearer YOUR_TOKEN" \
  ...

# Anthropic 格式
curl http://localhost:1234/v1/messages \
  -H "x-api-key: YOUR_TOKEN" \
  ...

對應到 Claude Code 的設定:

export ANTHROPIC_AUTH_TOKEN=YOUR_TOKEN

一個小提醒:即使啟用了 token 認證,LM Studio 目前還不支援 TLS。如果你需要在不安全的網路上暴露 API,建議在前面擺一個 nginx 或 Caddy 做 reverse proxy 加上 HTTPS。


MCP via API:把工具能力帶進本地

0.4.0 引入的原生 REST API 有一個很酷的功能:透過 integrations 欄位在 API 請求中掛載 ephemeral MCP server。這讓你的本地模型也能使用外部工具。

curl http://localhost:1234/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-oss-20b",
    "messages": [
      {"role": "user", "content": "台北現在幾度?"}
    ],
    "integrations": [
      {
        "type": "mcp",
        "server": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-weather"]
        }
      }
    ]
  }'

注意這個功能只在原生 REST API(/api/v1/)上可用,OpenAI 和 Anthropic 相容端點目前還不支援。

MCP 整合的威力在於它是 ephemeral 的 -- 每次請求都會啟動一個新的 MCP server,用完就丟。你不需要預先配置任何東西,只要在請求裡指定就好。

想像一下這樣的場景:你的本地模型接收到「幫我查一下這個 GitHub repo 的最新 issue」的請求,它透過 MCP 啟動一個 GitHub 工具,拿到資料後回答你。整個過程發生在你的機器上,資料不會離開本地網路。


我踩過的坑

用了一個多禮拜,有幾個問題值得提前警告你:

模型載入失敗。有時候 lms load 會卡住不動,通常是記憶體不夠。先用 lms ps 看看有沒有其他模型還在佔著記憶體,用 lms unload 清掉再試。

Claude Code 報 connection refused。確認 server 確實在跑(lms status),然後確認 port 沒有被別的東西佔住(lsof -i :1234)。另一個常見原因是 ANTHROPIC_BASE_URL 後面不小心多了一個斜線。

回應品質不如預期。本地模型畢竟不是 Claude Opus,在複雜的多步驟推理上會有明顯差距。我的做法是把本地模型當作日常的「第一道篩選」-- 簡單的 code review、格式轉換、文件生成交給它,真正困難的架構設計和 debug 再切回雲端。

streaming 斷斷續續。如果你用的是 MLX 後端(Apple Silicon),確保已經更新到 0.4.2,平行請求的支援在那個版本才加上。


這到底省了多少錢

我算了一下。以我平均每天用 Claude Code 約 200 次請求、每次大概 2000 tokens 的使用量,全部走 Anthropic API 的話,一個月大概要 80-120 美金。

切到本地之後,這筆錢直接歸零。

當然,「免費」是有代價的 -- 你需要一台夠力的機器,而且回應速度和品質都會打折扣。但對我來說,80% 的日常開發任務其實不需要最頂尖的模型。真正需要深度推理的時候,我隨時可以切回 claude --model claude-opus-4-6 走雲端。

兩者混用才是最聰明的策略。


參考資料


本文最初發布於 HackMD @BASHCAT

留言

這個網誌中的熱門文章

Arduino 課本可能沒教的事(1)

SI4432 搭配Arduino

燒錄 Arduino mini Pro 燒錄