コンテンツにスキップ

ローカルLLMリモートアクセス設計

📁 docs/dev-environment/artifact/wip/20260427_local-llm-remote-access-design.md

背景・やりたいこと

  • WindowsPC(192.168.11.44 / Tailscale: 100.87.120.65)でOllamaが稼働中
  • MacのClaude Code(CLI) から、このWindowsのローカルモデルを使いたい
  • さらに、クラウド(Anthropicサブスク)とローカルをパラメータ1つで切り替えできるようにしたい

現状

コンポーネント 状態
Ollama(Windows) 稼働中。0.0.0.0:11434 でListen済み
モデル claude47-opus-local インストール・登録済み
Open WebUI http://100.87.120.65:3000 でブラウザアクセス可能
Tailscale VPN WindowsとMacで接続済み(想定)

解決すべき課題

Claude Codeは接続先を ANTHROPIC_BASE_URL 環境変数で切り替えられる。 ただし、Ollamaに直接つなぐと Anthropicのベータヘッダーanthropic-beta 等)に非対応なため、 Claude Code特有の機能(Tool Use, Extended Thinking等)が動作しない可能性がある。

中間にLiteLLMプロキシを挟むことで、ヘッダー変換・ルーティングを担保する。


案A: LiteLLMプロキシ経由(推奨)

[MacのClaude Code]
  ↓ ANTHROPIC_BASE_URL=http://100.87.120.65:8000
[LiteLLM Proxy(Windows, port:8000)]
  ├─ model="claude47-opus-local" → Ollama(localhost:11434)
  └─ model="claude-*"            → Anthropic API(クラウド)※オプション

切り替え方法(Mac側)

# ~/.zshrc に追記

# ローカルモード(WindowsのOllamaを使う)
alias cc-local='ANTHROPIC_BASE_URL=http://100.87.120.65:8000 claude --model claude47-opus-local'

# クラウドモード(通常のサブスク認証・変更なし)
alias cc='claude'

メリット

  • Mac側はエイリアス1つで切り替え完結
  • サーバー側(Windows)でモデル追加・変更が可能
  • LiteLLMがヘッダー変換を担うため、Claude Codeの機能が動作しやすい
  • 将来的に複数Macや他デバイスからも同じエンドポイントを使える

デメリット

  • WindowsにLiteLLMのセットアップが必要(Dockerで立てれば簡単)
  • LiteLLMとAnthropicのAPI互換性が100%ではない場合がある

案B: Ollama直接接続(シンプル)

[MacのClaude Code]
  ↓ ANTHROPIC_BASE_URL=http://100.87.120.65:11434/v1
[Ollama(Windows)]
  └─ claude47-opus-local

切り替え方法

# ローカルモード
alias cc-local='ANTHROPIC_BASE_URL=http://100.87.120.65:11434/v1 ANTHROPIC_API_KEY=ollama claude --model claude47-opus-local'

# クラウドモード
alias cc='claude'

メリット

  • LiteLLMが不要でシンプル
  • 即使える(追加セットアップなし)

デメリット

  • Anthropicベータヘッダー非対応のためClaude Code機能が一部動作しない可能性
  • サーバー側でルーティング制御できない

比較表

観点 案A(LiteLLM) 案B(Ollama直接)
セットアップ手間 中(LiteLLMのDocker設定) 低(即使える)
Claude Code互換性 低〜中
切り替えの簡単さ エイリアス1つ エイリアス1つ
複数デバイス対応 しやすい しやすい
将来の拡張性 高(モデル追加・LB等)

決めてほしいこと(TODO)

  • 案Aか案Bか を決定する
  • クラウドモードの認証方式を確認する
  • サブスク認証(claude auth loginで認証済み)か
  • APIキー認証(ANTHROPIC_API_KEY=sk-ant-...)か
  • MacにClaude Codeはインストール済みか(未インストールならセットアップも必要)
  • 切り替えのUIをどこにするか
  • シェルエイリアス(.zshrc
  • プロジェクト単位の .claude/settings.local.json
  • どちらでも(両方対応)

次のアクション(案A採用の場合)

  1. WindowsでLiteLLMをDockerで起動(projects/litellm/docker-compose.yml
  2. MacのClaude Codeに接続設定(~/.zshrc or .claude/settings.local.json
  3. 動作確認(cc-local でOllamaモデルに接続できるか)