ज्ञानकोश अनुभाग ▾

नेविगेशन

▸ यहाँ से शुरू करें भूमिका के अनुसार

श्रेणियाँ

उपकरण 52
शब्दावली 12

टूल्स

Crush + JoinGonka Gateway: Gonka नेटवर्क मॉडल पर Charm एजेंट

Crush — Charm का टर्मिनल कोडिंग-एजेंट, वह टीम जिसके कंसोल इंटरफ़ेस लाइब्रेरी पर हजारों प्रोग्राम बने हैं। यह प्रोजेक्ट फ़ाइलों को पढ़ता और संपादित करता है, कमांड चलाता है, भाषा सर्वर से संदर्भ लेता है (LSP), MCP के माध्यम से बाहरी उपकरण जोड़ता है और संदर्भ खोए बिना सत्र के बीच में मॉडल बदल सकता है। यह macOS, Linux और Windows टर्मिनलों पर, साथ ही Android और BSD पर काम करता है; लाइसेंस — FSL-1.1-MIT। प्रोजेक्ट की वंशावली उल्लेखनीय है: पुरालेख रिपॉजिटरी opencode-ai/opencode सीधे Crush की ओर इशारा करती है — प्रोजेक्ट को इसके पहले लेखक और Charm टीम ने जारी रखा।

Crush दो प्रकार के बाहरी प्रदाताओं को स्वीकार करता है — OpenAI- और Anthropic-संगत API वाले। JoinGonka Gateway openai-compat के रूप में जुड़ता है: एक इंस्टॉलर कमांड या कॉन्फ़िगरेशन की दस लाइनों के साथ। इसके बाद एजेंट Gonka विकेन्द्रीकृत नेटवर्क के मॉडल पर काम करता है — DeepSeek V4 Flash, GLM-5.3 Flash और MiniMax M2.7 — एक ही कीमत पर: प्रति मिलियन इनपुट टोकन $0.0069।

पहले सत्र से पहले Crush की दो विशेषताओं को जानना चाहिए: यह मॉडलों को दो स्लॉट, large और small में व्यवस्थित करता है, और इंटरफ़ेस में चुने गए मॉडल को एक अलग स्थिति फ़ाइल में संग्रहीत करता है, जो कॉन्फ़िगरेशन से अधिक महत्वपूर्ण है। उनके लिए एक अलग अनुभाग समर्पित है। नीचे दिए गए कमांड और संदेश 23 सितंबर 2026 को गेटवे के माध्यम से Crush 0.96.1 के लाइव रन द्वारा सत्यापित किए गए हैं। पते की पुष्टि के बाद, खाते में 3M मुफ्त टोकन आएंगे — ये सब कुछ खुद दोहराने के लिए पर्याप्त हैं।

क्विक स्टार्ट: इंस्टॉलेशन और एक कमांड

चरण 1: Crush इंस्टॉल करें। प्रोजेक्ट README से आधिकारिक तरीके:

# Homebrew
brew install charmbracelet/tap/crush

# npm
npm install -g @charmland/crush

# Arch Linux
yay -S crush-bin

# Windows
winget install charmbracelet.crush

# Go
go install github.com/charmbracelet/crush@latest

वहीं Debian, Ubuntu, Fedora और RHEL, Nix और Scoop के पैकेज रिपॉज़िटरी भी बताए गए हैं, और रिलीज़ पेज पर तैयार बाइनरी मौजूद हैं। जाँच — crush --version, जवाब में crush version v0.96.1 जैसी लाइन आएगी।

चरण 2: की प्राप्त करें। gate.joingonka.ai/register पर रजिस्टर करें, अपना पता वेरिफ़ाई करें और «API-कीज़» सेक्शन में jg- प्रीफ़िक्स वाली की बनाएँ। एक ही की और एक ही बैलेंस नेटवर्क के सभी मॉडलों के लिए काम करते हैं।

चरण 3: इंस्टॉलर चलाएँ।

npx @joingonka/setup --tool crush

