Claude Codeをオフラインで使う方法は?ローカルLLMとの連携で安全性を高める手順!

こんにちは。最近のAI進化、本当に目覚ましいですよね。特にAnthropicがリリースした「Claude Code」は、リポジトリ全体を構造的に理解して、バグ修正から機能追加まで自律的に動いてくれるので、開発がめちゃくちゃ捗ります。まさに「隣に優秀なシニアエンジニアが常駐している」ような感覚です。でも、いざ実務や仕事で使うとなると、「ソースコードをクラウドに送りたくない」「API料金が積み重なるのが怖い」「オフラインの環境でも使いたい」といった不安や要望も出てくるのではないでしょうか。

ネットのコミュニティを見てみると、Claude Codeのオフライン運用を考えている人はかなり多いみたいです。中には、2026年に話題となった大規模なビルドパッケージ流出事案などを教訓に、機密保持の観点から内部構造を解析して、完全にローカルで動かそうとする動きも活発になっています。この記事では、そんなセキュリティやコストの悩みを一気に解消するために、完全にローカル環境でClaude Codeを動かす具体的な手順や、その際に絶対に見落としてはいけない機密情報の守り方について、どこよりも詳しくお話ししていきますね。

この記事で学べること:

  • OllamaやLiteLLMを連携させて、Claude Codeを完全オフラインで動かす構築手順
  • M5 MaxなどのApple Silicon環境で、推論レスポンスを爆速にする最適化テクニック
  • .envファイルが勝手に履歴保存されるリスクと、それを物理的に防ぐ防御策
  • AiderやClineといった、他のローカル対応AIツールとの賢い使い分け方
目次

Claude Codeをオフラインで動かすメリット

Claude Codeをオフラインで運用することは、単なる「通信費の節約」以上の価値があります。最大のメリットは、何といっても「究極のプライバシー保護」です。どれだけ規約で保護されているとはいえ、企業のコア資産であるソースコードを外部サーバーに送信することに抵抗を感じる現場は少なくありません。ローカル運用であれば、データは一歩も外に出ないため、軍事級の機密保持が求められるプロジェクトでもAIの恩恵を享受できます。また、インターネットの速度に左右されないため、新幹線の中やカフェの不安定なWi-Fi環境でも、常に安定したパフォーマンスでコーディングを継続できるのは、ノマド的な働き方をするエンジニアにとっても大きな魅力かなと思います。

OllamaとLiteLLMの導入手順

ローカルでClaude Codeを動かすための最もスタンダードで再現性が高い方法は、Ollama(オラマ)LiteLLM(ライトLLM)を組み合わせる構成です。もともとClaude CodeはAnthropicの公式サーバー(API)と通信するように設計されています。この「通信の宛先」を、自分のパソコン内部で待ち構えているローカルサーバーに向けてあげるのが構築の肝になります。

具体的な手順としては、まず「Ollama」を公式サイトからインストールします。これはローカルでLLM(大規模言語モデル)を動かすためのエンジンですね。次に、コーディング能力に定評のあるモデル(例えば qwen2.5-coder:14b など)をダウンロードします。しかし、ここで問題が発生します。Claude CodeはAnthropic独自の特殊なメッセージ形式(Messages API)で話しかけてくるため、Ollamaが直接その言葉を理解できないんです。そこで、通訳役として「LiteLLM」を導入します。LiteLLMをプロキシ(仲介役)として立ち上げることで、Claude CodeからのリクエストをOllamaが解釈できる形式にリアルタイムで変換・橋渡ししてくれるようになります。この構成さえ作ってしまえば、Claude Code側は「相手が本物のAnthropicサーバーだ」と思い込んだまま、手元のPC内のAIと会話を始めるわけです。設定自体はコマンド数行で終わるので、一度覚えてしまえば意外と簡単ですよ。

導入の3ステップ詳細:

  1. Ollamaでモデルを取得: ターミナルで ollama pull qwen2.5-coder:14b を実行し、脳みそとなるモデルをダウンロード。
  2. LiteLLMでプロキシを起動: pip install litellm 後、 litellm --model ollama/qwen2.5-coder:14b --port 4000 を実行して待機。
  3. 環境変数を設定: 新しいターミナルで export ANTHROPIC_BASE_URL=http://localhost:4000 を入力。これでClaude Codeの接続先が自分のPCに固定されます。

ネット環境不要なローカルモデルの選び方

オフライン環境でストレスなく、かつ「使える」レベルの開発を維持するには、モデル選びが成功の8割を握っていると言っても過言ではありません。パラメータ数が大きすぎると推論に時間がかかりすぎて「自分で書いたほうが早い」となってしまいますし、逆に小さすぎるとロジックの破綻や構文エラーが頻発してしまいます。現在のAI開発シーンにおいて、一般的な開発用PCで最もバランスが良いとされているのが、14B(140億パラメータ)クラスのモデルです。

