← Back to home@pavel-logachev

dsh-mobile

Неофициальное Android-приложение для DeepSeek Harness: чаты всех проектов, задачи и ответы агента с телефона. QR-привязка, Wi‑Fi/Tailscale, без облачного сервера. Модели и инструменты остаются на компьютере.

Stars
0
Language
Kotlin
Created
Oct 4, 2026
Updated
Oct 6, 2026

Introduction

DSH Mobile — список чатов и чат с работающим агентом на Android

DSH Mobile

Нативное Android-приложение для DeepSeek Harness: открывайте чаты всех проектов, отправляйте задачи и читайте ответы агента с телефона. Телефон привязывается по QR-коду и подключается к компьютеру через Wi‑Fi или Tailscale. Облачный сервер приложения не нужен: модели, инструменты и подписки остаются на компьютере.

Скачать APK 0.5.0  ·  Установка  ·  Архитектура  ·  Безопасность  ·  CI  ·  Android 8+  ·  MIT  ·  English

Версия 0.5 работает у автора на телефоне с его DSH. Проект неофициальный, разрабатывается независимо от DeepSeek.

Что умеет

  • Список проектов совпадает с боковой панелью DSH, включая порядок. Новые проекты появляются без повторной привязки телефона.
  • Чаты можно искать и фильтровать по проекту. Группы «Сегодня / Вчера / На неделе» помогают найти недавний разговор. Для нового чата выберите проект и пресет, затем отправьте текстовую задачу. Выполнение можно остановить из чата.
  • Ответ агента обновляется в реальном времени. Приложение отображает Markdown: заголовки, списки, таблицы и блоки кода с копированием.
  • В чате видны только ваши сообщения и ответы агента. Служебные события DSH — результаты сабагентов, фоновые задачи, обновления контекста — свёрнуты в строку «Действия агента»; полный текст открывается по нажатию.
  • Пока агент работает, можно написать ещё одно сообщение: оно встанет в очередь DSH и дойдёт до агента на следующем шаге. Кнопка «Стоп» отдельная и просит подтверждения.
  • По желанию можно включить уведомления «Ответ готов» и «Агент ждёт вашего решения». В них только название проекта и чата, без текста ответа. Пока уведомления включены, в шторке висит «DSH Mobile на связи». Сервисы Google не нужны.
  • По переписке можно искать, долгое нажатие на сообщение открывает меню копирования, черновик сохраняется для каждого чата отдельно.
  • При обрыве сети во время отправки приложение сверяет статус задачи с компьютером, чтобы не запустить её повторно.
  • Для привязки сканируйте одноразовый QR-код с экрана компьютера. Камера нужна только на время сканирования; код распознаётся без сети и сервисов Google.
  • Можно выбрать светлую или тёмную тему, русский или английский интерфейс и крупный шрифт.

Список чатов с фильтром по проектам Чат с Markdown и работающим агентом Выбор проекта для нового чата

Настоящие снимки экрана приложения с синтетическими демо-данными: реальных чатов и моделей здесь нет.

Как это устроено

Android-приложение ──HTTPS (Wi‑Fi или Tailscale)──▶ плагин-компаньон внутри DSH ──▶ ваши проекты и агенты
                    └─ или через ваш собственный relay (опционально)

На компьютере в DSH устанавливается небольшой плагин-компаньон. Он даёт привязанным телефонам доступ к ограниченному API через защищённое соединение. Сам веб-интерфейс DSH наружу не публикуется. Телефон проверяет компьютер по закреплённому сертификату из приглашения, а у каждого телефона свой ключ и свои права, которые можно отозвать.

Установка

Пошаговую инструкцию docs/SETUP.md можно передать своему агенту DSH. По ней агент проверит версии, установит плагин и запросит согласие перед каждым важным действием. Основные шаги:

  1. Проверьте требования: Windows, DeepSeek Harness 0.2.0-rc.2 или 0.2.1-alpha.1, Node.js 24, OpenSSL 3, Android 8.0+.
  2. Скачайте из Releases подписанный APK, архив плагина dsh-mobile-host-<версия>.zip и их файлы .sha256. Сверьте контрольные суммы.
  3. Установите плагин: запустите install-host.ps1 из архива и укажите адрес компьютера (IP в домашней сети или имя в Tailscale). Скрипт сначала только готовит конфигурацию, а подключает плагин к DSH отдельным шагом -Activate, без перезапуска DSH.
  4. Разрешите доступ: чтение всех проектов и, если хотите, запуск задач. Правило брандмауэра Windows добавляется только для частной сети и только с вашего согласия.
  5. Установите APK на телефон. Android попросит разрешить установку из этого источника.
  6. Привяжите телефон: на компьютере pair --qr, в приложении «Сканировать QR-код», затем сверьте адрес и отпечаток сертификата и подтвердите.

Для подключения вне дома поставьте Tailscale на компьютер и телефон и укажите при установке имя компьютера в tailnet. Это бесплатно, роутер настраивать не нужно. Если Tailscale не подходит, можно настроить свой relay на VPS: RELAY_DEPLOYMENT.md. Общего публичного relay проект не предоставляет.

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

  • Плагин работает внутри DSH с теми же правами, что и сам DSH на вашем компьютере. Фильтрация по проектам не создаёт песочницу. Агент DSH с телефона может делать всё то же, что и с компьютера. Права на запуск задач давайте только своим доверенным устройствам.
  • Приглашение одноразовое и живёт не дольше 15 минут. Передавайте его только напрямую: QR-кодом с экрана своего компьютера или файлом по доверенному каналу.
  • Ключи телефона хранятся в Android Keystore и не попадают в резервные копии. Ключи компьютера лежат в профиле пользователя Windows с доступом только для владельца.
  • Relay, если вы его используете, пересылает зашифрованный трафик и не видит содержимое чатов. Но он видит IP-адреса, время и объём трафика.

Подробности в SECURITY.md.

Сборка из исходников

cd host;  npm ci; npm run check            # плагин-компаньон, Node 24
cd ..\android
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ../tools/android-build.ps1 -Tasks ':app:assembleDebug', ':app:testDebugUnitTest', ':app:lintDebug'"

Нужны JDK 21, Android SDK platform 36 и build-tools 36.0.0. Сборка релиза, подпись своим ключом и упаковка плагина описаны в BUILD.md и ANDROID_RELEASE.md.

Проверки

ЧастьЧто проверяется
Плагин121 тест: права устройств, отзыв, повторная доставка, гонки при смене проектов. Изолированные прогоны на настоящем DSH обеих поддерживаемых версий
Установщик28 сценариев на синтетическом профиле: подготовка, активация, обновление, откат, удаление, сохранение байтов профиля
Android190 JVM-тестов, lint; регрессионная приёмка и снимки экранов на эмуляторе
РелизРазрешения APK: интернет, камера, внутреннее служебное, а также уведомления и фоновая служба — последние два используются, только если вы включили уведомления. Никакой телеметрии и сервисов Google

Ограничения

  • Компьютер и DSH должны быть включены. Уведомления работают через постоянное фоновое соединение: после перезагрузки телефона или принудительной остановки приложения его нужно открыть, а агрессивная экономия батареи (OnePlus, Xiaomi и др.) может задерживать доставку. Push через UnifiedPush — в планах.
  • Пока не поддерживаются вложения, ответы на вопросы агента и подтверждения действий: их нужно делать на компьютере.
  • Один привязанный компьютер на приложение. В списке до 100 проектов.
  • Поддерживаются только проверенные версии DSH. После обновления DSH плагин откажется запускаться, пока совместимость не проверят заново.

Документация

Установка · Архитектура · Протокол · Безопасность · Интеграция с DSH · Relay · Сборка · Дизайн · Участие

English

DSH Mobile is an unofficial native Android app for DeepSeek Harness, developed independently. It shows chats from every registered DSH project. You can create a chat, send a text task, read live Markdown replies or stop running work. Models, tools, subscriptions and history stay on your computer.

A companion plugin runs inside DSH and gives paired phones access to a limited API over TLS. The phone pins the computer’s certificate. Pairing uses a one-use QR invitation; scanning works offline without Google Play services. You can connect over the same Wi‑Fi, over Tailscale or through your own relay.

Supported DSH versions are 0.2.0-rc.2 and 0.2.1-alpha.1. You can give the setup runbook to your DSH agent. Project filtering does not create a sandbox. Service events are folded into a collapsible "Agent activity" row, and messages sent while the agent works are queued. Optional notifications ("answer ready", "agent needs your decision") use an opt-in foreground connection without Google services. Attachments and approvals from the phone are not supported yet.

Лицензия

MIT © 2026 Pavel Logachev. Сторонние зависимости распространяются под своими лицензиями.