Claude Codeごっこは成立するのか ─ LM Studio × Gemma4で試したローカルAIの現実

Claude Codeごっこは成立するのか ─ LM Studio × Gemma4で試したローカルAIの現実 HowTo

Claude Codeが話題になっている。

理由は2つある。
ひとつは、その圧倒的な生産性。
もうひとつは、最近起きた“あの事故”だ。

コードを扱うAIが、コードを漏らす。
それは冗談のようでいて、現実に起きた。

便利さと引き換えに、
我々はどこまでをAIに委ねるのか。

そんな問いが、急に現実味を帯びてきた。


そこで、ふと思う。

Claude Codeは、本当に「特別な存在」なのか?
それとも、ローカルでも再現できるものなのか?


今回は、LM StudioとGemma4を使い、
Claude Codeをローカル環境で“それっぽく”動かしてみた。

いわば──

Claude Codeごっこ」である。

Claude Codeはローカルで再現できるのか

Claude Code
「コードを書くAI」ではなく、“開発環境そのもの”を変える存在だ。

だが気になる。

これ、ローカルLLMで再現できるのか?

課金も通信もなしで、
“それっぽい体験”だけでも成立するのか。

LM Studio 公式ブログに”Use your LM Studio Models in Claude Code”という記事が出ていたので、試してみた。

Use your LM Studio Models in Claude Code
Run Claude Code with any local model using LM Studio's Anthropic-compatible API

結論から言う。

動く。だが、それはClaude Codeではない。


今回の構成

今回の検証環境はシンプルだ。

  • Windows 11(ホスト)
  • WSL(Claude Code実行)
  • LM Studio(ローカルLLMサーバー)
  • Gemma4(e4b-it / 64K context)

構成としては

Claude Code (WSL)

HTTP (LAN IP)

LM Studio (Windows)

Gemma4

接続イメージと重要ポイント

ここが今回唯一のハマりどころ。

❌ localhost(127.0.0.1)は使えない

✅ ホストIP(192.168.x.x)で接続

WSLとWindowsはネットワーク的に分離されているため、

export ANTHROPIC_BASE_URL=http://192.168.1.xxx:1234
export ANTHROPIC_AUTH_TOKEN=lmstudio

この形で接続する必要がある。


LM Studio側の準備

やることはほぼこれだけ。

  1. LM Studioを起動
  2. Gemma4をロード(今回は64K context)
  3. サーバーモードON(ポート1234)

※ 認証はOFFで問題なし


Claude Codeの起動

WSL側で以下を実行。

claude --model gemma-4-e4b-it

これで接続される。

WSL環境で、Gemma4-E4Bを使ってClaude Codeが起動した
WSL環境で、Gemma4-E4Bを使ってClaude Codeが起動した

ここまでの導入は非常にスムーズ。
正直、拍子抜けするレベル。

動作速度は、以前試したCodex CLIとは雲泥の軽さ。


Claude Codeごっこを試す

ここからが本題。


Markdownエディタ(成功)

まずは軽めに。

「シンプルなMarkdownエディタを作れ」

→ 問題なく生成
→ 修正指示も通る

このあたりは非常に優秀。

“それっぽいClaude Code感”は出る

Claude Code + Gemma4 E4B が作った Markdown Editor。
Claude Code + Gemma4 E4B が作った Markdown Editor。

JavaScript生成(やや不安定)

少し複雑なJSを依頼。

  • 一応動くコードは出る
  • ただし整合性が怪しい
  • 修正ループが増える

このあたりから雲行きが怪しくなる


ブロック崩し(失敗)

そしてお約束。

「ブロック崩しを作れ」

→ 未完成
→ バグ多発
→ 修正不能ループ

これはCodexごっこと同じ結果。

4Bモデルの壁が露骨に出る


なぜ動かないのか

ここが一番重要。


推論力の限界(4B)

Gemma4(e4b)は軽量で速い。

だが、

  • 状態管理が弱い
  • 長いロジックが破綻する
  • 修正の一貫性が保てない

“完成させる能力”が足りない

ただ、Gemma4の名誉のために言っておくと、
ショートコードの生成能力は高いし、コメントもご親切。
Gemma4がコーディング用途に向かないとは言っていない。

生成コード抜粋

            // 2. Handle Bold (**text**) and Italic (*text*) - Must be done before general tags
            html = html.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>'); // **bold**
            html = html.replace(/\*(.*?)\*/g, '<em>$1</em>');         // *italic*

            // 3. Handle Unordered Lists (- or *)
            // This is a simplified approach; real parsing is complex. We wrap list items in <li> and assume they are inside <ul> tags.
            html = html.replace(/^[\s]*[-*]\s+(.*)$/gim, '<li>$1</li>');
            // Wrap all found list items into a single <ul> block (this is a major simplification)
            if (html.includes('<li>')) {
                html = html.replace(/<\/li>\s*<li>/g, ''); // Clean up potential double tags from multiple passes
                html = '<ul>' + html.replace(/<\/li><li>/g, '</li><li>') + '</ul>';
            }

            // 4. Handle Paragraphs and Line Breaks (Double newline or end of block)
            // Replace single newlines with <br> unless they are already inside a block element we just created.
            html = html.replace(/\n/g, '<br>');

            // 5. Final cleanup: Wrap remaining text blocks in paragraphs if not already wrapped by headings/lists
            // This is highly heuristic and imperfect but covers the basic requirement.
            let lines = html.split('<br>').filter(line => line.trim() !== '');
            let finalHtml = '';
            let inBlockElement = false;

コンテキストの消費が異常

実際にログを見ていると異様に感じる。

やり取り1回ごとにゴリゴリ削れる。

そして思う。

これがAPI課金だったら、いくらになるんだろうと…


Claude Codeの本質はモデルではない

Claude Codeは、

  • Planモード
  • 状態管理
  • 長文整合性
  • ツール統合

これらを前提にした“環境”だ。

単体モデルでは成立しない


Claude Code vs ごっこ

項目Claude Codeローカルごっこ
推論力
コード完成度
一貫性
体験統合されている断片的

それでも価値はある


オフラインで動く

  • クローズド環境OK
  • データ外に出ない

実ファイル操作の体験

Claude Codeっぽい操作は再現できる。

「触って理解する」には十分


教材として優秀

  • LLMの限界が見える
  • コンテキストの重要性が理解できる

むしろここに価値がある


結論

ローカルでClaude Codeは動くのか。

答えはシンプルだ。

動く。だが、それはClaude Codeではない。


Claude Codeはツールではない。
統合された体験そのものだ。

今回は、Gemma4を使用したが、Qwen3 Coder など本格的なコーディングモデルを使って、使い込んでみれば別の世界が開けるかもしれない。


参考リンク

LM Studio公式:Claude Code接続
https://lmstudio.ai/blog/claudecode


(あとがき的な一言)

Claude Codeを触ったことがない人にとって、
この構成は“お試しコース”としては成立する。

だが、同時にこうも感じるはずだ。

Claude Codeは、ローカルに閉じ込めるものではなかった。