DeepSeek Harness Desktop: приложение для Windows и Mac, установка и плагины

До конца сентября DeepSeek Harness запускался одной строкой в терминале: npx @deepseek-ai/dsh web; интерфейс открывался в браузере по локальному адресу. Нужны были Node.js, терминал и pnpm для первой установки плагина. 30 сентября вышел анонс десктопной версии: установщик, вход в аккаунт. Сборок две: Windows 64 бита и Mac на Apple, обе предварительные.

Установка на Mac

Образ открывают, значок перетаскивают в папку «Программы». Подпись и нотаризация Apple зашиты в сборочные скрипты, окна про неизвестного разработчика быть не должно. Красная кнопка и ⌘W прячут окно, приложение остаётся в Dock, значка в строке меню нет; полный выход — ⌘Q.

Переменные окружения на Mac

В 0.2.0-rc.2 это поправили: графические приложения macOS не видят переменных из ~/.zshrc и ~/.zprofile, их запускает система, а не терминал, поэтому агент не находил ни инструменты из Homebrew, ни настройки прокси. При старте приложение один раз запускает оболочку входа, забирает окружение и отдаёт агенту, терминалам, плагинам; на это отводится десять секунд, потом по очереди пробуются zsh, bash, sh.

Первый запуск

Путей два: вход в аккаунт DeepSeek или ключ API с platform.deepseek.com. Вход идёт через системный браузер: подтверждение, доступ. Третья кнопка откладывает вопрос до следующего запуска. С 0.1.7-rc.2 после входа показывают короткое знакомство: доступный лимит, цель использования, подробность показа хода агента. Прерванное знакомство можно продолжить позже.

Рабочее окно

Работа начинается с выбора рабочей папки, до этого поле ввода недоступно. Свежая установка создаёт папку по умолчанию и пустую сессию. Слева список сессий по рабочим папкам: их закрепляют, архивируют, фильтруют. Внизу поле ввода, выбор модели, уровня рассуждения и режима агента. Режимов четыре: стандартный, «создатель», PTC, минимальный. «Создатель» — для плагинов, PTC — модель пишет код с вызовом инструментов, минимальный — урезанный набор.

Работа при закрытом окне

Закрытие окна ничего не останавливает: страница и сервер живут, задачи выполняются. При возврате окна на месте та же сессия, черновик, положение прокрутки. Если агент работает, ждёт подтверждения операции или в очереди есть сообщение, приложение спросит и назовёт, что будет прервано.

Права

Рычага два, они независимы: песочница и политика подтверждений. Песочница решает, куда команды агента могут писать, политика — о чём агент обязан спросить. В интерфейсе оба собраны в один переключатель с готовыми наборами. Первый набор разрешает запись только в рабочей папке и временном каталоге, на остальное спрашивает разрешение; второй ничего не ограничивает и не спрашивает, его название — danger-full-access.

Обновления

Проверка идёт при запуске и примерно раз в десять минут, ничего не скачивая и не открывая окон. О новой версии сообщает строка аккаунта в левом нижнем углу. Дальше всё руками: загрузка с процентами, проверка файла, окно с кнопкой установки и перезапуска. При работающих задачах приложение предупреждает и предлагает остановить их и обновиться либо отложить. На Windows программа закроется и откроется сама, запускать её вручную не нужно.

Команда dsh

В 0.2.0-rc.2 в меню появился пункт Manage dsh Command, сразу под проверкой обновлений. Он ставит в систему команду dsh и использует среду приложения: отдельные Node и pnpm не нужны. На Mac создаётся ссылка /usr/local/bin/dsh, система может попросить пароль администратора; на Windows путь добавляется в пользовательский PATH.

Сеть и прокси

Системные настройки прокси dsh не читает, смотрит только на переменные окружения:

export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890

Браузер может ходить через прокси, приложение нет, и наоборот. Переключатель «системный прокси» в Clash пишет настройки ОС и переменных окружения не трогает. Режим TUN работает для всех программ и переменных не требует.

Что уходит разработчику

Десктопная версия по умолчанию отправляет продуктовую аналитику, выключателя в интерфейсе нет. Веб‑версия из npm этих событий не шлёт; состав описан в README пакета аналитики. Поля: идентификатор устройства, идентификатор аккаунта, версии системы и приложения. События: просмотры страниц, отправка сообщений (тип, модель, уровень рассуждения, режим), смена моделей, установка и включение плагинов, имя пакета плагина.

Плагины

Плагин — обычный npm‑пакет: в package.json есть раздел dsh.bundle со ссылкой на файл настроек, а файл описывает, какие модули подключить. Попасть в приложение он может тремя путями, основной — страница Plugins. Вводится имя пакета и источник: официальный реестр npm, зеркало или свой адрес. Дальше плагин ставится, включается и настраивается здесь же, включать и выключать можно на лету.

Схема: три способа поставить плагин в десктопную версию
Схема: три способа поставить плагин в десктопную версию

Популярные плагины

По теме dsh-plugin на GitHub числится 17,6 тысячи репозиториев, но число шумное. Первые строки по звёздам занимают крупные проекты с поддержкой dsh — OpenDesign, Archify, к плагинам в строгом смысле они не относятся. Каталог awesome‑dsh‑plugin набрал 17,8 тысячи звёзд: туда попадают только пакеты с манифестом dsh.bundle, ставящиеся командой dsh plugin add, и каждую заявку сверяют с исходниками. Разделы: 764 про улучшения интерфейса, 288 про сессии и сообщения, 235 про расход и баланс, 213 про модели и провайдеров, 153 темы оформления.

Сторонние десктопы

Свои оболочки появились в августе. DSH Desktop от anywhere‑labs набрал 29,9 тысячи звёзд: сборки Windows x64 и универсальная под macOS, поддержан Intel, есть трей, терминал, обновления и магазин плагинов. Второй проект с тем же названием ведёт dataelement — 11,9 тысячи звёзд.

Итог

Что получилось: агент перестал зависеть от открытой вкладки, получил два независимых рычага прав и команду dsh без внешних Node и pnpm. Чего стоило: обновления ставятся руками, аналитика включена по умолчанию без выключателя, переменные окружения на Mac подхватываются только после перезапуска. Где не сработает: набор danger-full-access снимает ограничения песочницы целиком, а системные настройки прокси dsh не читает.

В полной версии разобраны и другие части: что лежит внутри установщика, чего стоит опасаться и кому ставить инструмент уже сейчас.