特に中国のアリババグループが公開した「Qwen2.5-Coder」シリーズは、オープンソースでありながら、一部のベンチマークで本家Claude 3.5 Sonnetに迫るスコアを叩き出しており、現在ローカル開発のデファクトスタンダードになりつつあります。もし、あなたが使っているパソコンのメモリ(RAM)が16GB程度であれば「7Bクラス」が限界かもしれませんが、32GB以上積んでいるのであれば、迷わず「14B〜32Bクラス」を試してみてください。特に複雑なリファクタリングや、複数のファイルにまたがる依存関係の解消を行う場合、このパラメータ数の差が「賢さ」として如実に現れます。自分のマシンスペックと相談しながら、最適な「相棒」を見つけるのが、ローカル運用の醍醐味かもしれませんね。

搭載メモリ (RAM)推奨モデルサイズ期待できる精度動作感
8GB – 16GB1.5B / 7B基本的な補完・単一関数の作成爆速だが、複雑な指示は苦手
24GB – 32GB14B実用レベル。リファクタリングも可能快適。メインで使える安定感
64GB以上32B / 70B極めて高い。本家Claudeに近い理解力やや重厚。M5 Max等ならサクサク

初心者でも分かるAPIリダイレクト設定

「リダイレクト」や「プロキシ」と聞くと、ネットワークエンジニアのような専門知識が必要に思えるかもしれませんが、仕組みはとてもシンプルです。例えるなら、Claude Codeという「手紙(リクエスト)を出す人」に対して、「いつもの郵便局(Anthropicサーバー)が休みだから、隣の家のポスト(自分のPCのポート4000番)に投函してね」と教えるだけのことです。この設定を一度行えば、インターネットへの通信は発生しなくなります。

具体的な設定方法は、ターミナルで特定の環境変数を宣言するだけです。多くのOSやシェルでは export ANTHROPIC_BASE_URL=http://localhost:4000 という1行を実行することで、そのセッション中のClaude Codeの挙動をコントロールできます。Windowsの場合は set コマンドやシステム環境設定から同様のことが可能です。これだけで、Claude Codeは「あ、今日はローカルのAI君と仕事をするんだな」と理解し、外部サーバーへのアクセスを一切行わずにタスクをこなし始めます。万が一設定がうまくいっていない場合は、ネットを物理的に切断(機内モード)した状態で claude コマンドを叩いてみてください。エラーが出ずに応答が返ってくれば、リダイレクト成功の証拠です!

Macで爆速動作するMLXの活用術

もしあなたが、Apple Silicon(M1、M2、M3、そして最新のM5シリーズなど)を搭載したMacを使っているなら、一般的な仮想化ツールを使うのは非常にもったいないです。Appleが自社チップ向けに最適化して公開しているMLXフレームワークをぜひ活用してください。これは、Macの強力なGPUと共有メモリをダイレクトに叩いて推論を行うため、標準的なDocker経由や汎用ライブラリを使うよりも、圧倒的にレスポンスが速くなります。

実際の検証データによると、一般的なローカルサーバー構成では1つのコード生成タスクに1分以上(約60〜100秒)かかっていたケースでも、MLXに最適化されたモデルと専用のサービングツール(MLX-LMなど)を組み合わせることで、わずか15〜20秒程度まで短縮されることがあります。体感としては「待たされている」感覚がほぼなくなり、リアルタイムで対話しているようなスムーズさが得られます。特にメモリ帯域幅が広いM5 Maxなどのハイエンドチップであれば、数十億パラメータのモデルも羽が生えたように軽く動きます。Macユーザーにとって、MLX環境の構築はローカルAI運用の「完成形」と言えるかもしれません。

MLXを導入するメリット

  • ユニファイドメモリのフル活用: ビデオメモリの制限を気にせず、メインメモリを最大限モデルに割り当て可能。
  • 低消費電力: CPUでのゴリ押し推論に比べ、バッテリー持ちが格段に良くなる。
  • コミュニティの活発さ: Hugging Face上には、MLX形式に最適化された最新モデルが日々アップロードされている。

Llama.cppでツール呼び出しを有効化

より詳細なカスタマイズを求める上級者や、Windows/Linux環境で動作を極めたいエンジニアには、伝統的なLlama.cppを使った構成が依然として人気です。非常に軽量で、CPUだけでもそれなりに動くのが強みですが、Claude Codeと連携させる際には一つだけ、非常に大きな「落とし穴」があります。それは、Claude Codeが「ファイルを作成する」「シェルコマンドを実行する」といった自律的なアクション、いわゆるTool Use(ツール呼び出し)を行うための設定です。

Llama.cppをサーバーモードで起動する際、単に起動するだけではモデルは「文章を書く」ことしかできません。Claude Codeが期待する形式でツールを操作させるためには、サーバー起動時のオプションに必ず --jinja フラグ(または適切なチャットテンプレートの指定)を付与する必要があります。これがないと、Claudeが「ファイルを保存したいのに、その方法がわからない(または、ただのテキストとして出力してしまう)」という、いわば手足が縛られた状態になってしまいます。もしローカル運用中に「Claudeが指示を聞いてくれない」「コマンドを実行してくれない」という症状が出たら、まずこのサーバー側のテンプレート設定を疑ってみてください。ここをクリアすれば、ローカルLLMは文字通りあなたのPCを自在に操る有能なエージェントに進化します。

注意: 古いバージョンのLlama.cppや、ツール呼び出しに対応していない軽量モデル(Quantizedモデルの一部など)では、この --jinja 設定をしても正しく動作しない場合があります。必ずモデルカード(説明書)を確認し、「Function Calling」や「Tool Use」に対応しているモデルを選びましょう。

Claude Codeのオフライン運用と安全性

環境構築が無事に完了し、ローカルでClaude Codeがスイスイ動き出すと、ついつい気が緩んでしまいがちです。しかし、実は「ローカルで動かしているから100%安全」というのは少し危険な思い込みかもしれません。AIツール特有の挙動や、開発環境の隠れた仕様によって、意図しない形で機密情報が漏洩するリスクは依然として残っているからです。ここからは、プロの開発者として絶対に押さえておくべき「守り」のテクニックについて解説します。

機密情報の漏洩を防ぐ.envファイルの扱い

開発プロジェクトに欠かせない .env ファイルには、データベースのパスワードや、外部サービスの秘密鍵などがギッシリ詰まっていますよね。Claude Codeを利用する際、最も注意すべきなのは、このツールの「親切すぎるバックアップ機能」です。Claude Codeは、コードの書き換えに失敗した時のロールバック用として、編集したファイルの履歴を自動的に保存する仕組みを持っています。

問題は、その保存先です。たとえ .gitignore.env を除外していたとしても、Claude Codeがそのファイルを読み書きの対象にした瞬間、ユーザーディレクトリ直下の隠しフォルダ(例:~/.claude/file-history/)の中に、平文のままバックアップがコピーされてしまうのです。もし、あなたが共用PCを使っていたり、その隠しフォルダを含めてクラウドストレージにバックアップを取っていたりすると、知らないうちにパスワードを世界中に公開してしまうことになりかねません。オフライン運用であっても、作業後には claude project purge コマンドを叩いて履歴を完全に消去するか、特定のファイルを履歴対象から外す設定を徹底することが、自分と会社を守るための最低条件です。

1Passwordで秘密情報を守る新常識

前述のような「履歴フォルダへの意図しないコピー」を根本から防ぐための最新の解決策として注目されているのが、1Password Environments(または類似のシークレット管理ツール)の活用です。これは、プロジェクトフォルダの中に実体としての .env ファイルを置かない、という革新的なアプローチです。秘密情報はすべて1Passwordの安全な金庫内に保存し、プログラムを実行する瞬間にだけ、メモリ上に仮想的な環境変数として展開します。

これの何が凄いかというと、Claude Codeがプロジェクト内をスキャン(走査)しようとしても、そこに物理的なファイルが存在しないため、読み取ることが物理的に不可能になります。また、AIが特定の秘密情報にアクセスしようとした場合、1Password側が「AIが情報にアクセスしようとしています。許可しますか?」とデスクトップに通知を出してくれる設定も可能です。これにより、AIによる「サイレントな機密奪取」を未然に防ぐことができます。現代のエンジニアにとって、シークレット情報は「ファイルで管理するもの」から「必要な時にだけ呼び出すもの」へと意識をアップデートする必要があるかもしれませんね。

通信制限による有料機能の消失バグに注意

セキュリティを意識するあまり、ネットワークを完全に遮断したり、環境変数で DISABLE_TELEMETRY=1(使用状況送信の無効化)を設定したりすることがあると思います。これ自体は正しいアプローチなのですが、現在のClaude Codeの仕様上、思わぬ副作用を招くことが報告されています。それは、Anthropic側が行っている「ユーザーのプラン確認(ライセンスチェック)」までもが阻害されてしまう現象です。

よくあるトラブル事例:

せっかくProプランを契約しているのに、テレメトリや特定のドメインを完全にブロックした結果、Claude Code側が「このユーザーは無料枠だな」と誤認してしまうことがあります。その結果、最新モデルが選択リストから消えたり、一度に扱えるトークン量(コンテキストウィンドウ)が極端に狭まったりする「サイレント無効化」が発生します。もしローカル構築後に「なんかClaudeがバカになった?」と感じたら、まずはネットワーク制限を一時的に緩めて、プランの認証が通っているかを確認してみてください。

AiderやClineなど代替ツールの比較

Claude Codeは非常に強力ですが、ローカル運用という観点で見ると、他にも素晴らしい選択肢がたくさんあります。目的や好みのUIに合わせて、これらを使い分けるのが「賢いエンジニア」のスタイルです。例えば、ターミナル作業がメインならAider、VS Codeを離れたくないならClineやContinueといった具合です。

ツール名主な特徴・強みローカル運用のし易さおすすめの層
Claude CodeAnthropic公式の安心感。高い自律性。△(要プロキシ設定)公式の品質をCLIで使いたい人
AiderGit連携が神。コミットメッセージも自動生成。◎(設定が最も簡単)CLI中心のプロエンジニア
ClineVS Code拡張。ブラウザ操作や画像認識も。○(設定項目は多い)GUIで視覚的に開発したい人
ContinueCopilotの代替。IDEに完全に溶け込む。◎(導入ガイドが親切)まずはローカルAIを試したい初心者

プロキシ設定によるボット検知の回避策

最後に、完全なオフラインではなく「社内プロキシ越し」にClaude Codeを動かそうとしている方へのアドバイスです。企業ネットワークからClaude Codeの「WebFetch(ネット検索)」機能などを使うと、Anthropic側やアクセス先のサイトから「ボット(攻撃者)による大量アクセス」とみなされ、IPアドレス単位でブロックされてしまうことがよくあります。特に、一つの固定IPから大勢の社員が同時にAIツールを使うと、この検知に引っかかりやすくなります。

これを回避するためには、社内プロキシの設定を適切に行う(HTTPS_PROXY 環境変数の設定など)のはもちろんですが、場合によっては特定のドメインだけをホワイトリストに入れたり、AIの通信を専用のゲートウェイ経由にしたりといった工夫が必要になります。個人開発であれば、VPNを一時的にオフにするだけで解決することもありますが、組織で導入する場合は、情報システム部門と協力して「AI専用の通り道」を確保するのが、運用の安定性を高める近道になるかなと思います。なお、日本国内の労働環境については、以下の公的な調査データも参考にしつつ、適切な開発環境の整備を進めていくのが良いでしょう。

(出典:厚生労働省『情報通信技術を利用した事業場外勤務の適切な導入及び実施のためのガイドライン』

まとめ|Claude Codeをオフラインで使うコツ

いかがでしたでしょうか。Claude Codeをオフライン、あるいはローカルLLMと連携させて運用する方法について、かなり深掘りしてお話ししてきました。最初は難しそうに感じるかもしれませんが、一つひとつの設定を丁寧に行えば、驚くほど快適で安全な開発環境が手に入ります。最後に、今回お伝えした重要なポイントをギュッとまとめておきますね。

運用のチェックリスト:

  • OllamaやMLXを活用して、自分のPCスペックに最適な「ローカルの脳みそ(モデル)」を用意する。
  • LiteLLMなどのプロキシを介して、Claude Codeの接続先を localhost に向ける。
  • Llama.cppなどを使う場合は --jinja フラグを忘れずに、AIの「手足(ツール操作)」を有効化する。
  • ~/.claude/file-history/ に残る秘密情報のバックアップに注意し、1Passwordなどで物理的な漏洩対策を施す。
  • テレメトリの遮断による「有料プラン機能の消失」など、特有のバグ的な仕様を理解して立ち回る。

これらの準備を整えれば、大切なソースコードを外部に流出させる不安から解放され、心ゆくまでAIとの共同開発を楽しめるはずです。テクノロジーは正しく使えば、私たちの可能性を何倍にも広げてくれます。ぜひ、あなたにとって最強の「ローカルAI開発環境」を構築してみてくださいね。

この記事を書いた人

エンジニア歴 12 年・Web マーケター歴 4 年・ブログライター歴9年。エンジニア兼マーケターの視点から AI ツール活用に取り組んでいます。
AI-Rise では、NotebookLM・Claude Code・Google AI Studio・Gamma などの主要 AI ツールについて、機能・料金・使い方・エラー解決といった実用情報を整理して発信。新しいツールが登場するたびに調べ、初心者がつまずきやすいポイントを噛み砕いて記事にすることを意識しています。

目次