DSH написан под Node.js и на Windows работает нативно: без WSL, без виртуалок, без Docker. Нужен установщик Node.js и одна команда в PowerShell. Ниже всё по шагам, а в конце что делать, если вместо запуска терминал показывает ошибку.
Зайдите на nodejs.org и
скачайте LTS-версию для Windows, это установщик .msi. Мастер
проходите с настройками по умолчанию, только проследите, чтобы пункт
«Add to PATH» остался включённым: без него дальше ничего не заработает. Вместе
с Node.js приходят npm и команда npx, именно она запускает DSH. В
репозитории проекта для разработки заявлен
node ^22.19.0 || >=24.0.0, актуальная LTS подходит.
После установки закройте терминал и откройте заново: окна, открытые до установки, про новый PATH не знают. Проверьте:
node -v
npm -v Обе должны напечатать версию. Если вместо этого «не является командой», смотрите ошибки ниже.
Откройте Терминал Windows или PowerShell (в меню «Пуск» наберите «PowerShell»). Перейдите в папку проекта, она и станет рабочей папкой агента:
cd C:\Users\ИМЯ\Projects\my-project И запустите веб-интерфейс:
При первом запуске npx может спросить разрешение скачать пакет
(Ok to proceed? (y)), ответьте y. Пакет качается не
мгновенно. Потом в терминале появится строка dsh web: с адресом
вида http://127.0.0.1:3080/…, и браузер по умолчанию откроет его сам.
В адресе одноразовый токен, поэтому если браузер не открылся, копируйте всю
строку целиком, а не просто 127.0.0.1:3080.
Окно PowerShell не закрывайте, в нём работает сервер. Остановить его можно через Ctrl+C.
npx @deepseek-ai/dsh web --no-open # не открывать браузер, только напечатать адрес
npx @deepseek-ai/dsh web --port 8080 # если порт 3080 занят
Флаги относятся к веб-приложению и ставятся после web. А вот
открыть сервер всей сети через --host 0.0.0.0 не выйдет: CLI
отказывает намеренно, из соображений безопасности, так что интерфейс доступен
только с этого компьютера.
На Windows агент выполняет команды через PowerShell, а не через bash: в
составе DSH есть инструмент pwsh, аналог инструмента bash
для Windows. Ищет он сначала PowerShell 7 (pwsh) в стандартных
местах установки и в PATH, а если не находит, берёт встроенный Windows
PowerShell 5.1. Работает и так и так, но я бы поставил PowerShell 7: он по умолчанию
использует UTF-8, а у 5.1 кириллица во вводе может превратиться в кракозябры.
Ставится PowerShell 7 с
GitHub
или командой winget install Microsoft.PowerShell.
Команды агент пишет в диалекте PowerShell, с путями вида C:\… и
переменными $env:NAME. Права по умолчанию workspace-write:
писать можно только в рабочую папку и временные каталоги. На Windows за это
отвечает песочница на ACL и ограниченном токене, и авторы сами называют её
частичной (partial). Я бы не полагался на неё как на единственную
защиту.
Node.js не попал в PATH, или терминал открыт раньше, чем вы поставили Node.js. Закройте все окна терминала и откройте заново. Не помогло? Запустите установщик Node.js ещё раз и проверьте, что пункт «Add to PATH» включён.
PowerShell по умолчанию запрещает запуск скриптов, а npx в нём как
раз скрипт, npx.ps1. Разрешите локальные и подписанные скрипты для
своего пользователя. Это стандартная рекомендация для Node.js на Windows, права
администратора не нужны:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Подтвердите Y и повторите запуск. Можно и не трогать политику, а
запускать из cmd.exe, где работает npx.cmd, но тогда и
всё остальное придётся писать в нём.
Другая программа (или второй экземпляр DSH) уже слушает порт. Запустите с
--port 8080 или любым другим свободным.
npx тянет пакет из реестра npm. Если сеть нестабильна или ходит
через прокси, задайте переменные HTTP_PROXY/HTTPS_PROXY:
их читает и npm, и сам DSH, когда ходит к модели. Подробнее в
руководстве по прокси (англ.).
Нет. WSL, подсистема Linux внутри Windows, для DSH не нужна: Node.js и PowerShell есть в самой Windows. Смысл в WSL появляется, только если ваши проекты и так живут в Linux-окружении (Docker, Linux-сборки). Под этот случай в каталоге есть отдельная категория плагинов WSL и Windows: рабочие пространства внутри WSL, открытие Linux-путей в проводнике, диагностика сети между двумя системами.
dsh plugin в PowerShell работает так же.