इंस्टॉलर की माँगेगा — कमांड लाइन आर्ग्युमेंट्स में यह पास नहीं होता, ताकि शेल हिस्ट्री में न बचा रहे — और चार काम करेगा:

  • joingonka प्रोवाइडर को ~/.config/crush/crush.json में लिखेगा: टाइप openai-compat, गेटवे का पता, की सीधे लिटरल के रूप में और नेटवर्क के तीन मॉडल कॉन्टेक्स्ट विंडो, जवाब की सीमाओं और प्रति मिलियन टोकन की कीमतों के साथ, जो इंस्टॉल के समय गेटवे से लाइव लेता है — इन्हीं के आधार पर Crush सेशन की लागत निकालता है। फ़ाइल को 600 परमिशन मिलेंगी;
  • मॉडल असाइन करेगा: large स्लॉट में DeepSeek V4 Flash, small में MiniMax M2.7, और GLM-5.3 Flash मैन्युअल चुनाव की सूची में रहेगा। यह तभी करता है जब large स्लॉट खाली हो या नेटवर्क से हट चुके हमारे मॉडल की ओर इशारा करता हो; किसी और का चुनाव बना रहता है, और आउटपुट में स्विच करने का सुझाव दिखेगा;
  • जाँचेगा कि चुनाव लागू होगा: Crush इंटरफ़ेस का मॉडल स्टेट फ़ाइल में रखता है, और वह कॉन्फ़िग को ओवरराइड करती है — इसी पर large और small वाला सेक्शन है;
  • बैकअप बनाएगा, बाकी प्रोवाइडर और सेटिंग्स जैसी थीं वैसी छोड़ेगा और गेटवे पर एक लाइव रिक्वेस्ट के साथ खत्म करेगा, ताकि की, पता और मॉडल तुरंत जाँच लिए जाएँ।

दूसरा मॉडल --model फ़्लैग से तय होता है, जिसमें deepseek, glm या minimax शॉर्टकट चलते हैं; साफ़ तौर पर बताया गया मॉडल हमेशा लिखा जाता है। गैर-मानक डायरेक्टरीज़ इंस्टॉलर उसी तरह समझता है जैसे खुद Crush: कॉन्फ़िग के लिए CRUSH_GLOBAL_CONFIG, स्टेट फ़ाइल के लिए CRUSH_GLOBAL_DATA, साथ ही XDG_CONFIG_HOME और XDG_DATA_HOME। सर्वर और स्क्रिप्ट के लिए बिना सवाल वाला मोड है, इसमें की एनवायरनमेंट वेरिएबल से आती है:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool crush --model glm --non-interactive

Crush का मुख्य फ़ॉर्मैट अब crushrc हो गया है, लेकिन इंस्टॉलर crush.json लिखता है: इसे सभी वर्शन समझते हैं। अगर आपके पास crushrc पहले से है, तो Crush दोनों फ़ाइलें मर्ज कर देगा, की टकराने पर crushrc जीतेगा, और इंस्टॉलर खुद उसे छूता नहीं।

मैन्युअल कॉन्फ़िगरेशन: crush.json या crushrc

इंस्टॉलर जो कुछ भी करता है, वह सब हाथ से लिखा जा सकता है। यह रहा एक काम करने वाला ~/.config/crush/crush.json — इसी फ़ाइल को हमने गेटवे से गुज़ारा:

