DeepSeek Harness
Как подключить к Hubris DeepSeek Harness (dsh), открытый кодинг-агент DeepSeek для терминала и браузера.
DeepSeek Harness — открытый (MIT) агент для разработки от DeepSeek. Запускается командой dsh в терминале или как веб-интерфейс в браузере: правит файлы, выполняет команды, ищет по проекту, ведёт сессии. Модели подключаются плагином, поэтому вместо официального API DeepSeek можно указать любой OpenAI-совместимый адрес, в том числе Hubris, и пользоваться не только моделями DeepSeek, но и Claude, GPT и другими из каталога.
Требования
- macOS / Linux / Windows
- Node.js 22.19 или новее
- Аккаунт на hubris.pw и API-ключ
Установка
npm install -g @deepseek-ai/dsh
dsh --versionБез установки веб-интерфейс запускается так: npx @deepseek-ai/dsh web.
Подключение к Hubris
Настройки лежат в профиле. У dsh готовы профили web (браузер) и headless (один запрос без интерфейса). Каталог профиля создаётся при первом запуске, поэтому сначала запустите нужный (для браузера dsh web --dump-config):
dsh headless --dump-configКоманда только печатает собранную конфигурацию, но заодно создаёт каталог профиля. Затем откройте ~/.dsh/profiles/headless/cordis.patch.yml (для браузера ~/.dsh/profiles/web/cordis.patch.yml; на Windows ~ означает C:\Users\<имя>) и замените содержимое:
- id: agent-default-model
config:
provider: hubris
model: deepseek/deepseek-v4.1-flash-1017
- id: llm-pi-ai
config:
providers:
hubris:
displayName: Hubris
apiKeyEnv: HUBRIS_API_KEY
api: openai-completions
baseURL: https://api.hubris.pw/v1
defaultContextWindow: 1048576
defaultMaxTokens: 32768
models:
- id: deepseek/deepseek-v4.1-flash-1017
name: DeepSeek V4.1 Flash
contextWindow: 1048576
- id: deepseek/deepseek-v4-pro-0813
name: DeepSeek V4 Pro
contextWindow: 1048576
- id: anthropic/claude-haiku-5.5
name: Claude Haiku 5.5
contextWindow: 1000000
- id: openai/gpt-5.5
name: GPT-5.5
contextWindow: 1050000Список models заменяет каталог целиком: из Hubris в выборе модели будут только перечисленные. Идентификатор берите из каталога символ в символ, а contextWindow — из карточки модели.
Ключ в файл не пишется: apiKeyEnv — это имя переменной, из которой dsh его прочитает. Задайте её в той же оболочке, откуда запускаете агента:
export HUBRIS_API_KEY="sk-gw-..."В PowerShell: $env:HUBRIS_API_KEY = "sk-gw-...".
Для веб-интерфейса есть и второй способ: сохранить ключ на странице Settings → Models, dsh запишет его в файл ~/.dsh/.credentials.yaml. Файл можно заполнить и руками:
version: 1
refs:
HUBRIS_API_KEY: sk-gw-...На macOS и Linux dsh не запустится, если файл доступен другим пользователям; созданный руками закройте командой chmod 600 ~/.dsh/.credentials.yaml. Ключ из файла главнее переменной окружения.
Запуск
Одна задача без интерфейса, результат печатается в терминал:
cd /path/to/your/project
dsh headless "Найди, где в проекте читается конфиг, и кратко опиши"Веб-интерфейс на своём компьютере:
dsh webАгент работает в папке, из которой вы его запустили.
Рекомендуемые модели
| ID | Когда подходит |
|---|---|
deepseek/deepseek-v4.1-flash-1017 | быстрая и недорогая работа, правки по месту |
deepseek/deepseek-v4-pro-0813 | сложные задачи, большие изменения |
anthropic/claude-haiku-5.5 | быстрая модель Anthropic |
openai/gpt-5.5 | универсальный выбор |
Для самых сложных задач возьмите Claude Sonnet из каталога. Идентификатор нужно добавить в models, как в примере выше.
Что видно в кабинете
Запросы dsh попадают в логи с приложением deepseek-harness. У моделей с кэшем виден и объём, прочитанный из кэша. Заведите для dsh отдельный ключ, чтобы его расход считался отдельно.
Решение проблем
MISSING_CREDENTIAL
- Переменная из
apiKeyEnv(в примереHUBRIS_API_KEY) не задана в оболочке, из которой запущенdsh. Задайте её и запустите заново: переменные читаются при старте.
AUTH: 401 и «Неверный API-ключ»
- Ключ должен начинаться с
sk-gw-. В веб-интерфейсе проверьте, что в~/.dsh/.credentials.yamlнет устаревшего значения: оно главнее переменной окружения.
UNKNOWN_MODEL
- Модель не добавлена в
modelsпрофиля или идентификатор не совпадает с каталогом.
uses the pre-release flat layout при запуске веб-интерфейса
- В
~/.dsh/.credentials.yamlнет строкиversion: 1, а самdshперевести файл не смог. Приведите его к виду из примера выше:version: 1, ключи внутриrefs.
Что дальше
- Каталог моделей — идентификаторы и размер контекста.
- Управление API-ключами — отдельный ключ под
dsh. - Расходы — детализация сессий.
- Qwen Code и OpenCode — другие терминальные агенты.
Обновлено: