Claude Code のトークン代を抑えたい。ローカルLLMの性能も上がってきたので、手元のGPUで同じことができるなら試したい。
そう考えて、数時間かけて環境を組みました。この記事はその記録です。

作る構成は次の3つだけです。
- 推論は Ollama(ローカル)で動かす
- 操作はいつもの Claude Code。VSCode の統合ターミナルから使う
- ターミナルを2枚に分け、片方を設計、もう片方を実装にあてる
新しく覚えるツールはありません。claude の向き先を変えるだけです。
環境は RTX 5090(VRAM 32GB)の Windows マシンです。
Claude Code をローカルモデルに向ける
Ollama は localhost:11434 で、Anthropic 互換の API を提供しています。Claude Code は接続先を変えられます。この2つが噛み合います。
つなぐためのコマンドが Ollama 側に用意されています。VSCode でプロジェクトのフォルダを開き、統合ターミナル(Ctrl + @)で打ちます。
ollama launch claude
モデルを選ぶと、いつもの Claude Code が起動します。画面も操作も普段と同じです。違うのは、応答が Anthropic のサーバーではなく机の下の GPU から返ってくることだけです。
設定ファイルは書き換わりません。使うたびにこのコマンドで起動します。
1つ注意があります。Ollama のデスクトップアプリを開いたままだと、Claude Code が接続待ちのまま止まりました。 アプリを終了すると動き始めます。Ollama のサーバー自体はアプリを閉じても動き続けているので、機能は失われません。
なお、Claude Code が起動しなくなったときの対処は「Claude Code が突然起動しなくなって焦った話|401エラーの原因と /login で直した手順」に書いています。
2026年時点で32GBに載るモデル
コーディング向けの上位モデルは MoE(混合エキスパート)に寄りました。総パラメータは30B〜80Bでも、1トークンあたり実際に動くのは3B前後です。32GB の VRAM で実用になるのは、この形の量子化版です。
| モデル | サイズ | 文脈長 | ライセンス |
|---|---|---|---|
| north-mini-code-1.0:q4_K_M | 19GB | 256K | Apache-2.0 + AUP |
| qwen3.8:27b | 18GB | 256K | Apache-2.0 |
| qwen3-coder:30b | 19GB | 256K | Apache-2.0 |
| devstral:24b | 14GB | 128K | Apache-2.0 |
実装側には north-mini-code-1.0 を選びました。Cohere が「コーディングエージェントで使うこと」を前提に後訓練したと明記していて、ツール呼び出しと thinking の両方に対応しているためです。
法人で使うなら、純粋な Apache-2.0 の qwen3-coder:30b か devstral:24b のほうが、法務が読む条文が1本で済みます。
セットアップは4手
1. コンテキスト長を64k以上に上げる
ここが最大の落とし穴です。
コンテキスト長は、AIが一度に見ていられる量です。人でいえば作業机の広さです。机に載りきらない書類は、古いものから床に落ちます。AIも同じで、超えたぶんは古い順に捨てられます。
Claude Code はファイルを読むたびに、その中身が全部この机に載ります。ソースを3本読ませて、修正案を出させて、エラーを見せて直させる。これだけで数万トークンです。
Ollama はハードウェアを見てこの値を自動で決めます。VRAM 24〜48GB なら 32k が割り当たります。一方 Claude Code が求めるのは 64k 以上です。
32k のままだと、作業の途中で最初に読んだファイルが机から落ちます。「さっき見せたコードを忘れている」という現象は、これが原因です。
Ollama アプリの設定にスライダーがあるので、64k へ動かします。環境変数でも設定できます。
OLLAMA_CONTEXT_LENGTH=65536
2. モデルの保管先を変える
既定は C ドライブの .ollama\models です。1本19GBあるので、何本か入れるとすぐ埋まります。
移すときはモデルを落とし直さず、フォルダごと動かすほうが速いです。先に Ollama を終了してから実行します。
robocopy "C:\Users\hidek\.ollama\models" "D:\ollama\models" /E /MOVE
実測で 53.3GB が4分29秒、約212MB/秒でした。移動後、Ollama の設定で Model location を D:\ollama\models に変えます。
保管先を選ぶときは D:\ollama\models まで降りて指定してください。 D: を選ぶと、ドライブの根元に blobs と manifests が作られ、モデルが1本も見えない空の置き場ができます。
3. モデルを取る
ollama pull north-mini-code-1.0:q4_K_M
4. 止め方を覚える
モデルは最後の応答から約5分 VRAM に残ります。すぐ空けたいときはこれです。
ollama stop north-mini-code-1.0:q4_K_M
GPUに全部載ったかを必ず確認する
この確認を飛ばさないでください。 一部でも CPU にあふれると、体感速度が桁で変わります。
モデルを起こしてから、別のターミナルで打ちます。
ollama run north-mini-code-1.0:q4_K_M "hello"
ollama ps
実際に返ってきた値です。
NAME SIZE PROCESSOR CONTEXT
north-mini-code-1.0:q4_K_M 19 GB 100% GPU 65536
18GBのモデルに64kの文脈を載せて合計19GB、100% GPU。32GBのカードに約13GB残りました。
PROCESSOR が 52%/48% CPU/GPU のような分割表示になったら、コンテキスト長を 32768 に落とすか、devstral:24b(14GB)に替えます。
VSCodeのターミナル2枚で、設計と実装を分ける
VSCode は同じフォルダを2つのウィンドウで開けませんが、統合ターミナルは何枚でも開けます。 Ctrl + Shift + 5 で左右に分割します。
左のペインで設計、右のペインで実装です。
ollama launch claude --model qwen3.8:27b -- --permission-mode plan
ollama launch claude --model north-mini-code-1.0:q4_K_M
設計側に qwen3.8:27b を置いたのは、画像に対応しているためです。画面のスクリーンショットを見せて仕様を詰められます。
設計側には --permission-mode plan を付けます。 ファイルを読んで計画は立てるが、変更はしないモードで起動します。「読めるが書けない」を権限として担保できるので、指示文で毎回「コードは書かないでください」と書く必要がなくなります。
VRAM 32GB に18GBのモデルは2本同時に載りません。ペインを行き来するたびにモデルが入れ替わります。入れ替えの待ちは、実際に使ってみると気になりませんでした。 「2本載らないから1本に絞るべき」という直感は、成り立ちませんでした。
応答の詳しさは、設定で変えられる
Claude Code には出力スタイル(Output style)という設定があり、応答の役割・口調・長さを切り替えられます。既定の Default に加えて4つ用意されています。
| スタイル | 中身 |
|---|---|
| Default | 既定。ソフトウェア開発を効率よく進める設定 |
| Proactive | 確認で止まらず、妥当な前提を置いて先に実行する |
| Concise | 結果から書き、前置きと実況を省いて短く返す(v2.1.237以降) |
| Explanatory | 作業の合間に「なぜそうしたか」の解説を挟む |
| Learning | 解説に加えて TODO(human) を置き、一部を自分で書かせる |
切り替えは /config を打って Output style を選ぶだけです。選択は .claude/settings.local.json に保存されます。
注意が1つあります。出力スタイルはシステムプロンプトの一部で、セッションの開始時に読まれます。 切り替えても、その場では変わりません。/clear を打つか、次に起動したときから効きます。
自分で作ることもできます。.claude/output-styles/ に Markdown を置き、keep-coding-instructions: true を入れると、コーディングの挙動は保ったまま振る舞いだけ変えられます。
ターミナルを2枚に分けているなら、ここも分けられます。 設計側を Explanatory にすると判断の理由まで読めるようになり、実装側は Default か Concise のままにしておくと差分だけが流れます。
実際にYOLOを動かしてみた
設計側に「あなたは VSCode に作業を依頼する設計者です。コードは読めても書けません」と伝えて、YOLO をカメラで動かすところまでやらせました。
設計者としては、十分に務まりました。 依頼文を構造化して出し、「1回1指示にして」と言うと粒度を落とし、自分にファイルアクセスがないことを正しく認識して説明しました。詰まったときに「スクリプトではなく CLI で」と設計を引き戻す判断もできています。
最終的にカメラのリアルタイム検出は、この1行で動きました。
yolo predict source=0 model=yolov8n.pt conf=0.3 show=True
壊れたのは実装側です。 頼んでいない状況確認用のスクリプトを勝手に作り、README に大量の追加コンテンツを盛り、Ultralytics が内蔵しているモデルの自動ダウンロードを自前で実装してパスのバグで落ちました。
体感としては次のとおりです。
- 速さ … RTX 5090 なら遅いと感じません。むしろクラウドより短く感じる場面がありました
- 指示の通じ方 … 違和感はありません。ただし長文や大量のコードで通用するかは未検証です
- 質 … YOLO のセットアップ程度なら難なくこなします。実用の判定はこれからです
「ローカルにすれば通信ゼロ」は誤解です
ここは誤解が多いので、正確に書いておきます。
「コードが外に出ないこと」と「通信がゼロであること」は別の話です。
Ollama は公式に「ローカル実行時、プロンプトと応答の内容は収集も送信もしない」と明記しています。ローカルのAPIへのアクセスに認証も要りません。ソースコードは1バイトも出ません。
一方で、Claude Code は自動更新のチェックなどでベンダー側と通信します。
ただしこれは、VSCode がバージョンを確認するのと同じ種類の通信です。 中身を運びません。VSCode も Windows Update も外に出ますが、それを全部止めている現場はありません。

