DeepSeek Harness install ও version error ঠিক করার উপায়
প্রতিটি প্রকাশিত DeepSeek Harness build release candidate। নির্দিষ্ট dsh version pin করুন, npx cache পরিষ্কার করুন এবং Node-এর সঙ্গে থাকা npm কোনটি চলছে তা যাচাই করুন।
DeepSeek Harness ইনস্টল আসলে কী
DeepSeek Harness ইনস্টল করার জন্য একটি কমান্ডই যথেষ্ট: npx @deepseek-ai/dsh web। কোনো installer নেই এবং কনফিগার করার মতো কোনো service-ও নেই। মানুষ যে বেশিরভাগ সমস্যায় পড়ে, সেগুলো আসলে installation সমস্যা নয়। এগুলো version resolution-এর সমস্যা: আজ @deepseek-ai/dsh npx কোন build চালানোর সিদ্ধান্ত নিয়েছে এবং আপনার Node.js version সেটি চালাতে পারে কি না।
নিচের সবকিছু দুটি তথ্যের ওপর নির্ভর করে। প্রথমত, এখন পর্যন্ত npm-এ প্রকাশিত @deepseek-ai/dsh-এর প্রতিটি version একটি release candidate, এবং latest tag তাদেরই একটি version-কে নির্দেশ করে। 18 August 2026 অনুযায়ী সেটি হলো 0.1.0-rc.7, যা 17 August 2026-এ প্রকাশিত হয়েছে। দ্বিতীয়ত, প্রকল্পের README-তে বলা হয়েছে যে harness বর্তমানে developer preview পর্যায়ে আছে, দ্রুত পরিবর্তিত হচ্ছে এবং compatibility-breaking পরিবর্তন থাকবে। গত সপ্তাহে কাজ করা কোনো flag এই সপ্তাহে নাও থাকতে পারে। এর ওপর ভিত্তি করে কিছু তৈরি করার আগে একটি version pin করুন।
আগে কয়েকটি term পরিষ্কার করা যাক। dsh হলো DeepSeek Harness-এর command line tool। Node.js হলো এটি চালানোর জন্য প্রয়োজনীয় JavaScript runtime। npx হলো npm (node package manager)-এর সঙ্গে সরবরাহ করা package runner। এটি package স্থায়ীভাবে install না করে প্রয়োজনের সময় fetch করে।
dsh-এর জন্য কোন Node.js version প্রয়োজন?
Repository-এর root package.json-এ "engines": {"node": "^22.19.0 || >=24.0.0"} নির্ধারিত আছে। 18 August 2026-এ এটি 0.1.0-rc.7 version-এ পড়ে। তাই 22 line-এর মধ্যে Node 22.19.0 বা তার পরের version ব্যবহার করুন। বিকল্প হিসেবে Node 24 বা তার পরের version ব্যবহার করুন। Node 20 চলবে না।
অন্য কিছু করার আগে আপনার বর্তমান version পরীক্ষা করুন।
node -v
npm -vএখানেই অনেক ব্যবহারকারী বিভ্রান্ত হন। প্রকাশিত @deepseek-ai/dsh package-এ নিজস্ব কোনো engines field নেই। শুধু monorepo root-এ এটি নির্ধারিত আছে, এবং সেই root file কখনো npm-এ প্রকাশিত হয় না। তাই npm পরীক্ষা করার মতো কিছু পায় না। এটি কোনো EBADENGINE warning দেখায় না এবং কিছু প্রত্যাখ্যানও করে না। Node 20-এ install সফল হয়েছে বলে মনে হয়। পরে loaded code এমন syntax বা API ব্যবহার করলে failure দেখা দেয়, যা আপনার runtime-এ নেই। খোঁজার মতো একটি নির্দিষ্ট স্থিতিশীল error string নেই। কোন module আগে load হবে, তার ওপর নির্ভর করে কোন line প্রথমে ব্যর্থ হবে। Crash পড়ার পরিবর্তে node -v পড়ুন।
আপনার Node version পুরোনো হলে VPS-এ nvm (node version manager) ব্যবহার করাই সবচেয়ে কম হস্তক্ষেপের সমাধান। এটি আপনার home directory-র অধীনে install হয় এবং system 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 -vএখন node -v-এর output v24. দিয়ে শুরু হওয়া একটি version দেখানো উচিত। Shell এখনও পুরোনো version দেখালে nvm shell function load হয়নি। একটি নতুন login shell খুলে আবার চেষ্টা করুন। August 2026 অনুযায়ী Node 24.19.0 হলো active LTS (long term support) release। নিচে ব্যাখ্যা করা দ্বিতীয় একটি কারণেও এটিই ভালো target।
npx কেন প্রতিদিন ভিন্ন version চালায়?
npx @deepseek-ai/dsh web-এ কোনো version উল্লেখ নেই। তাই npx registry-কে জিজ্ঞাসা করে, latest tag বর্তমানে যে version-এ নির্দেশ করছে সেটি কী। ওই tag পরিবর্তিত হয়। DeepSeek যখন 0.1.0-rc.8 প্রকাশ করে, তখন আপনার নোটে থাকা command-টি কোনো prompt ছাড়াই এবং সামনে কোনো changelog না দেখিয়েই ভিন্ন code চালাতে শুরু করে।
আপনি 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 candidate কখনো প্রকাশিত হয়নি। deploy script-এ পরবর্তী -rc.N অনুমান করলে তা ব্যর্থ হবে। তাই নম্বর গুনে পরবর্তীটি নির্ধারণ না করে তালিকাটি পড়ুন।
npx কেন পুরোনো version চালাতে থাকে?
এটি আগের সমস্যার বিপরীত অভিযোগ। আপনি কোন npm চালাচ্ছেন তার ওপর নির্ভর করে দুটিই সত্য হতে পারে।
npx tarball cache থেকে আলাদা একটি নিজস্ব package directory ব্যবহার করে। এটি npm cache-এর ভিতরে _npx নামের একটি folder-এ থাকে। Path দেখুন এবং directory-টি পরীক্ষা করুন।
npm config get cache
ls "$(npm config get cache)/_npx"বহু বছর ধরে npx bare package name-এর ক্ষেত্রে সেখানে যা পেত, সেটিই পুনর্ব্যবহার করত এবং registry-কে আবার জিজ্ঞাসা করত না। npm 11.2.0 এই আচরণ পরিবর্তন করে। spec যদি bare name বা version range হয়, npx এখন manifest fetch করে। Registry থেকে সদ্য ফেরত আসা resolved tarball-এর সঙ্গে মিললেই কেবল cached copy পুনর্ব্যবহার করে।
আপনি কোন আচরণ পাবেন, তা আপনার Node release নির্ধারণ করে। কারণ Node একটি নির্দিষ্ট npm bundle করে:
- Node 20.20.2 npm 10.8.2 bundle করে।
- Node 22.19.0 npm 10.9.3 bundle করে।
- Node 22.23.2, অর্থাৎ সর্বশেষ 22 release, npm 10.9.8 bundle করে।
- Node 24.19.0 npm 11.17.0 bundle করে।
তাই harness আনুষ্ঠানিকভাবে সমর্থন করা সম্পূর্ণ Node 22 line-এ 11.2.0-এর চেয়ে পুরোনো npm থাকে। Node 22-এ bare npx @deepseek-ai/dsh web কয়েক সপ্তাহ আগে cache করা release candidate-ই চালাতে থাকবে। Node 24-এ একই command প্রতিবার চালানোর সময় নতুন করে resolve করবে। একই command, দুটি আচরণ, এবং কোনোটিই আপনাকে সতর্ক করে না। Tool-টি কী তা জিজ্ঞাসা করুন:
npx @deepseek-ai/dsh --versionnpx cache পরিষ্কার করা
npm 11.2.0 এবং পরবর্তী version-এ এর জন্য নির্দিষ্ট subcommand রয়েছে।
npm cache npx ls
npm cache npx rm --force--force ছাড়া npm সবকিছু মুছে ফেলতে অস্বীকার করে এবং Please use --force to remove entire npx cache প্রদর্শন করে। সব entry মুছে না দিয়ে key অনুযায়ী একটি entry সরাতে চাইলে আগে npm cache npx ls ব্যবহার করুন।
npm 10-এ এই subcommand-গুলো নেই। তাই directory-টি নিজেই মুছে ফেলুন।
rm -rf "$(npm config get cache)/_npx"npm cache clean --force এখানে কোনো সাহায্য করে না। এটি _cacache, অর্থাৎ tarball store, পরিষ্কার করে এবং _npx অপরিবর্তিত রাখে। এই আলাদা ব্যবস্থার কারণেই npm পরে npm cache npx subcommand যোগ করে। _npx পরিষ্কার করলেও স্থায়ী কোনো ক্ষতি হয় না। এতে downloaded package থাকে, আর আপনার harness state $DSH_HOME/profiles/<name>-এর অধীনে থাকে এবং অপরিবর্তিত থাকে।
কীভাবে নির্দিষ্ট release candidate pin করব?
-rc.N অংশসহ সম্পূর্ণ version string লিখুন।
npx --yes @deepseek-ai/dsh@0.1.0-rc.7 webস্ক্রিপ্টে --yes গুরুত্বপূর্ণ, কারণ npx অন্যথায় আগে দেখা হয়নি এমন package ইনস্টল করার আগে একটি prompt দেখায় এবং এমন উত্তরের জন্য অপেক্ষা করে যা কখনো আসে না।
নির্দিষ্ট version ব্যবহার করাও দ্রুততম পদ্ধতি। npx আপনার লেখা spec string-এর ভিত্তিতে cache directory নির্ধারণ করে। নির্দিষ্ট version হলে সেখানে আগে থেকেই ইনস্টল থাকা package id-এর সঙ্গে এটি তুলনা করে এবং registry-তে কোনো অনুরোধ না পাঠিয়েই package চালায়। npm 11.2.0 এবং পরবর্তী সংস্করণে, bare name ব্যবহার করলে প্রতিবার শুরু হওয়ার সময় manifest fetch করতে হয়।
Global install-ও একইভাবে pin করা যায় এবং এতে একটি সংক্ষিপ্ত command পাওয়া যায়।
npm install -g @deepseek-ai/dsh@0.1.0-rc.7
dsh --version@deepseek-ai/dsh@^0.1.0-এর সঙ্গে মিলে এমন কোনো version পাওয়া যায়নি
এই package-এর ক্ষেত্রে caret বা tilde range ব্যর্থ হয়। npm install -g @deepseek-ai/dsh@^0.1.0 error code ETARGET এবং লাইন No matching version found for @deepseek-ai/dsh@^0.1.0. দিয়ে উত্তর দেয়। Registry ঠিক আছে। এটি semver-এর নিয়ম: range নিজে prerelease উল্লেখ না করলে কোনো version range prerelease version-এর সঙ্গে মেলে না। এই package-এর প্রকাশিত প্রতিটি build হলো -rc.N, যা একটি prerelease। তাই ^0.1.0 কোনো version-এর সঙ্গে মেলে না। নির্দিষ্ট version লিখুন।
এই নিয়মের একটি উপকারী দিক আছে। Range নতুন release candidate-এ অনিয়ন্ত্রিতভাবে চলে যেতে পারে না। তাই বিবেচনা করার মতো কোনো আংশিকভাবে pinned অবস্থা থাকে না। আপনি হয় নির্দিষ্ট version ব্যবহার করছেন, নয়তো একটি পরিবর্তনশীল tag ব্যবহার করছেন।
npx ব্যবহার করব, নাকি dsh globalভাবে install করব?
প্রথমবার পরীক্ষা করার জন্য npx ব্যবহার করুন। এতে এখন পর্যন্ত জানা cache directory ছাড়া অন্য কিছু অবশিষ্ট থাকে না, এবং সেই directory কীভাবে clear করতে হয় তা আপনি জানেন। reboot-এর পরেও কাজ করতে হবে এমন কিছুর জন্য pinned global install ব্যবহার করুন। যেমন, VPS-এ চালু রাখা coding agent।
একই মেশিনে দুটিই ব্যবহার করলে তাদের ফল আলাদা হতে পারে। তাই তুলনা করে দেখুন।
which dsh
dsh --version
npx @deepseek-ai/dsh --versionwhich dsh সফল global install-এর পরপরই কিছু না পাওয়ার অর্থ প্রায় সব সময় হলো, npm-এর global bin directory আপনার PATH-এ নেই। root দেখাতে npm prefix -g চালান। Binary-গুলো এর অধীনের bin folder-এ থাকে।
একটি security বিষয় মনে রাখুন। npx নতুন কোনো জিনিস resolve করার সময় registry থেকে code fetch করে এবং execute করে। server-এ এটি তাত্ত্বিক ঝুঁকি নয়, বাস্তব exposure। Pinning এর একটি সমাধান। বাকি বিষয়টি ব্যাখ্যা করা হয়েছে npm supply chain attack কীভাবে server-এ পৌঁছায়-এ।
পুনরুৎপাদনযোগ্যতার ক্ষেত্রে developer preview-এর অর্থ
0.1.0-rc.6 13 August 2026-এ এবং 0.1.0-rc.7 17 August 2026-এ প্রকাশিত হয়েছে। ব্যবধান মাত্র 4 দিন। এই গতিতে এক মাস আগে লেখা নির্দেশনায় এমন command line থাকতে পারে, যা আর বিদ্যমান নেই; এই পৃষ্ঠাও এর ব্যতিক্রম নয়। নিজের নোটসহ আপনি লিখে রাখা প্রতিটি version-এর দাবির পাশে তারিখ দিন।
দুটি অভ্যাস preview ব্যবহারের সমস্যাগুলো সামলাতে সাহায্য করে। প্রতিটি command এবং script-এ সঠিক version নির্দিষ্ট করুন, যাতে server পুনর্নির্মাণ করলে একই harness তৈরি হয়। এরপর কোনো guide নয়, নির্দিষ্ট version-এ তৈরি build-এর help output পড়ুন।
npx @deepseek-ai/dsh@0.1.0-rc.7 --help
npx @deepseek-ai/dsh@0.1.0-rc.7 web --dump-configপুনরুৎপাদনযোগ্যতার দ্বিতীয় অংশ হলো profile। dsh --profile <name> $DSH_HOME/profiles/<name>-এ সংরক্ষিত profile boot করে, এবং web ও headless profile প্রথম ব্যবহারের সময় shipped template থেকে নিজেদের তৈরি করে। এই directory-তেই harness তার API key, model এবং endpoint settings পড়ে, তাই pinned version এবং কার্যকর configuration—দুটি বিষয় আলাদাভাবে সঠিকভাবে নির্ধারণ করতে হবে। In-box bundle বর্তমানে চলমান dsh installation থেকে resolve হয়। অর্থাৎ pinned version পরিবর্তন করলে ওই bundle-গুলোও পরিবর্তিত হয়। Out-of-tree plugin ভিন্নভাবে কাজ করে। এগুলো profile directory-তে থাকে, এবং dsh plugin --profile <name> add <package> এগুলো install করার জন্য নিজের argument pnpm-এ পাঠায়। তাই PATH-এ pnpm থাকতে হবে; না থাকলে dsh তা স্পষ্টভাবে জানায়। Profile-এর নিজস্ব package.json-তেই ওই plugin-গুলোর version pin করা থাকে। তাই সম্পূর্ণ pin-এর জন্য একটি নয়, দুটি file প্রয়োজন।
আপনি যদি server-এ isolated environment-এ Python tool রেখে থাকেন, এই বিভাজনটি পরিচিত মনে হবে: tool এবং tool-এ যোগ করা উপাদানগুলো আলাদা জায়গায় pin করা থাকে। Harness চালু হলে পরের প্রশ্নটি সাধারণত version নয়, networking নিয়ে হয়। তখন remote VPS-এ dsh Web UI-তে পৌঁছানো এবং VPS-এ DeepSeek Harness install করার বিস্তারিত নির্দেশনা প্রাসঙ্গিক হয়।
আপনি বাস্তবে যে argument error দেখবেন
এগুলো CLI-এর নিজস্ব parser থেকে আসে। তাই release candidate line জুড়ে এগুলো স্থিতিশীল থাকে এবং প্রতিটি error-এ সঠিক সমস্যাটি উল্লেখ থাকে।
error: --profile <name> is required
আপনি কোনো subcommand বা profile ছাড়াই npx @deepseek-ai/dsh চালিয়েছেন। সরাসরি command চালালে একটি profile boot হয়, তাই এর জন্য একটি name প্রয়োজন। dsh web হলো এমন subcommand, যার কোনো --profile লাগে না, কারণ এটি আপনার হয়ে shipped web profile boot করে।
error: --patch needs a path
--patch-এর পরে কোনো কিছু দেওয়া হয়নি। এই flag একাধিকবার ব্যবহার করা যায় এবং প্রতিবার এর পরে একটি file path দিতে হয়।
error: --dump-config and --dump-default-config are mutually exclusive
একটি বেছে নিন। --dump-default-config shipped bundle layer-গুলো print করে এবং কোনো --patch গ্রহণ করে না। --dump-config একটি profile-এর composed configuration print করে। উভয় command configuration print করে exit করে, harness start করে না। তাই নতুন release candidate আপনার configuration-এ কী পরিবর্তন করেছে তা দেখার নিরাপদ উপায় এগুলো।
error: plugin needs pnpm arguments to forward (e.g. add <package>)
dsh plugin --profile <name>-কে forward করার জন্য কোনো argument দেওয়া হয়নি। profile না থাকলে এই subcommand প্রথমে profile initialise করে, তারপর command line-এর বাকি অংশ pnpm-এর কাছে পাঠায়। তাই এর জন্য add @scope/dsh-plugin-example-এর মতো argument প্রয়োজন।
FAQ
DeepSeek Harness-এর জন্য Node.js-এর কোন সংস্করণ প্রয়োজন?
রিপোজিটরি তার root package.json-এ ^22.19.0 || >=24.0.0 ঘোষণা করে; 18 August 2026-এ এটি 0.1.0-rc.7 সংস্করণে পড়া হয়েছে। তাই 22 line-এর Node 22.19.0 বা পরবর্তী সংস্করণ, অথবা Node 24 ও পরবর্তী সংস্করণ ব্যবহার করুন। Node 20 কাজ করবে না। প্রকাশিত npm package-এ নিজস্ব engines field নেই। তাই npm সতর্ক করে না এবং install আটকে দেয় না; পরিবর্তে runtime-এ ব্যর্থতা দেখা দেয়। প্রথমে node -v পরীক্ষা করুন। Node 24 ব্যবহার করাই ভালো, কারণ এতে npm 11 bundled থাকে, যা npx-এর version reuse সমস্যা ঠিক করে।
Cached version-এর পরিবর্তে npx-কে সর্বশেষ dsh ব্যবহার করতে কীভাবে বাধ্য করব?
npm 11.2.0 এবং পরবর্তী সংস্করণে, npx @deepseek-ai/dsh প্রতিবার run করার সময় bare package name-এর জন্য registry পুনরায় পরীক্ষা করে। Node 22-এর প্রতিটি release-এর সঙ্গে bundled npm 10-এ এই আচরণ নেই। npm 11-এ npm cache npx rm --force ব্যবহার করে npx cache পরিষ্কার করুন, অথবা npm 10-এ rm -rf "$(npm config get cache)/_npx" ব্যবহার করে folder মুছে দিন। এরপর npx @deepseek-ai/dsh --version দিয়ে নিশ্চিত করুন। মনে রাখবেন, npm cache clean --force একটি ভিন্ন directory পরিষ্কার করে। এটি এই সমস্যা সমাধান করবে না।
@deepseek-ai/dsh@^0.1.0 install করতে ব্যর্থ হয় কেন?
npm ETARGET error code ফেরত দেয় এবং No matching version found for @deepseek-ai/dsh@^0.1.0. line দেখায়। প্রকাশিত প্রতিটি build একটি prerelease, যেমন 0.1.0-rc.7। কোনো semver range-এর মধ্যে prerelease version মেলে না, যদি না range-টিতেই একটি prerelease version উল্লেখ থাকে। -rc.N suffix-সহ exact version string install করুন। কোন version বিদ্যমান তা দেখতে npm view @deepseek-ai/dsh versions --json চালান, কারণ sequence-এ gap আছে যেখানে release candidate প্রকাশ করা হয়নি।
dsh কি globally install করা উচিত, নাকি npx-এর মাধ্যমে চালানো উচিত?
প্রথমবার দেখার জন্য npx উপযুক্ত, কারণ cache directory ছাড়া কিছু স্থায়ীভাবে রাখা হয় না। নির্দিষ্ট version-সহ global install, যেমন npm install -g @deepseek-ai/dsh@0.1.0-rc.7, নিয়মিত চালু রাখতে হবে এমন ব্যবহারের জন্য উপযুক্ত। কারণ আপনি version পরিবর্তন না করা পর্যন্ত এটি পরিবর্তিত হয় না। Global install-এর পরে dsh command না পাওয়া গেলে npm-এর global bin directory আপনার PATH-এ নেই। npm prefix -g এটি যে root-এর অধীনে রয়েছে তা দেখায়।
DeepSeek Harness-এর ওপর ভিত্তি করে কাজ করার মতো যথেষ্ট stable কি?
নিজস্ব বর্ণনা অনুযায়ী, এখনও নয়। README-তে বলা হয়েছে যে project-টি developer preview পর্যায়ে রয়েছে, দ্রুত পরিবর্তন হচ্ছে এবং compatibility-breaking change আসবে। 0.1.0-rc.6 এবং 0.1.0-rc.7 release candidate দুটি August 2026-এ চার দিনের ব্যবধানে প্রকাশিত হয়েছিল। একটি exact version pin করুন এবং যেকোনো guide-এর পরিবর্তে সেই pinned build-এর --help পড়ুন। নিজের নোটে তারিখ লিখুন, যাতে পরে বুঝতে পারেন সেগুলো কতটা পুরোনো হয়ে গেছে।