SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-22

Memperbaiki Error Instalasi dan Versi DeepSeek Harness

Semua build DeepSeek Harness yang dipublikasikan adalah release candidate. Kunci versi dsh, bersihkan cache npx, dan periksa npm bawaan Node.js.

Instalasi DeepSeek Harness yang sebenarnya

Instalasi DeepSeek Harness hanya terdiri dari satu perintah: npx @deepseek-ai/dsh web. Tidak ada installer dan tidak ada service yang perlu dikonfigurasi. Sebagian besar masalah yang ditemui pengguna sebenarnya bukan masalah instalasi. Masalahnya adalah resolusi versi: build @deepseek-ai/dsh mana yang diputuskan untuk dijalankan oleh npx hari ini, serta apakah versi Node.js Anda dapat menjalankannya.

Dua fakta berikut menjadi dasar untuk semua hal di bawah ini. Pertama, setiap versi @deepseek-ai/dsh yang sejauh ini dipublikasikan ke npm merupakan release candidate, dan tag latest mengarah ke salah satunya. Per 18 August 2026, versi tersebut adalah 0.1.0-rc.7, yang dipublikasikan pada 17 August 2026. Kedua, README proyek menyatakan bahwa harness ini masih dalam developer preview, mengalami iterasi cepat, dan akan mengalami perubahan yang memutus kompatibilitas. Flag yang berfungsi minggu lalu dapat hilang minggu ini. Tetapkan versi sebelum Anda membangun apa pun di atasnya.

Beberapa istilah terlebih dahulu. dsh adalah command line tool DeepSeek Harness. Node.js adalah runtime JavaScript yang dibutuhkannya. npx adalah package runner yang disertakan bersama npm (node package manager), dan mengambil package sesuai kebutuhan alih-alih menginstalnya secara permanen.

Versi Node.js apa yang dibutuhkan dsh?

Root repositori package.json mendeklarasikan "engines": {"node": "^22.19.0 || >=24.0.0"}, yang pada 18 August 2026 dibaca sebagai versi 0.1.0-rc.7. Jadi, gunakan Node 22.19.0 atau yang lebih baru dalam lini 22, atau Node 24 dan yang lebih baru. Node 20 tidak didukung.

Periksa versi yang tersedia sebelum melakukan hal lain.

node -v
npm -v

Berikut bagian yang sering mengejutkan pengguna. Paket @deepseek-ai/dsh yang dipublikasikan tidak memiliki field engines sendiri. Hanya root monorepo yang mendeklarasikannya, dan file root tersebut tidak pernah dipublikasikan ke npm. Karena itu, npm tidak memiliki apa pun untuk diperiksa. npm tidak menampilkan peringatan EBADENGINE dan tidak menolak instalasi. Pada Node 20, instalasi tampak berhasil, tetapi kegagalan baru terjadi kemudian, saat kode yang dimuat menggunakan sintaks atau API yang tidak tersedia pada runtime Anda. Tidak ada satu string error yang selalu sama untuk dicari karena baris yang gagal lebih dahulu bergantung pada modul yang dimuat lebih dahulu. Baca node -v, bukan hanya pesan crash.

Jika Node Anda terlalu lama, nvm (node version manager) adalah solusi dengan perubahan paling minimal pada VPS karena nvm menginstal Node di bawah direktori home Anda dan membiarkan Node sistem tetap digunakan.

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 sekarang seharusnya menampilkan versi yang diawali dengan v24.. Jika shell masih melaporkan versi lama, fungsi shell nvm belum dimuat. Buka login shell baru, lalu coba lagi. Node 24.19.0 adalah rilis LTS (long term support) aktif per August 2026, dan merupakan target yang lebih baik karena alasan kedua yang dibahas di bawah.

Mengapa npx menjalankan versi yang berbeda setiap hari?

npx @deepseek-ai/dsh web tidak menyebutkan versi, sehingga npx meminta registry mengembalikan target tag latest saat ini. Target tag tersebut dapat berubah. Ketika DeepSeek merilis 0.1.0-rc.8, perintah yang tersimpan di catatan Anda mulai menjalankan kode yang berbeda, tanpa prompt dan tanpa changelog yang ditampilkan kepada Anda.

Anda dapat memeriksa setiap komponen yang berubah dari 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 menampilkan tujuan latest saat ini. Pada 18 August 2026, latest dan next sama-sama menunjuk ke 0.1.0-rc.7, sehingga tidak ada channel stable terpisah yang dapat digunakan. Daftar versions lebih menarik karena memiliki celah: 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. Beberapa nomor hilang dari urutan tersebut karena beberapa release candidate tidak pernah dirilis. Menebak -rc.N berikutnya dalam deploy script akan gagal, jadi baca daftarnya alih-alih menghitung naik.

