Claude Code में Ollama लोकल मॉडल चलाएँ और फिर क्लाउड पर लौटें

Claude Code के अनुभवी उपयोगकर्ताओं के लिए व्यावहारिक गाइड: तय करें कि लोकल inference आपके काम के लिए सही है या नहीं, Ollama के Anthropic-compatible API से Qwen3.5 जोड़ें, एक बदली जा सकने वाली फ़ाइल पर editing और command execution जाँचें, context तथा CPU/GPU placement देखें, compatibility सीमाएँ समझें और ज़रूरत पड़ने पर साफ़ तौर पर cloud API पर लौटें।

विषय-सूची
Claude Code में Ollama लोकल मॉडल चलाएँ और फिर क्लाउड पर लौटें

Claude Code, Ollama के Anthropic-compatible API के ज़रिए लोकल मॉडल चला सकता है, लेकिन केवल chat reply मिल जाना यह साबित नहीं करता कि मॉडल agentic coding के लिए तैयार है। गंभीर workflow में पहले तीन बातें देखनी चाहिए: मॉडल tool calls कर सके, मशीन कम-से-कम 64k context संभाल सके, और शुरुआती task इतना छोटा हो कि command तथा diff से उसकी जाँच की जा सके।

यह गाइड पूरी प्रक्रिया को आसानी से उलटने योग्य रखती है। आप Ollama के आधिकारिक रास्ते से qwen3.5 को Claude Code से जोड़ेंगे, एक फ़ाइल वाला acceptance task चलाएँगे, inference सच में कहाँ हो रहा है यह जाँचेंगे, API और data boundaries समझेंगे, और फिर cloud endpoint पर लौटने से पहले local override हटाएँगे। नीचे दिए command macOS, Linux या WSL के Bash के लिए हैं। ये आपके चलाने के चरण हैं; यह दावा नहीं कि इस लेख ने आपके hardware पर test चलाया है।

पहले तय करें: लोकल, क्लाउड या hybrid workflow

लोकल मॉडल तब सबसे उपयोगी होता है जब task सीमित हो और परिणाम को मशीन से जाँचा जा सके। बड़ा repository, कई services में migration या कठिन debugging session अक्सर cloud model से बेहतर चलता है, बजाय इसके कि छोटे local model को भारी CPU offload के साथ ज़बरदस्ती चलाया जाए।

काम का प्रकारसुझाया शुरुआती रास्ताकारण
एक फ़ाइल का fix, एक नया test या किसी local function की व्याख्यापहले local आज़माएँContext सीमित है और command व diff से परिणाम जाँचा जा सकता है
साफ़ dependencies वाला छोटा या मध्यम moduleLocal या hybridपहले smoke test पास करें, फिर scope धीरे-धीरे बढ़ाएँ
बड़ा monorepo, cross-service refactor या जटिल investigationपहले cloudऐसे काम को अधिक effective context और भरोसेमंद tool planning चाहिए
मॉडल 64k context को बड़े CPU offload के बिना नहीं संभाल पातापहले cloudLatency और अटकते interaction local लाभ को कम कर देते हैं
Workflow को prompt caching, Batches API, PDF blocks या exact token counting चाहिएपहले cloudOllama अभी Anthropic Messages API का केवल कुछ हिस्सा लागू करता है
Source code किसी remote model को नहीं भेजा जा सकताLocal पहले, cloud features बंद करकेWeb tools, MCP servers और shell commands के network paths अलग से जाँचने होंगे

व्यावहारिक hybrid policy यह है कि छोटे, दोहराए जा सकने वाले edits local रखें और repository-wide reasoning, unsupported API feature या बार-बार local failure पर साफ़ तौर से cloud चुनें। इससे Claude Code का वही interface बना रहता है, बिना यह मान लिए कि दोनों backends एक जैसे व्यवहार करते हैं।

चरण 1: tool-capable मॉडल चुनें और 64k context दें

Claude Code को केवल text generation नहीं चाहिए। मॉडल को भरोसेमंद tool calls बनाने चाहिए, ताकि client files पढ़ सके, edits लागू कर सके और commands चला सके। Ollama का Qwen3.5 model page tools support दिखाता है और Claude Code launch command देता है। आप Ollama के model-details API से pulled model की वास्तविक capabilities भी देख सकते हैं।

मॉडल pull करें और उसके capabilities देखें:

ollama pull qwen3.5

curl http://localhost:11434/api/show \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3.5"}'

आगे बढ़ने से पहले पुष्टि करें कि capabilities में tools है। अगर नहीं है, तो सामान्य chat reply को agent validation न मानें। Ollama library में वर्तमान में tool-capable के रूप में चिह्नित मॉडल चुनें, उसे pull करें और वही जाँच दोहराएँ।