{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "joingonka": {
      "name": "JoinGonka (Gonka)",
      "type": "openai-compat",
      "base_url": "https://gate.joingonka.ai/v1",
      "api_key": "jg-your-key",
      "models": [
        { "id": "deepseek-ai/DeepSeek-V4-Flash-0731", "name": "DeepSeek V4 Flash (Gonka)",
          "context_window": 380000, "default_max_tokens": 32768,
          "can_reason": true, "supports_attachments": false },
        { "id": "MiniMaxAI/MiniMax-M2.7", "name": "MiniMax M2.7 (Gonka)",
          "context_window": 200000, "default_max_tokens": 8192,
          "can_reason": false, "supports_attachments": false },
        { "id": "zai-org/GLM-5.3-Flash", "name": "GLM-5.3 Flash (Gonka)",
          "context_window": 390000, "default_max_tokens": 8192,
          "can_reason": true, "supports_attachments": false }
      ]
    }
  },
  "models": {
    "large": { "provider": "joingonka", "model": "deepseek-ai/DeepSeek-V4-Flash-0731" },
    "small": { "provider": "joingonka", "model": "MiniMaxAI/MiniMax-M2.7" }
  }
}
फ़ील्डमानक्या ज़रूरी है
typeopenai-compatOpenAI-संगत API वाली बाहरी सेवाओं के लिए टाइप। openai टाइप Crush का डॉक्युमेंटेशन खुद OpenAI के ज़रिए भेजे जाने वाले अनुरोधों के लिए छोड़ता है
base_urlhttps://gate.joingonka.ai/v1अंत में /v1 के साथ: /chat/completions पाथ Crush खुद जोड़ देता है
api_keyआपकी कुंजी jg-…Crush इस मान को शेल सब्स्टिट्यूशन से गुज़ारता है, इसलिए कुंजी की जगह $JOINGONKA_API_KEY लिख सकते हैं — तब यह वेरिएबल वहीं एक्सपोर्ट होना चाहिए जहाँ से Crush चलाते हैं
context_windowमॉडल का कॉन्टेक्स्ट विंडोइसी से Crush कॉन्टेक्स्ट की भरावट दिखाता है और तय करता है कि हिस्ट्री कब कंप्रेस करनी है
default_max_tokensजवाब की ऊपरी सीमाहर अनुरोध में max_tokens के रूप में जाता है। रीज़निंग मॉडल्स में इस बजट में रीज़निंग भी शामिल होती है

Crush सिर्फ़ सख़्त JSON स्वीकार करता है: कमेंट या ट्रेलिंग कॉमा — और वह शुरू ही नहीं होगा। कीमत वाले फ़ील्ड (cost_per_1m_in, cost_per_1m_out और कैश के दो फ़ील्ड) सिर्फ़ लागत काउंटर के लिए चाहिए: इंस्टॉलर वहाँ गेटवे की लाइव कीमत भर देता है, और इनके बिना Crush चलता है और शून्य दिखाता है — सिर्फ़ $schema वाला स्कीमा एडिटर ही इन्हें अनिवार्य बताएगा।

वही प्रोवाइडर crushrc फ़ॉर्मैट में — यह सादा Bash है, जिसमें Crush की बिल्ट-इन कमांड हैं। फ़ाइल ~/.config/crush/crushrc:

provider add joingonka \
  --name "JoinGonka (Gonka)" \
  --type openai-compat \
  --base-url "https://gate.joingonka.ai/v1" \
  --api-key "${JOINGONKA_API_KEY:?set JOINGONKA_API_KEY}"

model add joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 \
  --name "DeepSeek V4 Flash (Gonka)" \
  --context-window 380000 --default-max-tokens 32768 --can-reason true

model add joingonka/MiniMaxAI/MiniMax-M2.7 \
  --name "MiniMax M2.7 (Gonka)" \
  --context-window 200000 --default-max-tokens 8192

model add joingonka/zai-org/GLM-5.3-Flash \
  --name "GLM-5.3 Flash (Gonka)" \
  --context-window 390000 --default-max-tokens 8192 --can-reason true

model large joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
model small joingonka/MiniMaxAI/MiniMax-M2.7

यहाँ मॉडल provider/model-id रूप में लिखा जाता है: पहले स्लैश तक — प्रोवाइडर का नाम, उसके बाद — नेटवर्क का आइडेंटिफ़ायर जैसा है वैसा। ${JOINGONKA_API_KEY:?…} रूप कुंजी को फ़ाइल से बाहर रखता है, लेकिन एक्सपोर्ट किए बिना वेरिएबल के Crush शुरू नहीं होगा — शुरुआत में ही एरर मिल जाना बेहतर है, खाली कुंजी वाले अनुरोधों से।

large और small मॉडल और स्थिति फ़ाइल

