Claude Code is one of the best agentic coding tools available right now. It's also not cheap. If you're running it seriously, the Anthropic API bill adds up fast. A new open source project called free-claude-code changes that math entirely.
The project is a lightweight proxy that routes Claude Code's Anthropic API calls to NVIDIA NIM at 40 requests per minute for free, with OpenRouter, DeepSeek, LM Studio, and other backends also supported. You get a working Claude Code setup, no subscription, no token billing.
I cover this space daily, and the technical approach here is genuinely clever. It's not a fork of Claude Code, not a jailbreak, and not a wrapper. It's a translation layer that sits between the client and the provider.
How the Proxy Works
Claude Code normally communicates with Anthropic's API. This intermediary proxy forwards those requests to different providers, with NVIDIA NIM standing out as the main option, offering 40 free requests per minute.
The proxy intercepts five categories of trivial requests, including quota probes, title generation, prefix detection, suggestions, and filepath extraction, and responds to them instantly without consuming API quota. Real requests are translated from Anthropic format to the provider's OpenAI-compatible format and streamed back.
Thinking tokens are also handled: <think> tags and reasoning_content fields are converted into native Claude thinking blocks, so Claude Code renders them correctly in the UI.
You don't need to modify Claude Code in any way, no patches, no forks. Just set two environment variables and you're done.
What Is NVIDIA NIM
NVIDIA NIM (NVIDIA Inference Microservices) is a platform that gives developers free, OpenAI-compatible API access to over 100 AI models, including Nemotron, Kimi-K2.5, MiniMax-M2.5, and GLM-5, hosted on DGX Cloud at build.nvidia.com.
Developers get 1,000 free inference credits on signup with a rate limit of 40 requests per minute, enough for meaningful prototyping before committing to self-hosted deployment. For a solo developer running Claude Code on a single project, 40 RPM covers almost everything short of large parallel agent runs.
Because NIM endpoints are OpenAI-compatible, you use the standard OpenAI API format — you just change the base URL and API key. The free-claude-code proxy handles that translation automatically so Claude Code never knows the difference.
Key Technical Highlights
The project supports ten provider backends: NVIDIA NIM, Kimi, Wafer, OpenRouter, DeepSeek, LM Studio, llama.cpp, Ollama, OpenCode Zen, and Z.ai.
Other notable capabilities:
- Per-model routing lets you send Opus, Sonnet, Haiku, and fallback traffic to different providers.
- Native Claude Code
/modelpicker support works through the proxy's/v1/modelsendpoint. - Streaming, tool use, reasoning and thinking block handling, and local request optimizations are all supported.
- A local Admin UI at
/adminlets you edit proxy settings, validate changes, and check provider status, accessible only from loopback.
For VS Code users, the setup is three environment variables in settings.json: ANTHROPIC_BASE_URL set to http://localhost:8082, ANTHROPIC_AUTH_TOKEN set to freecc, and CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY set to 1, then reload the extension.
Supported Models and Routing
The three model tiers map directly to how Claude Code routes requests internally: Opus handles complex refactoring and architecture work, Sonnet covers everyday coding tasks in agent mode, and Haiku handles quick edits with multimodal support including screenshots.
For example, you can route Opus to nvidia_nim/moonshotai/kimi-k2.5, Sonnet to open_router/deepseek/deepseek-r1-0528:free, Haiku to lmstudio/unsloth/GLM-4.7-Flash-GGUF, and keep the fallback model on zai/glm-5.1.
Kimi-K2-Thinking is a chain-of-thought reasoning model that requires special parameters to activate. If you switch to a non-thinking model like Devstral or MiniMax-M2.7, set NIM_ENABLE_THINKING=false or you'll get API errors.
Telegram Bot Integration
One of the more practical features is remote control via Telegram. You can control Claude Code remotely via Telegram: set an allowed directory, send tasks from your phone, and watch Claude Code autonomously work on multiple tasks.
To enable Telegram, set MESSAGING_PLATFORM=telegram and configure TELEGRAM_BOT_TOKEN and ALLOWED_TELEGRAM_USER_ID. Get a token from @BotFather and find your user ID via @userinfobot.
Voice messages on Telegram are transcribed to text and processed as regular prompts. The default transcription backend uses Hugging Face Transformers Whisper, which is free, requires no API key, and works offline.
Provider Comparison
Here's how the main backends stack up:
| Provider | Cost | Rate Limit | Best For |
|---|---|---|---|
| NVIDIA NIM | Free | 40 req/min | Daily driver, generous free tier |
| OpenRouter | Free / Paid | Varies | Model variety, fallback options |
| DeepSeek | Usage-based | Varies | Direct DeepSeek chat/reasoner access |
| LM Studio | Free (local) | Unlimited | Privacy, offline use, no rate limits |
| llama.cpp | Free (local) | Unlimited | Lightweight local inference |
Honest Limitations
The 40 RPM cap is real. Larger models like DeepSeek-R1 at 671 billion parameters and GLM-5 at 744 billion eat more compute per request, so even within the rate limit you'll hit slower response times during peak hours. Several developers have reported 429 errors on popular models during busy periods.
Tool support is also model and provider dependent. Some OpenAI-compatible models emit malformed tool-call deltas, omit tool names, or return tool calls as plain text. If a model behaves strangely with Claude Code's tool calls, try a different model before assuming the proxy is broken.
Final Thoughts
What makes free-claude-code technically interesting isn't just the cost angle. It's the per-model routing architecture. The ability to send Opus-tier requests to a heavy reasoning model, Sonnet-tier to a fast coder, and Haiku-tier to a local GGUF, all from one Claude Code session, is genuinely useful even if you're already paying for API access. That kind of provider mixing isn't something you get natively.
The Telegram integration is a nice addition. Being able to queue tasks from your phone and have Claude Code work through them in a designated workspace directory is the kind of workflow that sounds gimmicky but turns out to be practical for long-running refactors.
If you're a developer who uses Claude Code regularly and wants to reduce costs, or just wants to experiment without a billing meter running, this is worth the two-minute setup. The project is 100% open source and actively maintained. Give it a try and drop your experience in the comments.
Frequently Asked Questions
5 questions
1What is free-claude-code?
free-claude-code routes Anthropic Messages API traffic from Claude Code to NVIDIA NIM, Kimi, Wafer, OpenRouter, DeepSeek, LM Studio, llama.cpp, or Ollama. It acts as a local proxy so Claude Code never needs to be modified.
2Is NVIDIA NIM really free?
Developers get 1,000 free inference credits on signup with a rate limit of 40 requests per minute. There is no per-token billing at the free tier, but the 40 RPM cap applies across all models.
3Do I need to modify Claude Code to use this?
No. You don't need to modify Claude Code in any way — no patches, no forks. Just set two environment variables and you're finished.
4Which models are supported?
Ten provider backends are supported: NVIDIA NIM, Kimi, Wafer, OpenRouter, DeepSeek, LM Studio, llama.cpp, Ollama, OpenCode Zen, and Z.ai. You can mix and match models per Claude tier.
5Can I use this on my phone?
Yes. You can configure a Telegram bot by setting MESSAGING_PLATFORM=telegram along with your bot token and user ID. Voice messages are also supported and are transcribed to text before being processed as prompts.






