SSD Nodes Learn Hosting plans →
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-09-01

DeepSeek Harness install اور version errors درست کریں

ہر شائع شدہ DeepSeek Harness build release candidate ہے۔ درست dsh version pin کریں، npx cache صاف کریں، اور دیکھیں کہ Node کے ساتھ کون سا npm شامل ہے۔

DeepSeek Harness کی تنصیب دراصل کیا ہے

DeepSeek Harness کی تنصیب صرف ایک کمانڈ ہے: npx @deepseek-ai/dsh web۔ کوئی installer موجود نہیں، اور configure کرنے کے لیے کوئی service بھی نہیں ہے۔ لوگوں کو پیش آنے والی زیادہ تر مشکلات دراصل installation سے متعلق نہیں ہوتیں۔ مسئلہ version resolution کا ہوتا ہے: @deepseek-ai/dsh npx نے آج چلانے کے لیے کون سا build منتخب کیا، اور آیا آپ کا Node.js version اسے چلا سکتا ہے یا نہیں۔ جب یہ start ہوتا ہے تو اس کا دکھایا ہوا address localhost سے bind ہوتا ہے، اور Web UI صرف 127.0.0.1:3080 پر جواب کیوں دیتی ہے اس صفحے پر بیان کردہ مسائل سے الگ مسئلہ ہے۔

ذیل کی تمام باتوں کی بنیاد 2 حقائق ہیں۔ اول، اب تک npm پر شائع ہونے والے @deepseek-ai/dsh کے ہر version کی حیثیت release candidate کی ہے، اور latest tag ان میں سے ایک version کی طرف اشارہ کرتا ہے۔ 18 August 2026 تک یہ 0.1.0-rc.7 ہے، جو 17 August 2026 کو شائع ہوا تھا۔ دوم، project README کے مطابق harness ابھی developer preview میں ہے، اس پر تیزی سے کام جاری ہے، اور compatibility توڑنے والی تبدیلیاں متوقع ہیں۔ گزشتہ ہفتے کام کرنے والا flag اس ہفتے ختم ہو سکتا ہے۔ اس پر کچھ بھی build کرنے سے پہلے version کو pin کریں۔

پہلے چند اصطلاحات واضح کر لیں۔ dsh، DeepSeek Harness کا command line tool ہے۔ Node.js وہ JavaScript runtime ہے جس کی اسے ضرورت ہوتی ہے۔ npx وہ package runner ہے جو npm (node package manager) کے ساتھ آتا ہے، اور package کو مستقل طور پر install کرنے کے بجائے ضرورت کے وقت fetch کرتا ہے۔ اگر اس جملے میں harness کا مفہوم مانوس نہیں، تو agent harness وہ program ہے جو model کے گرد wrapper کے طور پر چلتا ہے؛ یہ loop، tools، permissions اور session state کو سنبھالتا ہے۔ اسی لیے ایسا version number جسے آپ نے منتخب نہیں کیا، آپ کے agent کے رویے کو تبدیل کر سکتا ہے۔

dsh کے لیے Node.js کا کون سا ورژن درکار ہے؟

repository کی root package.json میں "engines": {"node": "^22.19.0 || >=24.0.0"} درج ہے؛ 18 August 2026 کو اس کی version 0.1.0-rc.7 تھی۔ اس لیے 22 series میں Node 22.19.0 یا اس کے بعد کا ورژن، یا Node 24 اور اس کے بعد کا کوئی ورژن استعمال کریں۔ Node 20 قابلِ استعمال نہیں ہے۔

سب سے پہلے یہ دیکھیں کہ آپ کے پاس کون سا ورژن موجود ہے۔

node -v
npm -v

یہ وہ حصہ ہے جو اکثر لوگوں کے لیے حیران کن ہوتا ہے۔ شائع شدہ @deepseek-ai/dsh package میں اپنا کوئی engines field موجود نہیں ہے۔ صرف monorepo root میں یہ field درج ہے، اور root کی یہ file npm پر شائع نہیں ہوتی۔ اس لیے npm کے پاس جانچنے کے لیے کچھ نہیں ہوتا؛ وہ کوئی EBADENGINE warning ظاہر نہیں کرتا اور کچھ بھی مسترد نہیں کرتا۔ Node 20 پر installation بظاہر کامیاب دکھائی دیتی ہے، لیکن خرابی بعد میں ظاہر ہوتی ہے، جب loaded code ایسی syntax یا API استعمال کرتا ہے جو آپ کے runtime میں موجود نہیں ہے۔ تلاش کرنے کے لیے کوئی ایک مستقل error string نہیں ہے، کیونکہ سب سے پہلے کون سی line ناکام ہوگی، اس کا انحصار اس module پر ہوتا ہے جو پہلے load ہو۔ crash پڑھنے کے بجائے node -v پڑھیں۔

