How codeaashu/free-claude-code works
Free Claude Code is an Anthropic-compatible proxy that lets Claude Code use configurable hosted or local model providers, with optional Discord/Telegram remote-coding workflows. The primary flow is Claude Code request → API route/service → model selection and provider transport → Anthropic-compatible response. The bot flow accepts platform messages, queues conversation work, drives CLI sessions, and reports progress. README capabilities such as optimization, thinking/tool handling, rate limiting, and voice are represented where supported by the tree; unsampled internals and exact wiring are omitted.
Main entry points: base.py Provider transport · services.py Proxy service · handler.py Message handler · routes.py API routes
Components 24
Proxy API
- FastAPI app
api/app.py - API routes
api/routes.py - Proxy service
api/services.py - Request optimization
api/optimization_handlers.py - Anthropic compatibility
core/anthropic - Token counting
core/anthropic/tokens.py
Model Providers
- Model routing
api/model_router.py - Provider registry
providers/registry.py - Provider transport
providers/base.py - NVIDIA NIM
providers/nvidia_nim/client.py - OpenRouter
providers/open_router/client.py - DeepSeek
providers/deepseek/client.py - LM Studio
providers/lmstudio/client.py - llama.cpp
providers/llamacpp/client.py
Remote Coding
- Platform adapters
messaging/platforms - Message handler
messaging/handler.py - Conversation queue
messaging/trees/queue_manager.py - CLI sessions
cli/manager.py - Claude CLI process
cli/session.py - Session persistence
messaging/session.py
Configuration
- Settings
config/settings.py
Other components
- Claude Code
- External model APIs
- Discord / Telegram
Connections 28
- Claude Code → FastAPI app: sends requests
- FastAPI app → API routes: mounts routes
- API routes → Proxy service: handles messages
- API routes → Token counting: counts tokens
- Proxy service → Request optimization: intercepts trivial calls
- Proxy service → Model routing: selects model
- Proxy service → Provider registry: resolves provider
- Proxy service → Anthropic compatibility: formats messages
- Model routing → Settings: reads mappings
- Provider registry → Provider transport: creates transports
- Provider transport → NVIDIA NIM: dispatches
- Provider transport → OpenRouter: dispatches
- Provider transport → DeepSeek: dispatches
- Provider transport → LM Studio: dispatches
- Provider transport → llama.cpp: dispatches
- NVIDIA NIM → External model APIs: calls provider
- OpenRouter → External model APIs: calls provider
- DeepSeek → External model APIs: calls provider
- LM Studio → External model APIs: calls local service
- llama.cpp → External model APIs: calls local service
- Discord / Telegram → Platform adapters: delivers messages
- Platform adapters → Message handler: forwards messages
- Message handler → Conversation queue: queues work
- Message handler → CLI sessions: runs conversations
- CLI sessions → Claude CLI process: creates sessions
- Message handler → Platform adapters: updates progress
- Message handler → Session persistence: persists trees
- Claude CLI process → FastAPI app: uses proxy API