SynapseWire

Claude Code 接 Ollama:零帳單,有上限

Ollama 能講 Anthropic API。Claude Code 指到本機 11434 就不再按 token 計費。顯存、工具呼叫和 64k 上下文得自己準備。

發布於:
木桌上的筆電與小型桌上型電腦,終端機畫面沒有可讀文字,網路線捲著,暖色檯燈,沒有商標。
FIG. 01 // 木桌上的筆電與小型桌上型電腦,終端機畫面沒有可讀文字,網路線捲著,暖色檯燈,沒有商標。

Ollama 加 Open WebUI 那篇 是聊天視窗。這篇是另一件事:Claude Code 那條指令列留著,Anthropic 的帳單拿掉。

HackerNoon 9 月 16 日那篇把步驟寫成「零元」。技術點更早。Ollama 1 月 16 日的部落格 寫明,v0.14.0 起相容 Anthropic Messages API,也就是 Claude Code 本來在講的那種。兩個環境變數、拉一個本機 coder,同一個 claude 二進位開始改你磁碟上的檔。沒有會扣款的 API key。token 換成電費跟等待。

Goose 也能換模型。下面只談你已經打習慣的那條 CLI。

你接的是轉接頭,不是 Sonnet

Claude Code 是客戶端,它以為對面是 Anthropic。官方相容頁 列出 /v1/messages、串流、system、多輪、影像、工具、thinking。本機模型不會呼叫工具的話,你沒有 agent,只有一個名字很像的聊天程式。Marktechpost 9 月 18 日盤點 harness 引 Goose 文件:沒有 tool calling 就只剩 chat completion。

官方環境變數:

export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_BASE_URL=http://localhost:11434

token 必填、被忽略。同一顆 shell 裡不要再放真的 ANTHROPIC_API_KEY。兩個都在,你會debug 到錯誤的主機。

HackerNoon 另外把 Haiku / Sonnet / Opus 預設別名指到同一個本機模型,避免 CLI 還在要 Sonnet。先確認模型已經 pull 下來。8GB 機器不要抄那三行。

Ollama 夠新的話:

ollama launch claude

它會問模型、寫設定、啟動。--config 只寫不開。還是把環境變數當合約記著。launch 改行為的那天,變數還在。

先對 RAM,再 pull

安裝還是那三條路:Linux 用 Ollama 的 curl 腳本、macOS 可用 brew install ollama、CLI 用 npm install -g @anthropic-ai/claude-code。Ollama 部落格也寫了 Claude Code 安裝:macOS/Linux/WSL 走 bash,Windows PowerShell 走 irm。不要抄被截斷的 curl。裝完:

ollama serve

只拉一個模型。

HackerNoon 的硬體表才是重點。

機器模型下載他們給的數字
8GBqwen2.5-coder:7b5GBHumanEval 約 76%
16GBglm-4.7-flash13GB30B MoE、3B 啟動、198K 上下文、工具呼叫 79.5%,M3 Pro 約 12 tok/s,RTX 3080 約 15
16GBqwen3-coder-next12GBSWE-bench 70.6%,80B/3B
24GB+ 顯存qwen3-coder:30b19GB文內「最好的本機 coder」
32GB RAMdevstral:24b14GBSWE-bench Verified 46.8%
32GB+ Macqwen3.6:27b17GBSWE-bench 77.2%

Ollama 自己推的 coding 模型 是 glm-4.7、minimax-m2.1、qwen3-coder。他們寫明 30B 的 Qwen 3 coder 要至少 24GB 顯存才順,拉長上下文還要更多。gpt-oss:20b 是另一個本機選項。glm-4.7:cloud 也能給 Claude Code 用,那就不是零元,是 Ollama 雲。今天下午若是為了程式碼不要出門,不要拉 :cloud。

ollama pull glm-4.7-flash

工具寫死 claude-3-5-sonnet 時,文件給的改名:

ollama cp qwen3-coder claude-3-5-sonnet

這是本機別名,不是 Sonnet。補丁變差時不要開 issue 罵官方。

上下文不夠,看起來像模型笨

agent 只看到 4k token,會原地打轉、反覆改同一個檔。那是餓,不是智商。

Marktechpost 引 Ollama 預設上下文:顯存不到 24 GiB 是 4k,24 到 48 是 32k,48 以上 256k。同一頁寫 coding agent 至少要 64,000:

OLLAMA_CONTEXT_LENGTH=64000 ollama serve

一月那篇 說 Claude Code 至少 32K,雲端模型永遠滿上下文。本機用顯存付。64k 塞不下,先換小模型,不要先砍到 32k 以下。7B 配 64k,比 30B 把 system prompt 擠掉有用。

HackerNoon 的省顯存開關:

export OLLAMA_FLASH_ATTENTION=1
export OLLAMA_KV_CACHE_TYPE=q8_0
export OLLAMA_NUM_PARALLEL=1

他們寫 q8_0 大約省 15% 顯存。NUM_PARALLEL=1 減少碎片。Flash attention 要後端真的實作。ollama serve 報錯就拿掉。

同一篇提到 OpenCode:工具呼叫失敗時把 num_ctx 拉到 16k–32k。換 harness,病是同一種。

先拿可以丟掉的 repo

cd /path/to/throwaway-project
claude --model glm-4.7-flash