Crush में मॉडल एक ही नहीं चुना जाता, बल्कि दो स्लॉट्स के लिए चुना जाता है:

स्लॉटउस पर क्या निष्पादित होता हैइंस्टॉलर क्या सेट करता हैकैसे बदलें
largeमुख्य एजेंट: फ़ाइल पढ़ने/संपादित करने और कमांड चलाने वाले सभी कार्यDeepSeek V4 Flash: 380K विंडो और नेटवर्क में सबसे बड़ी रिस्पांस सीमा, 32768इंटरफ़ेस में ctrl+l, crush run के साथ -m, कॉन्फ़िगरेशन में models.large
smallसहायक कार्य: सेशन का नाम और उप-एजेंट जो नेटवर्क पर खोज करता है और वेब पेज पढ़ता है। यदि छोटा मॉडल नाम निर्धारित नहीं कर पाया, तो Crush बड़े मॉडल से अनुरोध दोहराता हैMiniMax M2.7: इसमें नेटवर्क में सबसे अधिक क्षमता हैcrush run के साथ --small-model, कॉन्फ़िगरेशन में models.small, crushrc में model small

नेटवर्क का तीसरा मॉडल, तर्क करने वाला GLM-5.3 Flash, जटिल लॉजिक के लिए चुना जाता है, यह ध्यान में रखते हुए कि इसकी रिस्पांस सीमा 8192 है और इसका एक हिस्सा तर्क (reasoning) में चला जाता है — विवरण मॉडल समीक्षा में है। एक रन के लिए मॉडल को पूरे नाम से सेट किया जाता है: crush run -m joingonka/zai-org/GLM-5.3-Flash "…"। सभी उपलब्ध नाम crush models joingonka प्रिंट करता है।

स्टेट फ़ाइल (State file)। ctrl+l के माध्यम से इंटरफ़ेस में चुने गए मॉडल को Crush crush.json में नहीं, बल्कि मशीन स्टेट फ़ाइल में लिखता है: ~/.local/share/crush/crush.json, Windows में — %LOCALAPPDATA%\crush\crush.json। यह फ़ाइल यूजर कॉन्फ़िगरेशन और crushrc दोनों से अधिक महत्वपूर्ण है: Crush उन्हें इस क्रम में पढ़ता है /etc/crush/crush.json → ~/.config/crush/crush.json → ~/.config/crush/crushrc → स्टेट फ़ाइल, और प्रत्येक बाद वाला पिछले को ओवरराइड करता है। केवल प्रोजेक्ट सेटिंग्स - crush.json या इसके डायरेक्टरी में crushrc - सबसे ऊपर हैं। आपकी मशीन पर फ़ाइलें कहाँ स्थित हैं, यह crush dirs दिखाएगा।

हमारे रन में हमने मॉडल चयन खोला — प्रदाता "JoinGonka (Gonka)" वहाँ "✓ Configured" निशान के साथ है — और MiniMax M2.7 चुना। Crush ने "Large model changed to MiniMax M2.7 (Gonka)" उत्तर दिया और स्टेट फ़ाइल में लिखा:

{"models":{"large":{"model":"MiniMaxAI/MiniMax-M2.7","provider":"joingonka","max_tokens":8192}}, …}

अब यह मॉडल crush.json में लिखे गए से अधिक महत्वपूर्ण है। इंस्टॉलर इस स्थिति को पहचानता है और अलग तरह से व्यवहार करता है:

  • बिना --model के वह स्टेट फ़ाइल को नहीं छूता — यह आपका काम का चयन है — लेकिन स्पष्ट रूप से चेतावनी देता है कि Crush वास्तव में किस मॉडल के साथ खुलेगा: Heads-up: Crush will still start with joingonka/MiniMaxAI/MiniMax-M2.7, not joingonka/deepseek-ai/DeepSeek-V4-Flash-0731। यदि इंटरफ़ेस में GLM-5.3 Flash या किसी अन्य प्रदाता का मॉडल चुना गया है तो भी वह ऐसा ही करेगा;
  • स्पष्ट --model के साथ वह स्टेट फ़ाइल में ठीक एक एंट्री को सही करता है — models.large — पहले एक कॉपी सेव करने के बाद, और लिखता है कि क्या था और क्या हो गया। अन्यथा फ्लैग चुपचाप काम नहीं करता। ऐसे रन के बाद, हमारे रन में Crush फ्लैग में निर्दिष्ट मॉडल पर खुला।