اگر آپ کا Node بہت پرانا ہے تو VPS پر nvm (node version manager) سب سے کم مداخلت والا حل ہے، کیونکہ یہ آپ کی home directory کے اندر installation کرتا ہے اور 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 کو اب v24. سے شروع ہونے والا version دکھانا چاہیے۔ اگر shell اب بھی پرانا version دکھائے تو nvm shell function load نہیں ہوا۔ نئی login shell کھولیں اور دوبارہ کوشش کریں۔ August 2026 تک Node 24.19.0 فعال LTS (long term support) release ہے، اور ذیل میں بیان کی گئی دوسری وجہ سے بھی یہی بہتر ہدف ہے۔

npx ہر روز مختلف ورژن کیوں چلاتا ہے؟

npx @deepseek-ai/dsh web میں کوئی ورژن درج نہیں ہوتا، اس لیے npx registry سے وہ ورژن طلب کرتا ہے جس کی طرف latest tag اس وقت اشارہ کر رہا ہو۔ یہ tag تبدیل ہوتا رہتا ہے۔ جب DeepSeek 0.1.0-rc.8 جاری کرتا ہے تو آپ کے notes میں موجود 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 --json

dist-tags دکھاتا ہے کہ latest اس وقت کس طرف اشارہ کر رہا ہے۔ 18 August 2026 کو latest اور next دونوں 0.1.0-rc.7 کی طرف اشارہ کر رہے تھے، اس لیے تبدیل کرنے کے لیے کوئی الگ stable channel موجود نہیں تھا۔ versions فہرست زیادہ اہم ہے، کیونکہ اس میں gaps موجود ہیں: 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۔ اس ترتیب میں کچھ numbers موجود نہیں ہیں، کیونکہ بعض release candidates کبھی publish نہیں کیے گئے۔ deploy script میں اگلے -rc.N کا اندازہ لگانا ناکام ہو جائے گا، اس لیے numbers گن کر آگے بڑھنے کے بجائے فہرست پڑھیں۔

npx پرانی version کیوں چلاتا رہتا ہے؟

یہ اس کے برعکس شکایت ہے، اور دونوں باتیں درست ہیں۔ فرق اس npm پر منحصر ہے جسے آپ چلا رہے ہیں۔

npx اپنی الگ package directory رکھتا ہے۔ یہ tarball cache سے جدا ہوتی ہے اور npm cache کے اندر _npx نامی folder میں موجود ہوتی ہے۔ اس کا path دکھائیں اور اسے دیکھیں۔

npm config get cache
ls "$(npm config get cache)/_npx"

کئی سال تک npx کسی bare package name کے لیے وہاں موجود package ہی دوبارہ استعمال کرتا رہا اور registry سے دوبارہ معلومات نہیں لیتا تھا۔ npm 11.2.0 نے یہ طریقہ بدل دیا۔ جب spec صرف bare name یا version range ہو تو npx اب manifest حاصل کرتا ہے۔ یہ cached copy صرف اسی وقت دوبارہ استعمال کرتا ہے جب resolved tarball registry سے ابھی موصول ہونے والے tarball سے مطابقت رکھتا ہو۔

آپ کو کون سا رویہ ملے گا، یہ آپ کی Node release طے کرتی ہے، کیونکہ Node میں npm کی مخصوص version شامل ہوتی ہے:

  • Node 20.20.2 میں npm 10.8.2 شامل ہے۔
  • Node 22.19.0 میں npm 10.9.3 شامل ہے۔
  • Node 22.23.2، جو تازہ ترین 22 release ہے، میں npm 10.9.8 شامل ہے۔
  • Node 24.19.0 میں npm 11.17.0 شامل ہے۔

لہٰذا Node 22 کی پوری series، جسے harness باضابطہ طور پر support کرتا ہے، npm 11.2.0 سے پرانی version جاری کرتی ہے۔ Node 22 پر ایک bare npx @deepseek-ai/dsh web کئی ہفتے پہلے cache کیے گئے release candidate کو چلاتا رہے گا۔ یہی command Node 24 پر ہر بار دوبارہ resolution کرے گی۔ ایک command، دو رویے، اور ان میں سے کوئی بھی آپ کو warning نہیں دیتا۔ Tool سے معلوم کریں کہ وہ کون سا ہے:

npx @deepseek-ai/dsh --version

