DeepSeek Harness इंस्टॉलेशन और वर्जन एरर कैसे ठीक करें
DeepSeek Harness के सभी वर्जन्स रिलीज कैंडिडेट हैं। इंस्टॉलेशन एरर से बचने के लिए एक सटीक dsh वर्जन पिन करें, npx कैश क्लियर करें और चेक करें कि आपका Node कौन सा npm उपयोग कर रहा है।
DeepSeek Harness इंस्टॉलेशन वास्तव में क्या है
DeepSeek Harness इंस्टॉलेशन केवल एक कमांड है: npx @deepseek-ai/dsh web। इसमें कोई इंस्टॉलर नहीं है और कॉन्फ़िगर करने के लिए कोई सर्विस नहीं है। लोग जिन समस्याओं का सामना करते हैं, उनमें से अधिकांश इंस्टॉलेशन से संबंधित नहीं होती हैं। यह वर्जन रिज़ॉल्यूशन की समस्या है: npx ने आज @deepseek-ai/dsh का कौन सा बिल्ड चलाने का निर्णय लिया है, और क्या आपका Node.js वर्जन उसे चलाने में सक्षम है। जब यह शुरू होता है, तो यह जिस एड्रेस को प्रिंट करता है वह localhost से बंधा होता है, और Web UI केवल 127.0.0.1:3080 पर उत्तर क्यों देता है इस पेज पर दी गई समस्याओं से अलग एक समस्या है।
नीचे दी गई हर बात दो तथ्यों पर आधारित है। पहला, npm पर अब तक प्रकाशित @deepseek-ai/dsh का प्रत्येक वर्जन एक रिलीज़ कैंडिडेट है, और latest टैग उनमें से एक की ओर इशारा करता है। 18 अगस्त 2026 तक यह 0.1.0-rc.7 है, जिसे 17 अगस्त 2026 को प्रकाशित किया गया था। दूसरा, प्रोजेक्ट README में कहा गया है कि हार्नेस डेवलपर प्रीव्यू में है, इसमें तेज़ी से बदलाव हो रहे हैं, और इसमें ऐसे बदलाव होंगे जो संगतता (compatibility) को तोड़ सकते हैं। जो फ्लैग पिछले सप्ताह काम कर रहा था, वह इस सप्ताह गायब हो सकता है। इसके ऊपर कुछ भी बनाने से पहले एक वर्जन को पिन करें।
पहले कुछ terms स्पष्ट कर लें। dsh, DeepSeek Harness का command line tool है। Node.js वह JavaScript runtime है जिसकी इसे आवश्यकता होती है। npx, npm (node package manager) के साथ आने वाला package runner है। यह किसी package को स्थायी रूप से install करने के बजाय आवश्यकता होने पर fetch करता है। यदि उस वाक्य में harness शब्द का उपयोग अपरिचित लग रहा हो, तो agent harness वह program है जो model के चारों ओर चलता है। यह loop, tools, permissions और session state को संभालता है। इसी कारण ऐसा version number, जिसे आपने स्वयं नहीं चुना, आपके agent के व्यवहार को बदल सकता है।
dsh को Node.js का कौन सा संस्करण चाहिए?
रिपॉजिटरी की रूट package.json में "engines": {"node": "^22.19.0 || >=24.0.0"} घोषित है, जिसे 18 अगस्त 2026 को संस्करण 0.1.0-rc.7 पर पढ़ा गया था। इसलिए Node 22 लाइन के भीतर 22.19.0 या उससे नया, या Node 24 और उससे ऊपर का संस्करण आवश्यक है। Node 20 समर्थित नहीं है।
किसी भी अन्य कार्य से पहले जाँचें कि आपके पास कौन सा संस्करण है।
node -v
npm -vयहाँ वह हिस्सा है जो लोगों को आश्चर्यचकित करता है। प्रकाशित @deepseek-ai/dsh पैकेज में अपना कोई engines फ़ील्ड नहीं होता है। केवल मोनोरेपो रूट ही एक घोषित करता है, और वह रूट फ़ाइल कभी भी npm पर प्रकाशित नहीं होती है। इसलिए npm के पास जाँचने के लिए कुछ नहीं होता है, इसलिए यह कोई EBADENGINE चेतावनी प्रिंट नहीं करता है और यह किसी चीज़ को अस्वीकार नहीं करता है। Node 20 पर इंस्टॉलेशन ऐसा दिखता है जैसे यह काम कर गया, और विफलता बाद में आती है, जब लोड किया गया कोड ऐसे सिंटैक्स या API को छूता है जो आपके रनटाइम में नहीं है। खोजने के लिए कोई एक स्थिर त्रुटि स्ट्रिंग नहीं है, क्योंकि कौन सी लाइन पहले विफल होती है यह इस पर निर्भर करता है कि कौन सा मॉड्यूल पहले लोड होता है। क्रैश को पढ़ने के बजाय node -v पढ़ें।
यदि आपका Node बहुत पुराना है, तो VPS पर nvm (node version manager) सबसे कम हस्तक्षेप करने वाला समाधान है, क्योंकि यह आपकी होम डायरेक्टरी के अंतर्गत इंस्टॉल होता है और सिस्टम Node को प्रभावित नहीं करता है।
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash
exec $SHELL -l
nvm install 24
nvm use 24
node -vnode -v को अब v24. से शुरू होने वाला संस्करण प्रिंट करना चाहिए। यदि शेल अभी भी पुराना संस्करण रिपोर्ट करता है, तो nvm शेल फ़ंक्शन लोड नहीं हुआ था, इसलिए एक नया लॉगिन शेल खोलें और पुनः प्रयास करें। अगस्त 2026 तक Node 24.19.0 सक्रिय LTS (long term support) रिलीज़ है, और यह नीचे बताए गए दूसरे कारण के लिए बेहतर लक्ष्य है।
npx हर दिन अलग version क्यों चलाता है?
npx @deepseek-ai/dsh web में कोई version निर्दिष्ट नहीं है, इसलिए npx registry से वह version मांगता है जिस पर latest tag इंगित करता है। वह tag बदलता रहता है। जब DeepSeek 0.1.0-rc.8 प्रकाशित करता है, तो आपके नोट्स में मौजूद command अलग code चलाने लगती है, बिना किसी prompt या changelog के।
आप command line से हर गतिशील हिस्से की जांच कर सकते हैं।
npm view @deepseek-ai/dsh dist-tags
npm view @deepseek-ai/dsh versions --json
npm view @deepseek-ai/dsh time --jsondist-tags दिखाता है कि अभी latest कहाँ इंगित कर रहा है। 18 August 2026 को latest और next दोनों 0.1.0-rc.7 पर इंगित कर रहे थे, इसलिए स्विच करने के लिए कोई अलग stable channel उपलब्ध नहीं है। versions सूची अधिक रोचक है, क्योंकि इसमें रिक्त स्थान हैं: 0.0.1-rc.1, 0.0.1-rc.2, 0.0.1-rc.5, 0.1.0-rc.2, 0.1.0-rc.3, 0.1.0-rc.6, 0.1.0-rc.7। उस अनुक्रम में कुछ संख्याएँ गायब हैं क्योंकि कुछ release candidates कभी प्रकाशित ही नहीं किए गए थे। deploy script में अगले -rc.N का अनुमान लगाना विफल रहेगा, इसलिए ऊपर की ओर गिनने के बजाय सूची को पढ़ें।
npx पुराना वर्ज़न क्यों चलाता रहता है?
यह पिछली समस्या के विपरीत है, और npm के वर्ज़न के आधार पर दोनों ही बातें सच हो सकती हैं।
npx अपनी खुद की पैकेज डायरेक्टरी रखता है, जो tarball कैश से अलग होती है। यह npm कैश के अंदर _npx नामक फोल्डर में स्थित होती है। इसका पाथ प्रिंट करें और इसे देखें।
npm config get cache
ls "$(npm config get cache)/_npx"सालों तक npx किसी भी पैकेज के नाम के लिए वहां मौजूद पुरानी फाइल का ही उपयोग करता था और कभी भी रजिस्ट्री से दोबारा नहीं पूछता था। npm 11.2.0 ने इसे बदल दिया है। जब स्पेसिफिकेशन एक साधारण नाम या वर्ज़न रेंज होता है, तो npx अब मैनिफेस्ट फेच करता है और कैश की गई कॉपी का उपयोग तभी करता है जब रिज़ॉल्व किया गया tarball रजिस्ट्री से प्राप्त डेटा से मेल खाता हो।
आपको कौन सा व्यवहार मिलेगा, यह आपके Node रिलीज़ पर निर्भर करता है, क्योंकि Node एक विशिष्ट npm वर्ज़न के साथ आता है:
- Node 20.20.2 में npm 10.8.2 शामिल है।
- Node 22.19.0 में npm 10.9.3 शामिल है।
- Node 22.23.2, जो सबसे नया 22 रिलीज़ है, में npm 10.9.8 शामिल है।
- Node 24.19.0 में npm 11.17.0 शामिल है।
इसलिए पूरी Node 22 लाइन, जिसे हार्नेस आधिकारिक तौर पर सपोर्ट करता है, में 11.2.0 से पुराना npm मिलता है। Node 22 पर एक साधारण npx @deepseek-ai/dsh web कमांड हफ़्तों पहले कैश किए गए रिलीज़ कैंडिडेट को ही चलाता रहेगा। Node 24 पर वही कमांड हर बार दोबारा रिज़ॉल्व होता है। एक ही कमांड, दो व्यवहार, और कोई भी आपको चेतावनी नहीं देता। टूल से पूछें कि वह क्या है:
npx @deepseek-ai/dsh --versionnpx कैश को क्लियर करना
npm 11.2.0 और उसके बाद के वर्ज़न में इसके लिए समर्पित सब-कमांड्स मौजूद हैं।
npm cache npx ls
npm cache npx rm --force--force के बिना, npm सब कुछ हटाने से मना कर देता है और Please use --force to remove entire npx cache प्रिंट करता है। जब आप सभी के बजाय किसी एक एंट्री को उसकी की (key) के आधार पर हटाना चाहते हैं, तो पहले npm cache npx ls का उपयोग करें।
npm 10 में ये सब-कमांड्स मौजूद नहीं हैं, इसलिए आपको डायरेक्टरी को खुद डिलीट करना होगा।
rm -rf "$(npm config get cache)/_npx"npm cache clean --force यहाँ काम नहीं आता। यह _cacache (tarball स्टोर) को क्लियर करता है, और _npx को वैसे ही छोड़ देता है। यही अलगाव कारण है कि npm ने बाद में npm cache npx सब-कमांड्स जोड़े। _npx को क्लियर करने से आपका कोई स्थायी नुकसान नहीं होता: इसमें केवल डाउनलोड किए गए पैकेज होते हैं, जबकि आपका हार्नेस स्टेट $DSH_HOME/profiles/<name> के अंदर रहता है और वह सुरक्षित रहता है।
मैं किसी सटीक release candidate को कैसे पिन करूँ?
पूरा version string लिखें, जिसमें -rc.N भाग भी शामिल हो।
npx --yes @deepseek-ai/dsh@0.1.0-rc.7 webस्क्रिप्ट में --yes का महत्व है, क्योंकि अन्यथा npx किसी ऐसे package को install करने से पहले एक prompt दिखाता है जिसे उसने पहले नहीं देखा है, और ऐसे उत्तर की प्रतीक्षा करता है जो कभी नहीं आता।
एक सटीक version सबसे तेज़ तरीका भी है। npx अपनी cache directory को आपके द्वारा टाइप किए गए spec string के आधार पर व्यवस्थित करता है, और सटीक version के लिए यह पहले से install किए गए package id के साथ इसकी तुलना करता है और बिना किसी registry round trip के इसे चला देता है। npm 11.2.0 और उसके बाद के संस्करणों में, केवल नाम का उपयोग करने पर हर बार start-up के समय manifest fetch करना पड़ता है।
Global install भी इसी तरह पिन होता है, और आपको एक छोटा command देता है।
npm install -g @deepseek-ai/dsh@0.1.0-rc.7
dsh --version@deepseek-ai/dsh@^0.1.0 के लिए कोई matching version नहीं मिला
इस package के लिए caret या tilde range विफल हो जाती है। npm install -g @deepseek-ai/dsh@^0.1.0 त्रुटि कोड ETARGET और पंक्ति No matching version found for @deepseek-ai/dsh@^0.1.0. के साथ उत्तर देता है। Registry ठीक है। यह एक semver नियम है: एक version range तब तक prerelease version से मेल नहीं खाती जब तक कि range स्वयं किसी prerelease का नाम न ले। इस package का प्रत्येक प्रकाशित build -rc.N है, जो कि एक prerelease है, इसलिए ^0.1.0 किसी से मेल नहीं खाता। सटीक version लिखें।
उस नियम का एक उपयोगी दुष्प्रभाव है। चूंकि ranges किसी नए release candidate पर नहीं जा सकतीं, इसलिए यहाँ कोई half-pinned स्थिति नहीं होती जिसके बारे में सोचना पड़े। आप या तो सटीक version पर होते हैं या फिर moving tag पर।
क्या मुझे npx का उपयोग करना चाहिए या dsh को globally install करना चाहिए?
पहली बार देखने के लिए npx का उपयोग करें, क्योंकि एक cache directory के अलावा कुछ भी पीछे नहीं छूटता जिसे आप अब साफ करना जानते हैं। किसी ऐसी चीज़ के लिए pinned global install का उपयोग करें जिसे reboot के बाद भी काम करना है, जैसे कि एक coding agent जिसे आप VPS पर चलाते रहते हैं।
यदि आपने एक ही मशीन पर दोनों का उपयोग किया है, तो वे आपस में टकरा सकते हैं, इसलिए उनकी तुलना करें।
which dsh
dsh --version
npx @deepseek-ai/dsh --versionwhich dsh सफल global install के तुरंत बाद कुछ न मिलना लगभग हमेशा यह दर्शाता है कि npm की global bin directory आपके PATH में मौजूद नहीं है। root को print करने के लिए npm prefix -g चलाएँ, और binaries इसके अंतर्गत bin फोल्डर में स्थित होती हैं।
एक सुरक्षा संबंधी नोट। npx जब भी कुछ नया resolve करता है, तो वह registry से कोड लाता और execute करता है, जो सर्वर पर एक वास्तविक जोखिम है, न कि केवल सैद्धांतिक। Pinning इसका एक समाधान है। बाकी जानकारी npm supply chain attacks सर्वर तक कैसे पहुँचते हैं में दी गई है।
Developer preview का reproducibility के लिए क्या अर्थ है
0.1.0-rc.6 को 13 August 2026 को और 0.1.0-rc.7 को 17 August 2026 को पब्लिश किया गया था। इनमें चार दिनों का अंतर है। इस गति से, एक महीने पहले लिखे गए निर्देश ऐसी command line का वर्णन कर सकते हैं जो अब मौजूद नहीं है, और इसमें यह पेज भी शामिल है। आप जो भी version claim लिखें, उसे तारीख के साथ दर्ज करें, जिसमें आपके अपने नोट्स भी शामिल हैं।
दो आदतें preview को survivable बनाती हैं। हर command और हर script में exact version को pin करें, ताकि सर्वर को दोबारा बनाने पर वही harness तैयार हो। फिर किसी भी guide के बजाय, pinned build से मिलने वाले help output को पढ़ें।
npx @deepseek-ai/dsh@0.1.0-rc.7 --help
npx @deepseek-ai/dsh@0.1.0-rc.7 web --dump-configReproducibility का दूसरा हिस्सा profile है। dsh --profile <name>, $DSH_HOME/profiles/<name> पर संग्रहीत profile को boot करता है, और web तथा headless profiles पहली बार उपयोग किए जाने पर shipped templates से खुद को तैयार करते हैं। वह directory वही स्थान भी है जहाँ harness अपनी API key, model, और endpoint settings पढ़ता है, इसलिए एक pinned version और एक working configuration, दोनों को सही करना दो अलग-अलग काम हैं। In-box bundles वर्तमान में चल रहे dsh installation से resolve होते हैं, जिसका अर्थ है कि अपने pinned version को बदलने से वे bundles भी बदल जाते हैं। Out-of-tree plugins अलग तरह से व्यवहार करते हैं। वे profile directory में रहते हैं, और dsh plugin --profile <name> add <package> अपने arguments को install करने के लिए pnpm को forward करता है। इसलिए pnpm का आपके PATH पर होना आवश्यक है, और जब ऐसा नहीं होता है, तो dsh इसे स्पष्ट रूप से बताता है। आपके द्वारा जोड़ा गया प्रत्येक plugin उन्हीं permissions के साथ चलता है जो आपके agent के पास हैं, इसलिए इसे install करने से पहले यह जाँच लेना कि plugin कहाँ तक पहुँच सकता है उचित है। Profile की अपनी package.json ही उन plugins को pin करती है, इसलिए एक complete pin में दो files शामिल होती हैं, न कि एक।
यदि आपने सर्वर पर Python tools को isolated environments में रखा है, तो यह विभाजन आपको परिचित लगेगा: tool और जो चीजें आप इसमें जोड़ते हैं, वे अलग-अलग जगहों पर pinned होती हैं। एक बार harness शुरू हो जाने के बाद, अगला सवाल आमतौर पर versions के बजाय networking का होता है, जहाँ remote VPS पर dsh Web UI तक पहुँचना और VPS पर DeepSeek Harness install करना में दिया गया विस्तृत walkthrough काम आता है।
वे argument errors जो आपको वास्तव में दिखाई देंगे
ये CLI के अपने parser से आते हैं, इसलिए ये release candidate line में स्थिर रहते हैं और प्रत्येक त्रुटि सटीक समस्या का नाम बताती है।
error: --profile <name> is required
आपने बिना किसी subcommand और बिना profile के npx @deepseek-ai/dsh चलाया। मूल command एक profile को boot करती है, इसलिए इसे एक नाम की आवश्यकता होती है। dsh web वह subcommand है जिसे किसी --profile की आवश्यकता नहीं होती, क्योंकि यह आपके लिए shipped web profile को boot कर देता है।
error: --patch needs a path
--patch को उसके बाद कुछ भी दिए बिना pass किया गया था। यह flag repeatable है, और प्रत्येक उपयोग एक file path लेता है।
error: --dump-config and --dump-default-config are mutually exclusive
इनमें से एक को चुनें। --dump-default-config shipped bundle layers को print करता है और कोई --patch स्वीकार नहीं करता है। --dump-config एक profile के लिए composed configuration को print करता है। दोनों ही harness को शुरू किए बिना print करके exit हो जाते हैं, जो यह देखने का सुरक्षित तरीका है कि एक नए release candidate ने आपके लिए क्या बदलाव किए हैं।
error: plugin needs pnpm arguments to forward (e.g. add <package>)
dsh plugin --profile <name> को pass करने के लिए कुछ भी नहीं दिया गया था। जब subcommand गायब होता है तो यह profile को initialize करता है, फिर command line के बाकी हिस्से को pnpm को सौंप देता है, इसलिए इसे add @scope/dsh-plugin-example जैसे arguments की आवश्यकता होती है।
FAQ
DeepSeek Harness को Node.js का कौन सा version चाहिए?
Repository अपने root package.json में ^22.19.0 || >=24.0.0 घोषित करती है, जिसे 18 August 2026 को version 0.1.0-rc.7 पर पढ़ा गया था। इसलिए Node 22.19.0 या 22 line का बाद का version, या Node 24 और उससे नए versions आवश्यक हैं। Node 20 काम नहीं करेगा। प्रकाशित npm package में अपना कोई engines field नहीं है, इसलिए npm आपको कभी चेतावनी नहीं देता और install को block नहीं करता, और विफलता runtime पर दिखाई देती है। पहले node -v की जाँच करें। वैसे भी Node 24 बेहतर विकल्प है, क्योंकि इसमें npm 11 शामिल है, जो npx version reuse की समस्या को ठीक करता है।
मैं npx को cached version के बजाय सबसे नया dsh इस्तेमाल करने के लिए कैसे मजबूर करूँ?
npm 11.2.0 और उससे नए versions पर, npx @deepseek-ai/dsh हर बार चलने पर bare package name के लिए registry को फिर से check करता है। npm 10 पर, जो हर Node 22 release में शामिल है, ऐसा नहीं होता है। npm 11 पर npm cache npx rm --force के साथ npx cache को साफ़ करें, या npm 10 पर rm -rf "$(npm config get cache)/_npx" के साथ folder को delete करें। फिर npx @deepseek-ai/dsh --version के साथ पुष्टि करें। ध्यान दें कि npm cache clean --force एक अलग directory को साफ़ करता है और इससे यह समस्या ठीक नहीं होगी।
@deepseek-ai/dsh@^0.1.0 install करना विफल क्यों हो जाता है?
npm No matching version found for @deepseek-ai/dsh@^0.1.0. लाइन के साथ error code ETARGET देता है। हर प्रकाशित build एक prerelease है जैसे कि 0.1.0-rc.7, और एक semver range prerelease versions से मेल नहीं खाती जब तक कि range खुद किसी एक का नाम न ले। सटीक version string install करें, जिसमें -rc.N suffix शामिल हो। यह देखने के लिए कि कौन से versions मौजूद हैं, npm view @deepseek-ai/dsh versions --json चलाएँ, क्योंकि sequence में ऐसे अंतराल हैं जहाँ release candidates कभी प्रकाशित नहीं किए गए थे।
क्या मुझे dsh को globally install करना चाहिए या npx के माध्यम से चलाना चाहिए?
npx पहली बार देखने के लिए उपयुक्त है, क्योंकि cache directory के अलावा कुछ भी persist नहीं रहता है। npm install -g @deepseek-ai/dsh@0.1.0-rc.7 जैसा एक pinned global install उन चीजों के लिए उपयुक्त है जिन्हें काम करते रहना है, क्योंकि version तभी बदलता है जब आप उसे बदलते हैं। यदि global install के बाद dsh command नहीं मिलती है, तो npm की global bin directory आपके PATH से गायब है, और npm prefix -g उस root को print करता है जिसके तहत वह रहती है।
क्या DeepSeek Harness निर्माण करने के लिए पर्याप्त स्थिर है?
अभी तक नहीं, इसके अपने विवरण के अनुसार। README में कहा गया है कि project developer preview में है, तेजी से बदल रहा है, और इसमें compatibility तोड़ने वाले बदलाव होंगे। Release candidates 0.1.0-rc.6 और 0.1.0-rc.7 अगस्त 2026 में चार दिनों के अंतराल पर प्रकाशित किए गए थे। एक सटीक version को pin करें और किसी भी guide के बजाय उस pinned build से --help पढ़ें। अपने नोट्स पर तारीख डालें, ताकि आप जान सकें कि वे कितने पुराने हो गए हैं।