सत्यापन: क्या होना चाहिए

पहले यह सुनिश्चित करें कि Crush को प्रोवाइडर दिख रहा है:

crush models joingonka

जवाब में तीन लाइनें आएँगी:

joingonka/MiniMaxAI/MiniMax-M2.7
joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
joingonka/zai-org/GLM-5.3-Flash

इसके बाद बिना इंटरफ़ेस के एक बार का रन। प्रोजेक्ट डायरेक्टरी में साफ़ दिखने वाली गलती वाली फ़ाइल रखें और उसे ढूँढने के लिए कहें:

crush run -q "Read calc.py and tell me in one sentence whether it has a bug."

एजेंट को खुद फ़ाइल पढ़ने का टूल कॉल करना चाहिए और लाइन नंबर के साथ सारगर्भित जवाब देना चाहिए। हमारे रन में नेटवर्क के तीनों मॉडलों ने गलती पकड़ी, काम में 20-40 सेकंड लगे। -q फ़्लैग वेटिंग इंडिकेटर छिपा देता है। crush run मोड में सभी टूल कॉल अपने आप अप्रूव हो जाते हैं, इसलिए इसे अपने प्रोजेक्ट में ही चलाएँ। सामान्य इंटरफ़ेस में (कमांड crush) एक्टिव मॉडल स्टेटस लाइन में दिखता है: ◇ DeepSeek V4 Flash (Gonka) via JoinGonka (Gonka)। Crush सेशन और लॉग प्रोजेक्ट की .crush डायरेक्टरी में रखता है, जो अपने .gitignore से git से बंद रहती है; लॉग crush logs से छपता है। गेटवे की तरफ़ से रिक्वेस्ट कैबिनेट में दिखती है: «उपयोग» सेक्शन, «मॉडल के अनुसार» और «की के अनुसार» ब्रेकडाउन।

अगर कुछ गड़बड़ हो, तो निदान आमतौर पर सीधे मैसेज से पढ़ा जा सकता है:

क्या दिखता हैइसका क्या मतलब हैक्या करें
unauthorized: Invalid API key.गेटवे ने की स्वीकार नहीं कीapi_key जाँचें: पूरी की, बिना स्पेस। अगर वहाँ किसी वेरिएबल का रेफ़रेंस है, तो उसे इसी शेल में एक्सपोर्ट करना होगा
invalid JSON in config file …/crush.jsonफ़ाइल में कमेंट, ट्रेलिंग कॉमा या टाइपो हैCrush सिर्फ़ सख़्त JSON लेता है: फ़ाइल ठीक करें। इंस्टॉलर खुद कमेंट नहीं हटाता, पर उनकी चेतावनी देता है, और जो फ़ाइल बिल्कुल पार्स न हो उसे छेड़ता नहीं और कारण बताता है
failed to load shell config …/crushrc: … exit status 1crushrc में गलती, अक्सर ${…:?} रूप वाले की का वेरिएबल सेट नहीं हैचलाने से पहले वेरिएबल एक्सपोर्ट करें या जिस लाइन पर स्क्रिप्ट फेल हो रही है उसे ठीक करें
Failed to override models: large model "…" not found-m फ़्लैग में मॉडल के नाम की टाइपोcrush models joingonka के आउटपुट से नाम कॉपी करें
too many requests: Model "…" is currently overloaded in the Gonka network (rate limit)पीक आवर में मॉडल की नेटवर्क में फ़्री क्षमता खत्म हो गईCrush खुद बढ़ते पॉज़ के साथ रिक्वेस्ट दोहराता है — हमारे रन में करीब एक मिनट — और तभी हार मानता है। ctrl+l या -m से दूसरे मॉडल पर स्विच करें या इंतज़ार करें; हालत स्टेटस पेज पर दिखती है
Crush उस मॉडल पर नहीं खुला जिसकी सूचना इंस्टॉलर ने दीइंटरफ़ेस से चुना गया मॉडल स्टेट फ़ाइल में रहता है और कॉन्फ़िग को ओवरराइड कर देता हैctrl+l से मॉडल चुनें या --model के साथ इंस्टॉलेशन दोहराएँ
402बैलेंस में पैसे खत्म«बिलिंग» सेक्शन में अकाउंट रीचार्ज करें; की इस दौरान काम करती रहती है