Mengapa npx tetap menjalankan versi lama?

Ini adalah keluhan yang berlawanan, dan keduanya dapat benar, bergantung pada npm yang Anda jalankan.

npx memiliki direktori paket sendiri yang terpisah dari cache tarball, dalam folder bernama _npx di dalam cache npm. Tampilkan path tersebut dan periksa isinya.

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

Selama bertahun-tahun, npx menggunakan apa pun yang ditemukan di sana untuk nama paket tanpa spesifikasi dan tidak pernah meminta data terbaru ke registry. npm 11.2.0 mengubah perilaku ini. Jika spesifikasinya berupa nama tanpa spesifikasi atau rentang versi, npx sekarang mengambil manifest dan hanya menggunakan salinan dalam cache jika tarball yang telah di-resolve cocok dengan hasil yang baru dikembalikan oleh registry.

Perilaku yang Anda dapatkan ditentukan oleh rilis Node yang digunakan, karena Node menyertakan versi npm tertentu:

  • Node 20.20.2 menyertakan npm 10.8.2.
  • Node 22.19.0 menyertakan npm 10.9.3.
  • Node 22.23.2, rilis 22 terbaru, menyertakan npm 10.9.8.
  • Node 24.19.0 menyertakan npm 11.17.0.

Jadi, seluruh lini Node 22, yang secara resmi didukung oleh harness, menyertakan npm yang lebih lama daripada 11.2.0. Pada Node 22, npx @deepseek-ai/dsh web tanpa spesifikasi akan tetap menjalankan release candidate yang disimpan dalam cache beberapa minggu lalu. Perintah yang sama pada Node 24 akan melakukan resolve ulang setiap kali dijalankan. Satu perintah, dua perilaku, dan tidak satu pun memberikan peringatan. Tanyakan versinya kepada tool:

npx @deepseek-ai/dsh --version

Menghapus cache npx

Pada npm 11.2.0 dan versi yang lebih baru, tersedia subperintah khusus.

npm cache npx ls
npm cache npx rm --force

Tanpa --force, npm menolak menghapus semuanya dan menampilkan Please use --force to remove entire npx cache. Gunakan npm cache npx ls terlebih dahulu jika Anda ingin menghapus satu entri berdasarkan key, bukan menghapus semuanya.

Pada npm 10, subperintah tersebut tidak tersedia, jadi hapus direktori itu secara manual.

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

npm cache clean --force tidak membantu dalam kasus ini. Perintah tersebut menghapus _cacache, yaitu penyimpanan tarball, tetapi membiarkan _npx. Pemisahan ini merupakan alasan npm kemudian menambahkan subperintah npm cache npx. Menghapus _npx juga tidak menimbulkan dampak permanen: direktori tersebut berisi paket yang telah diunduh, sedangkan status harness berada di bawah $DSH_HOME/profiles/<name> dan tidak terpengaruh.

Bagaimana cara menetapkan release candidate yang tepat?

Cantumkan string versi lengkap, termasuk bagian -rc.N.

npx --yes @deepseek-ai/dsh@0.1.0-rc.7 web

--yes penting dalam skrip karena npx akan menampilkan prompt sebelum menginstal paket yang belum pernah ditemukannya, lalu menunggu jawaban yang tidak pernah diberikan.

Versi yang tepat juga merupakan jalur tercepat. npx menentukan direktori cache berdasarkan string spesifikasi yang Anda ketik. Untuk versi yang tepat, npx membandingkan string tersebut dengan ID paket yang sudah terinstal di sana, lalu menjalankannya tanpa permintaan apa pun ke registry. Pada npm 11.2.0 dan yang lebih baru, nama tanpa versi menyebabkan pengambilan manifest pada setiap kali start.

Instalasi global menetapkan versi dengan cara yang sama dan menyediakan perintah yang lebih singkat.

npm install -g @deepseek-ai/dsh@0.1.0-rc.7
dsh --version

Tidak ditemukan versi yang cocok untuk @deepseek-ai/dsh@^0.1.0

Rentang caret atau tilde gagal digunakan pada paket ini. npm install -g @deepseek-ai/dsh@^0.1.0 memberikan respons dengan kode error ETARGET dan baris No matching version found for @deepseek-ai/dsh@^0.1.0. Registry berfungsi normal. Ini adalah aturan semver: rentang versi tidak cocok dengan versi prerelease kecuali rentang tersebut juga mencantumkan prerelease. Setiap build paket yang dipublikasikan adalah -rc.N, yang merupakan prerelease, sehingga ^0.1.0 tidak cocok dengan versi apa pun. Tulis versi yang tepat.