दूसरी शर्त context है। Ollama की context-length documentation के अनुसार web search, agents और coding tools के लिए कम-से-कम 64,000 tokens रखने चाहिए; बड़ा context अधिक memory लेता है। Ollama app में context-length slider को 64000 या उससे ऊपर रखें। Shell से service चलाने पर मौजूदा instance पहले रोकें और अलग terminal में यह command चलाएँ:

OLLAMA_CONTEXT_LENGTH=64000 ollama serve

उस terminal को खुला रखें। Server शुरू होने के बाद दूसरे terminal में अगले चरण करें। अगर port पहले से use हो रहा है, तो Ollama का कोई instance पहले ही चल रहा है; दूसरा server शुरू करने के बजाय उसी instance का context setting बदलें।

चरण 2: Ollama के आधिकारिक integration से Claude Code शुरू करें

सबसे छोटा आधिकारिक रास्ता यह है:

ollama launch claude --model qwen3.5

Integration स्थापित करने का यह सबसे आसान तरीका है। Claude Code खुलने के बाद /status चलाएँ और active settings sources नोट करें। बाद में cloud पर लौटते समय अगर कोई persistent settings layer फिर भी requests को Ollama की ओर भेजती रहे, तो यही जानकारी समस्या का स्रोत खोजने में मदद करेगी।

केवल वर्तमान terminal तक रहने वाला बदलाव चाहिए तो variables manually सेट करें। नीचे भी Bash ही है:

read -rs ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL="http://localhost:11434"
claude --model qwen3.5

read -rs input को screen पर दिखाए बिना लेता है। ollama टाइप करके Enter दबाएँ। Local server पर Ollama authentication variable की मौजूदगी माँगता है, लेकिन उसके value को ignore करता है। ANTHROPIC_BASE_URL model requests को local Ollama endpoint पर भेजता है, और --model qwen3.5 test model को स्पष्ट बनाता है, ताकि कोई पुराना ANTHROPIC_MODEL या saved default परिणाम न बदल दे।

चरण 3: एक फ़ाइल से reading, editing और command execution जाँचें

पहला local-model test production repository में न करें। अलग directory बनाएँ, जहाँ हर परिणाम file, exit status और diff से साफ़ दिखाई दे।

mkdir -p claude-ollama-smoke
cd claude-ollama-smoke
git init
cat > total.py <<'PY'
def total(values):
    return sum(values)

if __name__ == "__main__":
    assert total([2, 3]) == 5
PY
git add total.py
python3 total.py

python3 total.py को कुछ print नहीं करना चाहिए और status 0 के साथ समाप्त होना चाहिए। इसी directory से local Claude Code session शुरू करें और यह task दें:

केवल total.py बदलें।
अगर values में कोई item int या float नहीं है, तो total को exact message numbers only के साथ TypeError उठाना चाहिए।
__main__ में [2, "3"] के लिए एक check जोड़ें, जो उसी TypeError और message की पुष्टि करे।
python3 total.py चलाएँ।
किसी दूसरी file को न बदलें। पूरा होने पर diff दिखाएँ।

Task छोटा है, लेकिन critical agent loop को जाँचता है: file पढ़ना, edit plan करना, editing tool बुलाना, Bash command चलाना, result देखना और final change दिखाना। Claude Code के permission prompts चालू रखें। Model local होने से unrestricted shell execution सुरक्षित नहीं हो जाता।

Task के बाद ये commands खुद चलाएँ:

python3 total.py
git status --short
git diff -- total.py
ollama ps

इन acceptance criteria का उपयोग करें:

  1. python3 total.py status 0 के साथ समाप्त हो।
  2. git status --short में केवल total.py आए, और git diff -- total.py में केवल माँगा गया type check तथा assertion हो।
  3. Claude Code transcript में file और Bash tool calls या permission prompts दिखाई दें; केवल prose में code suggestion न हो।
  4. Task चलने के दौरान ollama ps में qwen3.5 दिखाई दे, CONTEXT कम-से-कम 64000 हो, और PROCESSOR बताए कि मॉडल पूरी तरह GPU पर, आंशिक offload के साथ या मुख्यतः CPU पर है।

इनमें से कोई भी जाँच fail हो तो scope को real repository तक न बढ़ाएँ। पहले troubleshooting करें, फिर model बदलने, task छोटा करने या cloud पर जाने का निर्णय लें।

चरण 4: केवल localhost URL नहीं, पूरी execution boundary जाँचें

