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

那天晚上我在 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 架構,一張圖看懂

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 等工具直接對接
原生 API 則是 LM Studio 自己的東西,有些獨家功能像有狀態聊天管理和 MCP 整合,只有透過 /api/v1/ 才能用。
三套 API 共用同一個 port,靠 URL path 區分,所以啟動一次 server 就全部可用了。
Claude Code 整合實戰:3 行搞定

好,這是整篇文章最重要的部分。先確認幾件事:
- LM Studio 0.4.1 以上已安裝
- 至少一個模型已下載(我推薦
openai/gpt-oss-20b或qwen3-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:
- 開啟 LM Studio
- 進入 Developer 頁面
- 找到 API Security 區塊
- 啟用 Require API Token
- 複製產生的 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 走雲端。
兩者混用才是最聰明的策略。
參考資料
- LM Studio 官方網站
- LM Studio 0.4.1 Release Notes
- LM Studio 0.4.0 Release Notes
- LM Studio 0.4.2 Release Notes
- LM Studio API 文件
- LM Studio CLI 文件
- Claude Code 官方文件
- Anthropic Messages API 規格
- Model Context Protocol(MCP)
- llmster 無頭部署指南
本文最初發布於 HackMD @BASHCAT。
留言
張貼留言