npx cache صاف کرنا

npm 11.2.0 اور اس کے بعد کی versions میں اس مقصد کے لیے مخصوص subcommands موجود ہیں۔

npm cache npx ls
npm cache npx rm --force

--force کے بغیر npm ہر چیز صاف کرنے سے انکار کرتا ہے اور Please use --force to remove entire npx cache دکھاتا ہے۔ جب آپ تمام entries کے بجائے key کے ذریعے صرف ایک entry حذف کرنا چاہیں تو پہلے npm cache npx ls استعمال کریں۔

npm 10 میں یہ subcommands موجود نہیں ہیں، اس لیے directory خود حذف کریں۔

rm -rf "$(npm config get cache)/_npx"

npm cache clean --force یہاں مدد نہیں کرتا۔ یہ _cacache صاف کرتا ہے، جو tarball store ہے، جبکہ _npx کو ویسا ہی چھوڑ دیتا ہے۔ یہی جدائی ہے جس کی وجہ سے npm نے بعد میں npm cache npx subcommands شامل کیے۔ _npx صاف کرنے سے کوئی مستقل نقصان بھی نہیں ہوتا: اس میں downloaded packages ہوتے ہیں، جبکہ آپ کی harness state $DSH_HOME/profiles/<name> کے تحت موجود رہتی ہے اور متاثر نہیں ہوتی۔

میں کسی release candidate کو عین ورژن پر کیسے pin کروں؟

مکمل 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 کی صورت میں یہ اسے وہاں پہلے سے installed package id کے ساتھ compare کرتا ہے اور registry سے دوبارہ رابطہ کیے بغیر چلا دیتا ہے۔ npm 11.2.0 اور اس کے بعد کے versions میں bare name استعمال کرنے سے ہر start پر 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 کے لیے کوئی matching version نہیں ملا

Caret یا tilde range اس package کے ساتھ fail ہوتی ہے۔ npm install -g @deepseek-ai/dsh@^0.1.0 error code ETARGET اور یہ line No matching version found for @deepseek-ai/dsh@^0.1.0. کے ساتھ جواب دیتا ہے۔ Registry درست ہے۔ یہ semver کا اصول ہے: version range کسی prerelease version سے match نہیں کرتی، جب تک range خود prerelease کو نامزد نہ کرے۔ اس package کی ہر published build -rc.N ہے، جو prerelease ہے، اس لیے ^0.1.0 کسی version سے match نہیں کرتا۔ عین version لکھیں۔

اس اصول کا ایک مفید ضمنی اثر بھی ہے۔ چونکہ ranges کسی نئے release candidate پر خود منتقل نہیں ہو سکتیں، اس لیے ایسی نصف-pinned حالت نہیں رہتی جس کا جائزہ لینا پڑے۔ آپ یا تو عین version پر ہوتے ہیں یا moving tag پر۔

کیا مجھے npx استعمال کرنا چاہیے یا dsh کو globally install کرنا چاہیے؟

پہلی بار جائزہ لینے کے لیے npx استعمال کریں، کیونکہ اس کے بعد صرف ایک cache directory باقی رہتی ہے، جسے صاف کرنے کا طریقہ آپ اب جانتے ہیں۔ ایسی چیز کے لیے جسے reboot کے بعد بھی کام کرنا ہو، pinned global install استعمال کریں، مثلاً وہ coding agent جسے آپ VPS پر مسلسل چلاتے رکھتے ہیں۔

اگر آپ نے ایک ہی box پر دونوں طریقے استعمال کیے ہوں تو دونوں کے نتائج مختلف ہو سکتے ہیں۔ اس لیے ان کا موازنہ کریں۔

which dsh
dsh --version
npx @deepseek-ai/dsh --version

which dsh کامیاب global install کے فوراً بعد کچھ بھی نہ ملنے کا مطلب تقریباً ہمیشہ یہ ہوتا ہے کہ npm کی global bin directory آپ کے PATH میں موجود نہیں ہے۔ root دکھانے کے لیے npm prefix -g چلائیں۔ binaries اس کے اندر موجود bin folder میں ہوتی ہیں۔

سکیورٹی کے حوالے سے ایک اہم بات ہے۔ جب npx کسی نئی چیز کو resolve کرتا ہے تو یہ registry سے code fetch کرکے execute کرتا ہے۔ server پر یہ حقیقی exposure ہے، محض نظری خطرہ نہیں۔ Pinning اس مسئلے کے حل کا ایک حصہ ہے۔ باقی معلومات npm supply chain attacks server تک کیسے پہنچتے ہیں میں دی گئی ہیں۔