ANTHROPIC_BASE_URL=http://localhost:11434 यह दिखाता है कि Claude Code model requests local port पर भेज रहा है, लेकिन इससे यह साबित नहीं होता कि पूरा workflow offline है। अधिक मजबूत evidence है: model tag में :cloud न हो, task के दौरान model ollama ps में दिखे, और local PROCESSOR तथा CONTEXT values आपकी मशीन की allocation से मेल खाएँ।

Ollama के FAQ के अनुसार local model चलने पर Ollama prompts या data नहीं देखता, जबकि cloud-hosted models के prompts और responses cloud service process करती है। मौजूदा Qwen3.5 page की Claude Code command local tag qwen3.5 इस्तेमाल करती है। Local tag में suffix जोड़कर cloud model name अनुमान न करें; cloud boundary जाँचने के लिए current official Cloud catalog या integration guide में स्पष्ट रूप से दिया गया valid tag इस्तेमाल करें, जैसे gemma4:cloud। वास्तविक execution location तय करने के लिए valid model tag, ollama ps और local resource allocation देखें।

बाकी network paths अलग-अलग audit करें:

  • Bash से चलाए गए commands network access कर सकते हैं, files upload कर सकते हैं या दूसरी CLI बुला सकते हैं।
  • MCP servers के अपने process, permissions और data routes होते हैं।
  • Web search, web fetch और Ollama cloud models local inference नहीं हैं।
  • Repository hooks, test scripts और package managers external services से संपर्क कर सकते हैं।

Ollama को अधिक सख्त local-only mode में रखने के लिए, दूसरी settings मिटाए बिना ~/.ollama/server.json में यह key merge करें:

{
  "disable_ollama_cloud": true
}

Ollama restart करें और logs में Ollama cloud disabled: true देखें। Ollama के अनुसार इससे उसके cloud models और web search बंद हो जाते हैं। फिर भी यह Claude Code, MCP servers या shell commands के अन्य network access को audit नहीं करता।

चरण 5: compatibility layer किन बातों की गारंटी नहीं देती

Ollama Anthropic Messages API compatibility layer देता है; यह Anthropic API की पूर्ण पुनर्रचना नहीं है। वर्तमान documentation messages, streaming, system prompts, images, tool calls, tool results और thinking को supported capabilities में रखती है। Basic Claude Code agent loop बनाने के लिए यह पर्याप्त transport surface है।

Protocol support का अर्थ behavioral parity नहीं है। Tool-selection quality, patch quality, लंबे task की stability और instructions का पालन model, quantization, context allocation तथा hardware पर निर्भर करते हैं। एक-file test पास होना बताता है कि minimum path आपके environment में काम कर रहा है; इससे यह साबित नहीं होता कि local model बड़े repository पर cloud Claude model जितना अच्छा काम करेगा।

Ollama अभी /v1/messages/count_tokens, prompt caching, Batches API, citations, PDF document blocks और server-sent streaming errors को unsupported बताता है। वह token counts को underlying tokenizer पर आधारित approximation भी कहता है। अगर आपका workflow इनमें से किसी feature पर निर्भर है, तो task के बीच limitation मिलने से पहले cloud route तैयार रखें।

चरण 6: cloud पर साफ़ तौर से वापस जाएँ

अगर local variables केवल current Bash session में हैं, तो Claude Code बंद करके यह चलाएँ:

unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN ANTHROPIC_API_KEY ANTHROPIC_MODEL ANTHROPIC_DEFAULT_HAIKU_MODEL ANTHROPIC_DEFAULT_SONNET_MODEL ANTHROPIC_DEFAULT_OPUS_MODEL
claude

नया process अब आपके normal account login या cloud-provider configuration का पालन कर सकता है। Launch के बाद /status चलाएँ और एक छोटा read-only सवाल भेजें। केवल client का खुल जाना यह प्रमाण नहीं है कि cloud request पूरी हुई।

अगर Claude Code फिर भी Ollama तक पहुँचता है, तो override शायद current shell के बजाय settings में stored है। Claude Code की official environment-variable reference कहती है कि settings file के env में रखा value shell से inherited उसी variable को replace करता है। /status से active sources पहचानें, फिर लागू layer से local ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY और model overrides हटाएँ:

  • ~/.claude/settings.json
  • .claude/settings.json
  • .claude/settings.local.json
  • organization-managed settings

Edit के बाद Claude Code पूरी तरह बंद करके फिर शुरू करें। Managed value को lower settings layer से override नहीं किया जा सकता; उसे administrator को बदलना होगा।