気にすべきは1点だけです。 Ollama の設定にある Cloud のトグルを OFF にしてください。ここが ON だとクラウド実行のモデルが使え、その場合はプロンプトが Ollama のサーバーへ送られます。プロンプトが外に出る唯一の経路がここです。
まとめ
- RTX 5090(32GB)で、18GBのモデルに64kの文脈を載せて
100% GPUで動きました。 約13GBの余裕があります - 新しいツールは要りません。
ollama launch claudeで、いつもの Claude Code の向き先が変わるだけです - 最初にやることは1つ。コンテキスト長を64k以上に上げる。 既定の32kのままだと、途中で前の内容を忘れます
- 設計側と実装側でモデルを分けられます。 VRAM に2本同時に載らなくても、入れ替えの待ちは実用の範囲でした
- 実用に耐えるかの判定は、これからです。 YOLO のセットアップ程度は難なくこなしましたが、コード量が増えたときにどうなるかは分かりません
手順さえ持っておけば、モデルが新しくなるたびに ollama pull の1行を変えるだけで乗り換えられます。そこが、この構成のいちばんの価値です。
「自分のGPUでどこまでできるか試したい」「モデル選定とVRAMの見積もりで詰まっている」という方は、無料の30分オンライン診断で状況をお伺いします。
この記事の技術を、現場で実装したい方へ
AI×IoTの技術顧問として、月額契約で継続伴走しています。PoC設計・技術判断・組織設計・ベンダー管理・実装支援まで、現場で動くまで一緒に進めます。受託開発(請負)ではありません。
→ AI技術顧問サービスの詳細 / 無料30分オンライン診断 / 料金一覧