इसकी लागत कितनी है

एजेंट टोकन का उपयोग चैट की तुलना में अलग तरह से करता है: Crush आपके प्रत्येक वाक्यांश में सिस्टम प्रॉम्प्ट और अपने टूल के विवरण जोड़ता है, और कार्य में आमतौर पर कई चरण लगते हैं। हमारे रन में, प्रत्येक मॉडल अनुरोध में लगभग 11.5 हजार इनपुट टोकन थे, और "फाइल पढ़ें और त्रुटि खोजें" कार्य में दो-तीन अनुरोध और 23-35 हजार टोकन लगे, जिसमें लगभग सब कुछ इनपुट था। इसलिए, यहां प्रति टोकन कीमत मायने रखती है।

JoinGonka Gateway के माध्यम से टोकन की कीमत इनपुट पर $0.0069 प्रति मिलियन और आउटपुट पर $0.021 प्रति मिलियन है — नेटवर्क के सभी मॉडल के लिए कीमत समान है और इस पेज पर लाइव स्रोत से ली जाती है।

परिदृश्यउपभोगगेटवे के माध्यम से
एकमुश्त कार्य: फाइल पढ़ना, त्रुटि खोजना23-35K टोकनसेंट के सौवें हिस्से
सक्रिय कार्य का एक दिन3-7M टोकनकुछ सेंट
सक्रिय विकास का एक महीना~150M टोकनलगभग एक डॉलर

दाहिनी कॉलम में अनुमान सितंबर 2026 की कीमतों के अनुसार हैं। तुलना के लिए — Crush में मॉडल के लिए भुगतान करने के तरीके:

तरीकाभुगतान मॉडलक्या सीमित है
Hyper — आधिकारिक Charm प्रदातासदस्यता, मुफ्त टियर उपलब्धCharm की ओर से टैरिफ की शर्तें
वेंडर की कुंजी सीधेवेंडर की कीमत के अनुसार टोकन के लिएसत्र की लंबाई के साथ बिल बढ़ता है; कीमत मॉडल पर निर्भर करती है
JoinGonka Gatewayटोकन के लिए, प्रीपेड बैलेंसउपभोग कैबिनेट में दिखता है; कोई सदस्यता या मासिक कोटा नहीं है

Crush इंटरफेस में कॉस्ट काउंटर कॉन्फिग से कीमत के क्षेत्रों के अनुसार गणना करता है। वहां इंस्टॉलेशन के समय गेटवे की कीमत पहुंचती है, और नेटवर्क में डॉलर की कीमत GNK दर के साथ बदलती रहती है, इसलिए काउंटर केवल एक संदर्भ है। सटीक उपभोग और शेष राशि कैबिनेट में 'उपयोग' और 'बिलिंग' अनुभागों में उपलब्ध है। लार्ज स्लॉट में डिफ़ॉल्ट रूप से DeepSeek V4 Flash क्यों सेट होता है, इसका विस्तृत विश्लेषण मॉडल ओवरव्यू में दिया गया है।

काम करते समय क्या ध्यान रखें

अनुमतियाँ। Crush का इंटरफ़ेस डिफ़ॉल्ट रूप से किसी टूल को कॉल करने से पहले अनुमति माँगता है। --yolo फ़्लैग एक साथ सभी सवाल बंद कर देता है, और चुनिंदा रूप से भरोसेमंद टूल्स को कॉन्फ़िग में सूचीबद्ध किया जाता है:

# crushrc
permissions allow view ls grep