जब local model उपयुक्त न हो, लेकिन आप उसी Claude Code client में Anthropic-compatible cloud API चाहते हों, तो वर्तमान BetterToken Claude Code guide का पालन करें। मौजूदा Base URL https://bettertoken.ai है: इसमें www या /v1 नहीं है। पहले model plaza से exact Model ID copy करें। Current manual setup में ANTHROPIC_MODEL primary model चुनता है और तीन ANTHROPIC_DEFAULT_*_MODEL variables Haiku, Sonnet और Opus aliases को map करते हैं। Controlled smoke test के लिए चारों variables को पहले उसी exact ID पर point कर सकते हैं। यह temporary Bash setup API key को command history में नहीं लिखता:

read -rsp "BetterToken API Key: " ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_AUTH_TOKEN
read -rp $'\nBetterToken Model ID: ' ANTHROPIC_MODEL
export ANTHROPIC_MODEL
export ANTHROPIC_BASE_URL="https://bettertoken.ai"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export API_TIMEOUT_MS="3000000"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="$ANTHROPIC_MODEL"
export ANTHROPIC_DEFAULT_SONNET_MODEL="$ANTHROPIC_MODEL"
export ANTHROPIC_DEFAULT_OPUS_MODEL="$ANTHROPIC_MODEL"
claude

पहला prompt API Key input छिपाता है; दूसरे prompt में model plaza से copy किया हुआ exact Model ID paste करें। यह smoke test primary model और तीनों aliases को उसी ID पर point करता है। अगर अलग roles के लिए अलग models चाहिए, तो हर default variable में उसका अपना exact ID दें। Base URL के अंत में /v1 न जोड़ें। Persistent settings बदलने के बाद Claude Code को पूरी तरह बंद करके restart करें; temporary session में भी इस block को चलाने से पहले पुराना process बंद करें। अंत में एक छोटा read-only request भेजें। Normal response मिले, 401, connection या model error न हो और /status expected active source दिखाए, तभी switch पूरा मानें; इससे local और cloud paths के सभी features समान सिद्ध नहीं होते।

आम failure branches की troubleshooting

ConnectionRefused या localhost:11434 से response नहीं

देखें कि Ollama process चल रहा है और endpoint सही port उपयोग कर रहा है। ज़रूरत पर ollama serve से शुरू करें। Port occupied हो तो दूसरा instance शुरू करने के बजाय पहले से चल रहे instance को पहचानें। Claude Code फिर से खोलने से पहले पुष्टि करें कि curl http://localhost:11434/api/ps JSON लौटाता है।

Chat चलता है, लेकिन Claude Code files पढ़ता या edit नहीं करता

/api/show फिर चलाएँ और देखें कि model tools advertise करता है। फिर Claude Code permission prompts देखें। अगर model केवल “ऐसे code बदल सकते हैं” लिखता है और tool call emit नहीं करता, तो साफ़ तौर पर tool-capable चिह्नित model चुनें। Supported tool field transport compatibility दिखाता है; वह हर model की reliable tool planning साबित नहीं करता।

Session बहुत धीमा है या लंबे काम में context खो जाता है

ollama ps चलाकर PROCESSOR और CONTEXT देखें। Heavy CPU offload, 64k से कम context या बार-बार memory pressure यह संकेत हैं कि task छोटा करें, छोटा tool-capable model चुनें या cloud उपयोग करें। Interaction तेज़ दिखाने के लिए permission और verification steps न हटाएँ।

Shell बदलने पर भी endpoint या model नहीं बदलता

Claude Code में /status चलाएँ। Settings-file का env value shell value को replace कर सकता है, जबकि --model और /model, ANTHROPIC_MODEL से अधिक priority लेते हैं। वास्तव में winning source साफ़ करें, पूरी तरह restart करें और read-only request से test करें।

अंतिम व्यावहारिक नियम

Local Claude Code को ऐसा execution path मानें जिसे बड़ा scope कमाना पड़ता है, केवल एक toggle नहीं। पहले tools की पुष्टि करें, कम-से-कम 64k context दें, और one-file task से tool calls, exit status, diff तथा ollama ps जाँचें। ये signals स्थिर होने के बाद ही scope बढ़ाएँ।

जब task मशीन की सीमा पार करे, unsupported Anthropic feature माँगे या local model बार-बार fail हो, तो local endpoint हटाकर जानबूझकर cloud चुनें। हर coding task को local रखने से अधिक मूल्यवान है एक भरोसेमंद rollback path।

अपना LLM वर्कफ़्लो बेहतर बनाना चाहते हैं?

एक API से मॉडल जोड़ें, कुंजियाँ प्रबंधित करें और AI खर्च नियंत्रित करें।

मुफ़्त शुरू करें