> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness (dsh) + RuAPI: DeepSeek, Claude и GPT в одном агенте

> Как подключить DeepSeek Harness (dsh) к RuAPI: пользовательская модель API, deepseek-flash, Claude и GPT по одному ключу, отключение размышлений, частые ошибки.

[DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (команда `dsh`) — открытый AI-агент от DeepSeek с веб-интерфейсом (лицензия MIT). Он сам пишет и читает файлы, выполняет команды в терминале и доводит задачу до конца — примерно как Claude Code, только в браузере. Интерфейс есть на русском.

Через RuAPI в dsh работают `deepseek-flash`, Claude, GPT и другие модели по одному ключу, а оплатить можно криптовалютой (USDT), без зарубежной карты. Коротко о том, зачем это нужно, — на странице [www.ruapi.ai/deepseek-harness-v-rossii](https://www.ruapi.ai/deepseek-harness-v-rossii?utm_source=docs\&utm_campaign=ru-deepseek-harness).

> [!NOTE]
>
> Встроенная в dsh карточка **DeepSeek** к RuAPI не подходит: она ходит в собственный интерфейс DeepSeek и использует загрузку файлов (`/v1/files`), которой у RuAPI нет. Подключайте RuAPI через **«Пользовательская модель API»**, как описано ниже.

> [!WARNING]
>
> dsh сам выполняет команды, которые предлагает модель, и меняет файлы. Запускайте его в **отдельной пустой папке** (или на отдельном сервере/виртуальной машине), а не в папке с важными данными. dsh пока в стадии «developer preview», интерфейс может меняться.

## Что понадобится

**1. Ключ RuAPI**

[Консоль → API-ключи](https://www.ruapi.ai/console/token?utm_source=docs\&utm_campaign=ru-deepseek-harness) → создайте ключ `sk-...`. Сразу после регистрации доступны пробные модели `deepseek-flash`, `claude-haiku-5-5` и `gpt-6-luna`.

**2. Node.js 24.9 или новее**

Проверьте версию:

```bash theme={null}
node -v
```

Нужна `v24.9.0` или выше. Если версия ниже или терминал пишет `command not found` / «не распознано как имя командлета» / «не является внутренней или внешней командой», установите Node.js по инструкции [ниже](#установка-node-js).

**3. Пустая папка для работы**

Например, `dsh-test`. В ней dsh будет создавать и менять файлы.

## Установка Node.js

Нужна версия 24.9 или новее. Мы проверяли на Node.js 24; сейчас на [странице загрузки nodejs.org](https://nodejs.org/en/download) пометку **LTS** носит версия 26 — по требованиям dsh она тоже подходит, но отдельно мы её не проверяли. Берите версию с пометкой **LTS**. Вместе с Node.js ставятся `npm` и `npx`, отдельно их устанавливать не нужно.

> [tab] Windows
>
> 1. Скачайте установщик **Windows Installer (.msi)** со [страницы загрузки nodejs.org](https://nodejs.org/en/download) (для большинства компьютеров — x64).
> 2. Запустите его и нажимайте **Next**; настройки по умолчанию менять не нужно.
> 3. **Закройте и заново откройте** терминал (PowerShell или «Командную строку»), иначе он не увидит Node.js.
>
> То же самое одной командой в PowerShell (если на компьютере есть `winget`):
>
> ```powershell theme={null}
> winget install OpenJS.NodeJS.LTS
> ```
>
> После установки тоже закройте и заново откройте терминал. Если winget спросит про соглашение, ответьте `Y`.
>
> > [!WARNING]
> >
> > Если PowerShell пишет «Невозможно загрузить файл …\npx.ps1, так как выполнение сценариев отключено в этой системе», вместо `npx` пишите `npx.cmd`: для проверки — `npx.cmd -v`, для запуска — `npx.cmd @deepseek-ai/dsh web`. Или работайте в «Командной строке» (cmd).

> [tab] macOS
>
> 1. Скачайте **macOS Installer (.pkg)** со [страницы загрузки nodejs.org](https://nodejs.org/en/download) — он подходит и для Mac на Apple Silicon, и для Mac на Intel.
> 2. Откройте файл и пройдите установку.
> 3. Откройте новое окно «Терминала».
>
> Если у вас есть Homebrew:
>
> ```bash theme={null}
> brew install node
> ```

> [tab] Linux (Ubuntu / Debian)
>
> Пакет `nodejs` из стандартного репозитория часто старее 24.9 (например, 22-й версии). Если такой уже стоит, удалите его и поставьте Node.js 24 из репозитория NodeSource:
>
> ```bash theme={null}
> sudo apt remove -y nodejs && sudo apt autoremove -y
> sudo apt update && sudo apt install -y curl
> curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
> sudo apt install -y nodejs
> ```
>
> Если вы работаете под `root`, уберите `sudo` (и `-E`). Так мы ставили Node.js на сервер с Ubuntu для проверки этой инструкции.

Проверьте, что всё установилось:

```bash theme={null}
node -v
npx -v
```

`node -v` должна показать `v24.9.0` или выше, а `npx -v` — просто номер версии (например, `11.19.1`): значит, npx на месте.

> [!TIP]
>
> Если [nodejs.org](https://nodejs.org/) открывается медленно или загрузка обрывается, можно попробовать скачать тот же установщик с зеркала [npmmirror.com/mirrors/node](https://npmmirror.com/mirrors/node/): откройте папку нужной версии (например, `v24.22.2/`) и выберите файл `node-v…-x64.msi` для Windows или `node-v….pkg` для macOS. Это копия файлов с nodejs.org.

## Шаг 1. Запуск

В терминале создайте пустую папку, перейдите в неё и запустите dsh:

```bash theme={null}
mkdir dsh-test
cd dsh-test
npx @deepseek-ai/dsh web
```

При первом запуске npm спросит, установить ли пакет, — ответьте `y`. Предупреждение `npm warn deprecated node-domexception` можно не читать, оно не мешает.

dsh откроет браузер по адресу `http://127.0.0.1:3080`.

> [!WARNING]
>
> Если вы открываете страницу вручную, копируйте из терминала **всю строку целиком**, вместе с `?token=...`:
>
> ```
> dsh web: http://127.0.0.1:3080/?token=...
> ```
>
> Без токена страница покажет `dsh web authentication required`. Токен — это пароль к вашему dsh: не публикуйте его на скриншотах. При каждом перезапуске dsh токен меняется.

> [accordion] dsh на удалённом сервере (без графического интерфейса)
>
> Подключитесь к серверу сразу с пробросом порта (вместо `user@server` — ваш логин и адрес сервера):
>
> ```bash theme={null}
> ssh -L 3080:127.0.0.1:3080 user@server
> ```
>
> В этом же окне запустите dsh без открытия браузера:
>
> ```bash theme={null}
> mkdir -p ~/dsh-test && cd ~/dsh-test && npx @deepseek-ai/dsh web --no-open
> ```
>
> Окно держите открытым, а в браузере на своём компьютере откройте строку с токеном, которую напечатал dsh. Лучше запускать dsh не под `root`, а под обычным пользователем: так у агента меньше прав на сервере.

> [!TIP]
>
> Если `npx` долго не может скачать пакет, попробуйте другое зеркало npm, например:
>
> ```bash theme={null}
> npm config set registry https://registry.npmmirror.com
> ```
>
> Вернуть стандартный реестр: `npm config set registry https://registry.npmjs.org`.

## Шаг 2. Первое открытие

1. Появится окно с пояснением о предварительной версии — закройте его кнопкой внизу окна.
2. Над полем ввода нажмите на выбор папки (рабочей области) и выберите вашу папку (например, `dsh-test`) → **Открыть**. Пока папка не выбрана, вверху будет сообщение, что не удалось создать рабочую область по умолчанию.
3. Язык интерфейса dsh берёт из браузера. Если меню на английском: **More** (внизу слева) → **Settings** → **General** → **Language** → **Русский** (по-русски этот путь — **Ещё** → **Настройки** → **Общие** → **Язык**).

![Настройки dsh: выбор языка интерфейса, Русский](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/language-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=e11b8a0a0049c432a1c3b6548f19f786)

## Шаг 3. Подключите RuAPI

**Ещё** → **Настройки** → **Модели** → **Добавить поставщика моделей** → вкладка **Пользовательская модель API**.

| Поле | Что вписать |
| - | - |
| Идентификатор поставщика | `ruapi` (маленькими буквами; потом не меняется) |
| Отображаемое имя | `RuAPI` |
| Базовый URL | `https://www.ruapi.ai/v1` |
| Протокол API | **Завершения чата OpenAI** (выбран по умолчанию) |
| Ключ API | ваш ключ `sk-...` |

![dsh: форма «Пользовательская модель API» с адресом https://www.ruapi.ai/v1](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/add-provider-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=abd13464e2092f127712efc0d0d79625)

Нажмите **Получить доступные модели**. Откроется список всех моделей RuAPI — сначала нажмите **Отменить выбор всех**, затем через поиск отметьте нужные. Для начала хватит трёх: `deepseek-flash`, `claude-haiku-5-5` и `gpt-6-luna`.

![dsh: окно «Выберите модели» со списком моделей RuAPI](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/fetch-models-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=6fcdc99ac034001ff77fa8ca831f0fd6)

Нажмите **Обновить список**, затем **Создать поставщика**. В списке поставщиков у RuAPI должна загореться зелёная точка.

![dsh: заполненный поставщик RuAPI с тремя моделями](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/provider-config-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=94480af40d205f132fe214209afbae90)

Названия всех моделей — на [странице цен](https://www.ruapi.ai/pricing?utm_source=docs\&utm_campaign=ru-deepseek-harness). Добавить модель позже можно там же: **Модели** → **Редактировать** у RuAPI → **Индивидуальные настройки** → **Получить доступные модели**.

## Шаг 4. Первая задача

1. **Новая сессия** (вверху слева).
2. Внизу справа в поле ввода нажмите **Выберите модель** и выберите, например, `deepseek-flash`.

![dsh: меню выбора модели, модели RuAPI](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/model-picker-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=c0878fcc4eecfbb9686e5f513a8a41a5)

3. Отправьте задачу, например:

```
Создай в текущей папке файл hello.txt с текстом «Привет», затем покажи список файлов в папке.
```

dsh создаст файл, выполнит команду и прочитает результат. В нашей проверке `deepseek-flash` справился за 9 секунд, `claude-haiku-5-5` — за 6, `gpt-6-luna` — за 14.

![dsh: deepseek-flash через RuAPI создал hello.txt и показал список файлов](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/task-done-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=ab97888181b55820731c62c781bef1cd)

> [!TIP]
>
> Чтобы сменить модель в середине работы, лучше открыть **новую сессию**: так модель начнёт с чистого контекста, а не будет продолжать чужую историю.

## Уровни размышлений для deepseek-flash

`deepseek-flash` по умолчанию «думает» перед ответом. Чтобы переключать уровни прямо в чате:

1. **Настройки** → **Модели** → **Редактировать** у RuAPI → **Индивидуальные настройки**.
2. Нажмите стрелку справа от `deepseek-flash` → включите **Уровни рассуждения** (off / low / medium / high) → **Применить**.

![dsh: настройка уровней рассуждения для deepseek-flash](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/reasoning-levels-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=367fc645b0df4284a77a4d96e6249cbe)

Теперь меню модели внизу справа станет двухуровневым: **Модель** — выбор модели, **Усилие** — уровень размышлений.

![dsh: меню «Усилие» с уровнями Off, Low, Medium, High](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/effort-menu-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=462f3d3760eb5fdf8ddfe801406b96df)

> [!WARNING]
>
> **Уровень Off сам по себе размышления не отключает.** dsh при Off просто ничего не отправляет, а DeepSeek без явного запрета продолжает думать. Нужно добавить одну настройку в файл конфигурации — в форме её нет.

Откройте файл `~/.dsh/profiles/web/cordis.patch.yml` (в Windows — `%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml`) и под строкой `name: deepseek-flash` добавьте две строки `compat`:

```yaml theme={null}
          - id: deepseek-flash
            name: deepseek-flash
            compat:
              thinkingFormat: deepseek
            reasoningEfforts:
```

Отступы — пробелами, ровно как у соседних строк. Сохраните файл, остановите dsh (`Ctrl+C`) и в том же окне снова выполните `npx @deepseek-ai/dsh web` (если открыли новый терминал — сначала `cd dsh-test`); токен в адресе после перезапуска будет новый.

В нашей проверке после этого Off ответил за 3 секунды без размышлений (до правки — 9 секунд, из них 3 на размышления), High — за 6 секунд.

> [!TIP]
>
> Проще всего открыть файл кнопкой **Открыть файл конфигурации** вверху справа в окне «Настройки» — она работает на том компьютере, где запущен dsh. В Windows можно также нажать `Win+R`, вставить `%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml` и выбрать «Блокнот». На сервере: `nano ~/.dsh/profiles/web/cordis.patch.yml` (сохранить — `Ctrl+O` и `Enter`, выйти — `Ctrl+X`).

## Claude через родной формат Anthropic (по желанию)

Модели Claude работают и через поставщика `ruapi` выше. Если вы много работаете с Claude, можно добавить второго поставщика с родным протоколом Anthropic — кэш промптов начнёт срабатывать на одну реплику раньше.

**Добавить поставщика моделей** → **Пользовательская модель API**:

| Поле | Что вписать |
| - | - |
| Идентификатор поставщика | `ruapi-claude` |
| Отображаемое имя | `RuAPI Claude` |
| Базовый URL | `https://www.ruapi.ai` (**без** `/v1`) |
| Протокол API | **Антропные сообщения** (так в русском интерфейсе называется Anthropic Messages) |
| Ключ API | тот же ключ `sk-...` |

**Получить доступные модели** → отметьте нужные Claude (например, `claude-haiku-5-5`) → **Обновить список** → **Создать поставщика**. В меню модели эти модели будут в группе **RuAPI Claude**.

![dsh: поставщик RuAPI Claude с протоколом Anthropic Messages и адресом https://www.ruapi.ai](https://mintcdn.com/no-d0cfaf14/WrUTbT3Z7Mkwzwdf/images/dsh/anthropic-ru.webp?fit=max\&auto=format\&n=WrUTbT3Z7Mkwzwdf\&q=85\&s=cfcdbf8c6a6a7993d9eeb15210a276c4)

Что показала проверка (три коротких вопроса подряд в одной сессии, `claude-haiku-5-5`):

| Реплика | Кэш через `ruapi` (формат OpenAI) | Кэш через `ruapi-claude` (формат Anthropic) |
| - | - | - |
| 1-я | 0% | 0% |
| 2-я | 0% | 100% |
| 3-я | 100% | 100% |

Разница — только во второй реплике каждой сессии, поэтому для большинства хватает одного поставщика `ruapi`.

## Расходы

* На каждый шаг dsh отправляет модели свой системный промпт, описание инструментов и историю — в нашей проверке это 26–36 тыс. токенов входа за шаг.
* Большая часть входа обычно берётся из кэша (в нашей проверке — 70–97%; у Claude через формат OpenAI кэш включается только с третьей реплики, см. таблицу выше), а кэш стоит в разы дешевле. Подробнее — в [статье о кэшировании промптов](https://docs.ruapi.ai/ru/prompt-caching.md).
* Самая экономная модель для dsh — `deepseek-flash`. Расход по каждому запросу видно в консоли RuAPI → **Журнал запросов**.

## Частые проблемы

> [accordion] dsh web authentication required
>
> Страница открыта без токена. Скопируйте из терминала всю строку `http://127.0.0.1:3080/?token=...`.

> [accordion] «Не удалось создать рабочую область по умолчанию»
>
> Выберите папку вручную: выбор папки над полем ввода → ваша папка → **Открыть**.

> [accordion] npx пишет про несовместимую версию Node.js
>
> Нужен Node.js 24.9 или новее. Проверьте `node -v` и обновите Node.js.

> [accordion] «Получить доступные модели» возвращает 401
>
> Неверный или удалённый ключ. Проверьте ключ в консоли RuAPI и вставьте его заново: **Модели** → **Редактировать** → поле **Ключ API**.

> [accordion] В меню моделей пусто
>
> У поставщика не отмечена ни одна модель. **Редактировать** → **Индивидуальные настройки** → **Получить доступные модели** → отметьте модели → **Обновить список** → **Применить**.

> [accordion] deepseek-flash думает даже на уровне Off
>
> Добавьте `compat: thinkingFormat: deepseek` в файл конфигурации и перезапустите dsh — см. раздел «Уровни размышлений для deepseek-flash» выше.

> [accordion] «Начните с пробной модели…» при выборе другой модели
>
> До первого пополнения работают только пробные модели (`deepseek-flash`, `claude-haiku-5-5`, `gpt-6-luna`). Чтобы открыть все модели, [пополните баланс](https://www.ruapi.ai/console/topup?utm_source=docs\&utm_campaign=ru-deepseek-harness) — можно USDT, без зарубежной карты.

## Безопасность

* Ключ RuAPI dsh хранит в папке `~/.dsh` на вашем компьютере. Не отправляйте эту папку другим людям.
* Для работы с dsh удобно завести отдельный ключ — его легко удалить в консоли, если что-то пойдёт не так.
* dsh выполняет команды от имени вашего пользователя. Не запускайте его в папках с важными данными и не давайте ему задачи, которые вы не готовы проверить.

## Что дальше

* [Claude Code на DeepSeek](https://docs.ruapi.ai/ru/integrations/claude-code-deepseek.md) — тот же `deepseek-flash` в Claude Code.
* [Hermes Agent](https://docs.ruapi.ai/ru/integrations/hermes.md) — ещё один агент с поддержкой RuAPI.
* [Коды ошибок API](https://docs.ruapi.ai/ru/errors.md) — если запрос вернул ошибку.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.