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

[TOC]
那天晚上我在 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 上:
:::info
**三層 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 行搞定

好,這是整篇文章最重要的部分。先確認幾件事:
- LM Studio 0.4.1 以上已安裝
- 至少一個模型已下載(我推薦 `openai/gpt-oss-20b` 或 `qwen3-coder`)
- Claude Code CLI 已安裝
然後就這麼簡單:
```bash=1
# 啟動 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` 查看已下載的模型。
:::warning
**效能提醒**:本地模型的推理速度跟你的硬體直接相關。在 M4 Max 上跑 20B 參數的模型,回應速度大概在每秒 30-50 tokens,體驗還不錯。但如果你的機器記憶體不夠,模型會被迫 offload 到磁碟,速度會慢到讓你懷疑人生。
:::
---
## API 使用範例
除了 Claude Code 的整合之外,你可能也想直接從自己的程式碼呼叫 LM Studio 的 API。以下是三種語言的範例。
### cURL -- Anthropic Messages 格式
```bash=1
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 格式
```bash=1
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
```python=1
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
```typescript=1
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 引入的無頭守護程式。
### 安裝
```bash=1
# macOS / Linux
curl -fsSL https://lmstudio.ai/install-lmstudio-cli | bash
# 或者從 LM Studio GUI 裡安裝 CLI:
# 左側選單 > Developer > 安裝 CLI
```
### 基本使用
```bash=1
# 啟動 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`:
```ini=1
[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
```
然後:
```bash=1
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` | 查看版本資訊 |
幾個我常用的組合:
```bash=1
# 一行搞定:啟動 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 的初步篩選很合適。
:::success
**選擇建議**:如果你只想下載一個模型先試試,選 `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 請求都需要帶上認證:
```bash=1
# 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 的設定:
```bash
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。這讓你的本地模型也能使用外部工具。
```bash=1
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 官方網站](https://lmstudio.ai)
- [LM Studio 0.4.1 Release Notes](https://lmstudio.ai/blog/lmstudio-0.4.1)
- [LM Studio 0.4.0 Release Notes](https://lmstudio.ai/blog/lmstudio-0.4.0)
- [LM Studio 0.4.2 Release Notes](https://lmstudio.ai/blog/lmstudio-0.4.2)
- [LM Studio API 文件](https://lmstudio.ai/docs/api)
- [LM Studio CLI 文件](https://lmstudio.ai/docs/cli)
- [Claude Code 官方文件](https://docs.anthropic.com/en/docs/claude-code)
- [Anthropic Messages API 規格](https://docs.anthropic.com/en/api/messages)
- [Model Context Protocol(MCP)](https://modelcontextprotocol.io)
- [llmster 無頭部署指南](https://lmstudio.ai/docs/advanced/headless)