8GB 就 qwen2.5-coder:7b。真有 24GB 卡再上 qwen3-coder:30b。盯 git diff。CLI 照樣能改檔。本機不等于沙盒。Hooks 那篇 是雲端版的約束方式。這裡一樣:不要指向帶 .env 祕密、工作區還很髒的樹。

建議順序:先讓它講一個函式,講不穩就停;再要一個會失敗的測試跟修復,工具呼叫必須動;最後才准動兩個檔。

SWE-bench 數字是廣告。qwen3-coder-next 的 70.6% 不是你那攤 Django 的 70.6%。glm-4.7-flash 的工具分數,是他們把它當 16GB 預設的原因。工具沒反應,你拉到聊天模型了。

Marktechpost 裡 OpenHands 要人從 Qwen3.6-35B-A3B 起跳(2026 年 5 月 21 日),量化版至少 24GB 顯存,或 64GB 統一記憶體的 Apple Silicon。那是另一個 harness。抄它的硬體誠實,不要抄錯二進位。

切回真 Claude,以及零元買不到什麼

unset ANTHROPIC_BASE_URL
unset ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_API_KEY="your-real-key"

重點是 unset。BASE_URL 還指著 11434,你以為打開錢包,其實還在跟 Qwen 說話。

零元是推論那一行。顯示卡你買過了。M3 Pro 上 12 tok/s 你等過了。30B MoE 只啟動 3B,不是 Anthropic 線上那顆。真正賺到的是隱私:repo 不出門。速度跟品質是代價。

不要拿正式環境的憑證「試試看本機夠不夠」。用 clone。測試綠、diff 小,你學到東西。agent 轉二十分鐘去改 linter 設定,你也學到東西,只是付電費,不是四位數 API 帳單。

出問題時,依序檢查這些

CLI 一啟動就要求登入。 代表 這個 終端機沒有設定 ANTHROPIC_BASE_URL。桌面 App、tmux 窗格、VS Code 內建終端機,不會繼承它們啟動後才修改的 .zshrc。先把環境變數印出來;如果 BASE_URL 是空的,你不是要付錢給 Anthropic,就是驗證會失敗。

CLI 啟動後,第一次呼叫工具就卡住。 上下文只有 4k。調高 OLLAMA_CONTEXT_LENGTH 並重新啟動 ollama serve,要真的重啟。再用一個小提示確認模型仍能載入;如果模型被卸載,代表 64k 視窗放不下,改成 32k 或換更小的模型。

CLI 寫出無法編譯的修補,再用刪測試的方式「修好」。 這是能力較弱的程式模型加上權限太大。本機執行不會自動加上人工把關,除非你自己加。Marktechpost 整理的清單中,Cline 的本機指南把 16–32GB RAM 對應到小型量化模型,並建議每次修改都要核准。你也可以養成在按下確認前先看 git diff 的習慣。如果你在付費版 CLI 上習慣自動接受,不要把這個習慣帶到 7B 模型上。

11434 埠上的 Ollama 之外,機器上還有別的「Claude 相容」代理。 之前實驗留下的一個 BASE_URL,就可能把流量送進你早已忘記的 Docker 容器。執行 curl -s http://localhost:11434/api/tags 應該會列出你下載的模型;如果什麼都沒有,代表你是在另一個 Ollama(Linux brew、發行版套件或 Docker)上下載的。

ollama launch claude 設定成了雲端模型。 檢查 CLI 橫幅上的模型名稱,名稱裡有 :cloud 就代表程式碼會離開本機。Ollama 1 月的部落格寫得很清楚,雲端模型也能搭配 Claude Code。這是功能,但也是很多人不小心推翻了「為了隱私才在本機跑」這個初衷的原因。

npm 全域安裝的 Claude Code 與 Anthropic 安裝腳本上個月裝的版本不同。 如果 --model 被拒絕,可能是舊版 CLI 不會傳遞模型參數,或新版 CLI 改了參數名稱。請看 claude --help,不要照抄 2025 年的程式碼片段。

這套組合不是什麼

它不能取代付費版 CLI 上的 hooks、skills 與 MCP。MCP 伺服器仍需要會呼叫工具的模型,一個無法輸出有效工具 JSON 的 7B 模型只會停在那裡。本機版 Claude Code 是「同樣的快捷鍵、較小的腦袋、封閉的網路」。

它也不是 Open WebUI 那一套。WebUI 適合提問、貼上答案;Claude Code 是被允許執行 git 與 pytest 的流程。如果你只需要私密聊天,留在 WebUI 就好,省下 64k 視窗要用的顯存。

Marktechpost 列出的其他工具之所以存在,是因為有人不想再勉強。OpenCode 可以用 ollama launch opencode 啟動,同樣需要 64k;OpenHands 則公布了具體的顯存需求。如果 Claude Code 的相容層讓你折騰了一下午,這些就是替代出口:Ollama 伺服器不變,只換用戶端。

HackerNoon 標題在窄義上成立:CLI 會起來,發票是空的。迴圈裡的模型是你 pull 下來的那隻。Ollama 的相容層不會把它變成 Sonnet。

分享文章 //
READER LETTERS

讀者回應与討論

[ 0 則評論 ]

暫無讀者回應,歡迎發表你的見解。

FURTHER READING

相關文章