Claude Code(公式 CLI / VSCode 拡張 / IntelliJ 拡張)の Anthropic API リクエストを、別の LLM プロバイダに横流しするローカルプロキシサーバ です。Python 3.14 + FastAPI + uv で実装されており、uvicorn server:app --port 8082 で起動して、Claude Code 側には ANTHROPIC_BASE_URL=http://localhost:8082 を指定するだけで接続先がすり替わります。Claude Code 自体には一切手を加えません。
server.py … FastAPI エントリポイント(/v1/messages, /v1/messages/count_tokens, /v1/models などを Anthropic 互換で公開)api/ … ルート、リクエスト種別判定、トリビアル要求のローカル応答providers/ … BaseProvider と OpenAICompatibleProvider を基底に、NVIDIA NIM / OpenRouter / DeepSeek / LM Studio / llama.cpp の各プロバイダ実装。providers/common/ に SSE ビルダ、メッセージ変換、エラーマッピング等を共通化messaging/ … Discord / Telegram ボット(MessagingPlatform ABC)で Claude Code を遠隔操作、セッション永続化、ツリー型スレッドcli/ … Claude CLI セッション/プロセス管理config/, tests/ … 設定と pytest スイート| Provider | プレフィックス | コスト |
|—|—|—|
| NVIDIA NIM | nvidia_nim/... | 無料(40 req/min) |
| OpenRouter | open_router/... | 無料モデル多数 / 課金 |
| DeepSeek | deepseek/... | 従量 |
| LM Studio | lmstudio/... | ローカル無料 |
| llama.cpp | llamacpp/... | ローカル無料 |
MODEL_OPUS / MODEL_SONNET / MODEL_HAIKU / MODEL(フォールバック)で Opus/Sonnet/Haiku をモデル単位で別プロバイダに振り分け可能。
:free モデル、あるいは完全ローカル(LM Studio / llama.cpp)で動かせる。ANTHROPIC_BASE_URL と ANTHROPIC_AUTH_TOKEN の 2 つの環境変数を差し替えるだけ。CLI・VSCode 拡張・IntelliJ ACP・Cursor 等もそのまま使える。<think> タグや reasoning_content を Claude の native thinking ブロックに変換run_in_background=False 強制/stop /clear /stats 等のコマンドあり。既存の OSS では珍しい組み合わせ。claude-pick(fzf 連携) でモデルを起動時に対話選択。uv をインストール(pip install uv)。Claude Code 本体もインストール。git clone → cd free-claude-code → cp .env.example .env。uv tool install git+.../free-claude-code.git → fcc-init で ~/.config/free-claude-code/.env を生成。.env にプロバイダの API キー(例:NVIDIA_NIM_API_KEY=...)と MODEL_OPUS / MODEL_SONNET / MODEL_HAIKU / MODEL(provider_prefix/model/name 形式)、必要なら ENABLE_THINKING と ANTHROPIC_AUTH_TOKEN を設定。uv run uvicorn server:app --host 0.0.0.0 --port 8082free-claude-code)ANTHROPIC_AUTH_TOKEN=freecc ANTHROPIC_BASE_URL=http://localhost:8082 claudeclaudeCode.environmentVariables に同じ 2 つを JSON で書き込み、IntelliJ は installed.json の acp.registry.claude-acp.env を編集。alias claude-pick=/path/to/claude-pick を ~/.zshrc に仕込んで fzf でモデル切り替え。.env に MESSAGING_PLATFORM=discord、DISCORD_BOT_TOKEN、ALLOWED_DISCORD_CHANNELS、さらに CLAUDE_WORKSPACE と ALLOWED_DIR(作業可能ディレクトリ)を設定。Telegram なら MESSAGING_PLATFORM=telegram と TELEGRAM_BOT_TOKEN / ALLOWED_TELEGRAM_USER_ID。uv sync --extra voice_local(ローカル Whisper)か --extra voice(NIM)。WHISPER_DEVICE と WHISPER_MODEL を設定。/stop /clear /stats で制御。uv run ruff format → uv run ruff check → uv run ty check → uv run pytest の 4 点セットを通す(CI 必須)。# type: ignore 追加は禁止。OpenAICompatibleProvider を継承して __init__ で provider_name / base_url / api_key を渡すのが最短。完全カスタムなら BaseProvider.stream_response() を実装。MessagingPlatform ABC(start / stop / send_message / edit_message / on_message)を実装。