دوبارہ قابل عمل نتائج کے لیے developer preview کا مطلب

0.1.0-rc.6 13 August 2026 کو شائع ہوا اور 0.1.0-rc.7 17 August 2026 کو۔ دونوں کے درمیان 4 دن کا فرق ہے۔ اس رفتار سے ایک ماہ پہلے لکھی گئی ہدایات ایسے command line کی وضاحت کر سکتی ہیں جو اب موجود نہ ہو، اور اس میں یہ صفحہ بھی شامل ہے۔ جس version کا بھی ذکر لکھیں، اس کی تاریخ درج کریں، اپنی ذاتی notes کی بھی۔

دو عادات preview کو قابل انتظام بناتی ہیں۔ ہر command اور ہر script میں exact version کو pin کریں، تاکہ server دوبارہ بناتے وقت وہی 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-config

دوبارہ قابل عمل نتائج کا دوسرا حصہ profile ہے۔ dsh --profile <name>، $DSH_HOME/profiles/<name> پر محفوظ profile کو boot کرتا ہے، جبکہ web اور headless profiles پہلے استعمال پر shipped templates سے خود بنتی ہیں۔ اسی directory سے harness اپنی API key، model اور endpoint settings پڑھتا ہے، اس لیے pinned version اور فعال configuration دو الگ چیزیں ہیں جنہیں درست کرنا ضروری ہے۔ In-box bundles اس وقت چلنے والی dsh installation سے resolve ہوتے ہیں، اس لیے pinned version تبدیل کرنے سے یہ bundles بھی تبدیل ہو جاتے ہیں۔ Out-of-tree plugins کا طریقہ مختلف ہے۔ یہ profile directory میں موجود ہوتے ہیں، اور dsh plugin --profile <name> add <package> اپنے arguments pnpm کو بھیج کر انہیں install کرتا ہے۔ اس لیے pnpm کا PATH میں موجود ہونا ضروری ہے، اور جب یہ موجود نہ ہو تو dsh صاف طور پر اس کی اطلاع دیتا ہے۔ آپ کا ہر شامل کردہ plugin انہی permissions کے ساتھ چلتا ہے جو آپ کے agent کے پاس ہیں، اس لیے plugin install کرنے سے پہلے جانچ لیں کہ وہ کن resources تک رسائی حاصل کر سکتا ہے۔ Profile کا اپنا package.json ہی ان plugins کو pin کرتا ہے، اس لیے مکمل pin کے لیے ایک نہیں بلکہ 2 files درکار ہیں۔

اگر آپ نے server پر Python tools کو isolated environments میں رکھا ہے تو یہ تقسیم مانوس محسوس ہوگی: tool اور اس میں شامل کی جانے والی چیزیں الگ مقامات پر pinned ہوتی ہیں۔ Harness شروع ہونے کے بعد اگلا سوال عموماً versions کے بجائے networking سے متعلق ہوتا ہے۔ اسی مرحلے پر remote VPS پر dsh Web UI تک رسائی اور VPS پر DeepSeek Harness install کرنے کی تفصیلی رہنمائی کام آتی ہے۔

وہ argument errors جو آپ واقعی دیکھیں گے

یہ errors CLI کے اپنے parser سے آتے ہیں، اس لیے release candidate لائن میں ان کا رویہ مستقل رہتا ہے، اور ہر error اصل مسئلے کی واضح نشاندہی کرتا ہے۔

error: --profile <name> is required

آپ نے npx @deepseek-ai/dsh کو کسی subcommand اور profile کے بغیر چلایا۔ خالی command ایک profile شروع کرتی ہے، اس لیے اسے نام درکار ہوتا ہے۔ dsh web وہ subcommand ہے جو کسی --profile کے بغیر چلتا ہے، کیونکہ یہ آپ کے لیے فراہم کردہ web profile شروع کر دیتا ہے۔

error: --patch needs a path

--patch کے بعد کچھ بھی فراہم نہیں کیا گیا۔ یہ flag متعدد بار استعمال کیا جا سکتا ہے، اور ہر بار اس کے بعد ایک file path دینا ضروری ہے۔

error: --dump-config and --dump-default-config are mutually exclusive

ان میں سے صرف ایک منتخب کریں۔ --dump-default-config فراہم کردہ bundle layers دکھاتا ہے اور کوئی --patch قبول نہیں کرتا۔ --dump-config کسی profile کی مرکب configuration دکھاتا ہے۔ دونوں configuration دکھا کر exit ہو جاتے ہیں اور harness شروع نہیں کرتے، اس لیے یہ جانچنے کا محفوظ طریقہ ہیں کہ نئی release candidate نے موجودہ configuration میں کیا تبدیلی کی ہے۔