Aturan ini juga memiliki dampak yang berguna. Karena rentang versi tidak dapat berpindah ke release candidate baru, tidak ada kondisi setengah-terkunci yang perlu dipertimbangkan. Anda menggunakan versi yang tepat atau tag yang dapat berubah.

Haruskah saya menggunakan npx atau menginstal dsh secara global?

Gunakan npx untuk percobaan awal karena tidak ada yang tertinggal selain direktori cache yang kini Anda tahu cara menghapusnya. Gunakan instalasi global dengan versi yang dipatok untuk apa pun yang harus tetap berfungsi setelah reboot, misalnya coding agent yang terus Anda jalankan pada VPS.

Keduanya dapat memberikan hasil berbeda pada server yang pernah Anda gunakan untuk menjalankan keduanya. Karena itu, bandingkan hasilnya.

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

which dsh yang tidak menemukan apa pun segera setelah instalasi global berhasil hampir selalu berarti direktori bin global npm tidak tercantum dalam PATH Anda. Jalankan npm prefix -g untuk menampilkan root. Biner berada di folder bin di bawah direktori tersebut.

Satu catatan keamanan. npx mengambil dan mengeksekusi kode dari registry setiap kali menemukan sesuatu yang baru. Pada server, hal ini merupakan paparan nyata, bukan sekadar kemungkinan teoretis. Mematok versi merupakan salah satu solusinya. Penjelasan lainnya terdapat dalam cara serangan rantai pasok npm menjangkau server.

Makna pratinjau developer bagi reproduktibilitas

0.1.0-rc.6 dipublikasikan pada 13 Agustus 2026 dan 0.1.0-rc.7 pada 17 Agustus 2026. Jaraknya hanya empat hari. Dengan laju seperti itu, instruksi yang ditulis sebulan lalu dapat menjelaskan command line yang sudah tidak ada, termasuk pada halaman ini. Cantumkan tanggal pada setiap klaim versi yang Anda tulis, termasuk catatan Anda sendiri.

Dua kebiasaan membuat pratinjau ini tetap dapat digunakan. Tetapkan versi yang persis dalam setiap command dan setiap script agar pembangunan ulang server menghasilkan harness yang sama. Kemudian, baca output bantuan dari build yang telah ditetapkan versinya, bukan dari panduan mana pun.

npx @deepseek-ai/dsh@0.1.0-rc.7 --help
npx @deepseek-ai/dsh@0.1.0-rc.7 web --dump-config

Bagian kedua dari reproduktibilitas adalah profile. dsh --profile <name> mem-boot profile yang disimpan di $DSH_HOME/profiles/<name>, sedangkan profile web dan headless dibuat dari template yang disertakan saat pertama kali digunakan. Direktori tersebut juga menjadi lokasi harness membaca API key, model, dan pengaturan endpoint-nya, sehingga versi yang ditetapkan dan konfigurasi yang berfungsi merupakan dua hal terpisah yang harus dikonfigurasi dengan benar. Bundle bawaan di-resolve dari instalasi dsh yang sedang berjalan, sehingga perubahan pada versi yang ditetapkan juga mengubah bundle tersebut. Plugin out-of-tree berperilaku berbeda. Plugin ini berada di direktori profile, dan dsh plugin --profile <name> add <package> meneruskan argumennya ke pnpm untuk menginstalnya. Karena itu, pnpm harus tersedia di PATH Anda, dan dsh menyatakannya dengan jelas jika tidak tersedia. package.json milik profile tersebut yang menetapkan versi plugin, sehingga penetapan versi lengkap mencakup dua file, bukan satu.

Pemisahan ini akan terasa familiar jika Anda pernah menyimpan tool Python dalam environment terisolasi di server: tool dan komponen yang Anda tambahkan ke dalamnya ditetapkan versinya di lokasi yang terpisah. Setelah harness berjalan, pertanyaan berikutnya biasanya berkaitan dengan jaringan, bukan versi. Pada tahap itu, mengakses Web UI dsh pada VPS remote dan panduan yang lebih panjang dalam menginstal DeepSeek Harness pada VPS dapat digunakan.

Kesalahan argumen yang benar-benar akan Anda lihat

Kesalahan ini berasal dari parser CLI itu sendiri, sehingga tetap konsisten di seluruh rangkaian release candidate dan masing-masing menyebutkan masalah yang tepat.

error: --profile <name> is required