# crush.json
"permissions": { "allowed_tools": ["view", "ls", "grep"] }

ध्यान रहे कि crush run सब कुछ खुद ही मंज़ूर कर देता है। यह Crush का गुण है, यह मॉडल प्रोवाइडर पर निर्भर नहीं करता।

अनुरोध का टाइमआउट। अगर मॉडल से लंबे समय तक प्रतिक्रिया का कोई अंश न आए तो Crush अनुरोध काट देता है: संस्करण 0.96.1 में यह दो मिनट की खामोशी है (दस्तावेज़ीकरण 60 सेकंड बताता है, लेकिन कोड में और हमारे परीक्षण में — दो मिनट)। गेटवे जो सर्विस पिंग्स कनेक्शन बनाए रखने के लिए भेजता है, वे इस काउंटर को रीसेट नहीं करते — हमने लोकल स्टैंड पर जाँचा। गेटवे खुद व्यस्त घंटों में नेटवर्क से पहले टोकन का 150 सेकंड तक इंतज़ार करता है, इसलिए बफ़र बढ़ाना बेहतर है:

# crushrc
option request-timeout 300

# crush.json
"options": { "request_timeout": 300 }

कमिट में हस्ताक्षर। Crush जो कमिट और पुल रिक्वेस्ट बनाता है, उनमें डिफ़ॉल्ट रूप से Assisted-by: Crush:<model> पंक्ति और «Generated with Crush» का टैग जुड़ जाता है। अगर यह नहीं चाहिए:

# crushrc
option attribution-trailer-style none
option attribution-generated-with false

# crush.json
"options": { "attribution": { "trailer_style": "none", "generated_with": false } }

मेट्रिक्स। Crush डेवलपर्स को छद्मनाम उपयोग आँकड़े भेजता है — सिर्फ़ मेटाडेटा, बिना प्रॉम्प्ट और जवाबों के। इसे CRUSH_DISABLE_METRICS=1 या DO_NOT_TRACK=1 वेरिएबल से बंद किया जा सकता है। गेटवे अपनी ओर से प्रॉम्प्ट और जवाबों की सामग्री संग्रहीत नहीं करता — आँकड़ों में सिर्फ़ खपत के एग्रीगेट रहते हैं।

कॉन्फ़िग ही कोड है। Crush crushrc और crush.json दोनों को आपके शेल के अधिकारों के साथ निष्पादित करता है: कुंजी फ़ील्ड में $(…) लोड होते समय चलेगा, और प्रोजेक्ट का crushrc तभी सक्रिय होगा जब आप उस डायरेक्टरी में Crush खोलेंगे। किसी और के रिपॉज़िटरी में उसके कॉन्फ़िग पढ़े बिना एजेंट न चलाएँ।

Crush एक कमांड के साथ JoinGonka Gateway से कनेक्ट होता है — npx @joingonka/setup --tool crush — या ~/.config/crush/crush.json में providers.joingonka ब्लॉक का उपयोग करके: टाइप openai-compat, पता https://gate.joingonka.ai/v1, कुंजी jg-…, और ईमानदार context_window व default_max_tokens वाले मॉडल। वही चीजें crushrc में provider add और model add की कई लाइनों के साथ लिखी जा सकती हैं। Large स्लॉट के लिए DeepSeek V4 Flash, small के लिए MiniMax M2.7, और जटिल तर्क के लिए GLM-5.3 Flash का उपयोग करें। मुख्य जाल स्टेट फाइल है: ctrl+l के माध्यम से चुना गया मॉडल कॉन्फ़िग से अधिक महत्वपूर्ण होता है, इसलिए स्पष्ट --model वाला इंस्टॉलर उसे भी अपडेट करता है। वेरिफिकेशन — crush models joingonka और crush run; अनुरोध टाइमआउट को 300 सेकंड तक बढ़ा देना बेहतर है।

अधिक जानना चाहते हैं?

अन्य अनुभागों का अन्वेषण करें या अभी GNK कमाना शुरू करें।

कुंजी और मुफ्त टोकन प्राप्त करें →