error: plugin needs pnpm arguments to forward (e.g. add <package>)

dsh plugin --profile <name> کو آگے بھیجنے کے لیے کوئی argument نہیں دیا گیا۔ اگر profile موجود نہ ہو تو یہ subcommand پہلے profile initialises کرتا ہے، پھر command line کے باقی حصے pnpm کو دے دیتا ہے؛ اس لیے اسے add @scope/dsh-plugin-example جیسے arguments درکار ہوتے ہیں۔

FAQ

DeepSeek Harness کے لیے Node.js کا کون سا ورژن درکار ہے؟

Repository اپنے root package.json میں ^22.19.0 || >=24.0.0 کا اعلان کرتی ہے۔ 18 August 2026 کو پڑھے گئے اس ورژن کی قدر 0.1.0-rc.7 تھی۔ اس لیے 22 لائن کا Node 22.19.0 یا اس کے بعد کا ورژن، یا Node 24 یا اس کے بعد کا ورژن استعمال کریں۔ Node 20 کام نہیں کرے گا۔ شائع کردہ npm package میں اپنا engines field موجود نہیں ہے۔ اس لیے npm کوئی warning نہیں دیتا اور install کو بھی نہیں روکتا۔ خرابی runtime کے دوران ظاہر ہوتی ہے۔ پہلے node -v چیک کریں۔ Node 24 پھر بھی بہتر انتخاب ہے، کیونکہ اس میں npm 11 شامل ہے، جو npx کے ذریعے version دوبارہ استعمال کرنے کا مسئلہ حل کرتا ہے۔

cached dsh کے بجائے npx کو جدید ترین dsh استعمال کرنے پر کیسے مجبور کروں؟

npm 11.2.0 اور اس کے بعد کے ورژنز میں npx @deepseek-ai/dsh ہر run پر سادہ package name کے لیے registry کو دوبارہ check کرتا ہے۔ Node 22 کے ہر release میں شامل npm 10 ایسا نہیں کرتا۔ npm 11 میں npm cache npx rm --force سے npx cache صاف کریں، یا npm 10 میں rm -rf "$(npm config get cache)/_npx" سے directory حذف کریں۔ پھر npx @deepseek-ai/dsh --version سے تصدیق کریں۔ یاد رکھیں کہ npm cache clean --force ایک مختلف directory صاف کرتا ہے، اس لیے اس سے یہ مسئلہ حل نہیں ہوگا۔

@deepseek-ai/dsh@^0.1.0 کو install کرنے میں ناکامی کیوں ہوتی ہے؟

npm ETARGET error code کے ساتھ یہ line واپس کرتا ہے: No matching version found for @deepseek-ai/dsh@^0.1.0. ہر published build prerelease ہوتا ہے، مثلاً 0.1.0-rc.7۔ semver range prerelease versions سے match نہیں کرتی، جب تک range میں خود prerelease version شامل نہ ہو۔ exact version string install کریں، جس میں -rc.N suffix بھی شامل ہو۔ موجود versions دیکھنے کے لیے npm view @deepseek-ai/dsh versions --json چلائیں، کیونکہ sequence میں ایسے gaps موجود ہیں جہاں release candidates شائع نہیں کیے گئے۔

کیا dsh کو globally install کرنا چاہیے یا npx کے ذریعے چلانا چاہیے؟

ابتدائی جائزے کے لیے npx موزوں ہے، کیونکہ cache directory کے علاوہ کچھ مستقل طور پر محفوظ نہیں ہوتا۔ ہر اس کام کے لیے جسے مسلسل چلتے رہنا ہو، 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 کو دکھاتا ہے جس کے اندر یہ directory موجود ہے۔

کیا DeepSeek Harness پر development شروع کرنے کے لیے کافی stable ہے؟

اپنی دستاویز کے مطابق، ابھی نہیں۔ README میں بتایا گیا ہے کہ project developer preview میں ہے، تیزی سے تبدیل ہو رہا ہے، اور compatibility توڑنے والی تبدیلیاں آئیں گی۔ Release candidates 0.1.0-rc.6 اور 0.1.0-rc.7 کو August 2026 میں 4 دن کے وقفے سے شائع کیا گیا تھا۔ exact version pin کریں اور کسی guide کے بجائے اسی pinned build سے --help پڑھیں۔ اپنی notes پر تاریخ درج کریں، تاکہ معلوم رہے کہ وہ کتنی پرانی ہو چکی ہیں۔