Anda menjalankan npx @deepseek-ai/dsh tanpa subcommand dan tanpa profile. Perintah tanpa argumen menjalankan profile, sehingga memerlukan nama. dsh web adalah subcommand yang tidak menerima --profile, karena subcommand tersebut menjalankan profile web yang disertakan untuk Anda.

error: --patch needs a path

--patch diberikan tanpa nilai setelahnya. Flag ini dapat digunakan berulang kali, dan setiap penggunaannya memerlukan satu path file.

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

Pilih salah satu. --dump-default-config mencetak layer bundle yang disertakan dan tidak menerima --patch. --dump-config mencetak konfigurasi gabungan untuk suatu profile. Keduanya mencetak hasil lalu keluar tanpa menjalankan harness, sehingga merupakan cara yang aman untuk melihat perubahan yang dibuat release candidate baru pada konfigurasi Anda.

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

dsh plugin --profile <name> diberikan tanpa argumen untuk diteruskan. Subcommand tersebut menginisialisasi profile jika belum ada, lalu meneruskan sisa command line ke pnpm. Karena itu, subcommand tersebut memerlukan argumen seperti add @scope/dsh-plugin-example.

FAQ

Versi Node.js mana yang diperlukan DeepSeek Harness?

Repositori mendeklarasikan ^22.19.0 || >=24.0.0 di package.json pada root-nya, yang dibaca pada 18 August 2026 pada versi 0.1.0-rc.7. Jadi, gunakan Node 22.19.0 atau yang lebih baru pada lini 22, atau Node 24 dan versi yang lebih baru. Node 20 tidak akan berfungsi. Paket npm yang diterbitkan tidak memiliki field engines sendiri, sehingga npm tidak pernah memberikan peringatan dan tidak pernah memblokir instalasi. Kegagalan baru terlihat saat runtime. Periksa node -v terlebih dahulu. Node 24 tetap merupakan pilihan yang lebih baik karena menyertakan npm 11, yang memperbaiki penggunaan ulang versi oleh npx.

Bagaimana cara memaksa npx menggunakan dsh terbaru, bukan versi yang tersimpan di cache?

Pada npm 11.2.0 dan versi yang lebih baru, npx @deepseek-ai/dsh sudah memeriksa ulang registry untuk nama paket tanpa versi pada setiap eksekusi. Pada npm 10, yang disertakan oleh setiap rilis Node 22, perilaku ini tidak berlaku. Hapus cache npx dengan npm cache npx rm --force pada npm 11, atau hapus foldernya dengan rm -rf "$(npm config get cache)/_npx" pada npm 10. Kemudian, konfirmasikan dengan npx @deepseek-ai/dsh --version. Perhatikan bahwa npm cache clean --force menghapus direktori yang berbeda dan tidak akan memperbaiki masalah ini.

Mengapa instalasi @deepseek-ai/dsh@^0.1.0 gagal?

npm mengembalikan kode error ETARGET dengan baris No matching version found for @deepseek-ai/dsh@^0.1.0.. Setiap build yang diterbitkan merupakan prerelease seperti 0.1.0-rc.7, dan rentang semver tidak cocok dengan versi prerelease kecuali rentang tersebut juga mencantumkan versi prerelease. Instal versi exact, termasuk suffix -rc.N. Jalankan npm view @deepseek-ai/dsh versions --json untuk melihat versi yang tersedia karena urutannya memiliki celah ketika release candidate tidak pernah diterbitkan.

Sebaiknya saya menginstal dsh secara global atau menjalankannya melalui npx?

npx sesuai untuk percobaan awal karena tidak ada yang disimpan secara permanen selain direktori cache. Instalasi global dengan versi yang dipatok, seperti npm install -g @deepseek-ai/dsh@0.1.0-rc.7, sesuai untuk sesuatu yang harus terus berfungsi karena versinya hanya berubah ketika Anda mengubahnya. Jika perintah dsh tidak ditemukan setelah instalasi global, direktori global bin npm tidak ada di PATH Anda. npm prefix -g menampilkan root tempat direktori tersebut berada.

Apakah DeepSeek Harness cukup stabil untuk dijadikan dasar pengembangan?

Belum, menurut deskripsinya sendiri. README menyatakan bahwa proyek ini masih dalam developer preview, mengalami pengembangan cepat, dan akan mengalami perubahan yang dapat memutus kompatibilitas. Release candidate 0.1.0-rc.6 dan 0.1.0-rc.7 diterbitkan dengan selang empat hari pada August 2026. Pato​k versi exact dan baca --help dari build yang dipatok tersebut, bukan dari panduan mana pun. Beri tanggal pada catatan Anda sendiri agar Anda dapat mengetahui seberapa usang catatan tersebut.