Можно ли напрямую управлять DeepSeek Harness с телефона в 2026 году?

Вы видите на телефоне уведомление о завершённой задаче, но не понимаете, действительно ли мобильное приложение подключено к той же сессии DeepSeek Harness.

Быстрое решение: мобильные companion-приложения уже появились в сообществе, однако на 19 августа 2026 года это нельзя считать официальной мобильной возможностью. Разрешайте только изолированный просмотр и низкорисковые действия; важные репозитории и публичный доступ оставляйте под контролем защищённого рабочего Web UI.

01 Кому нужен этот разбор

Если вы хотите после ухода от компьютера проверить прогресс DeepSeek Harness, здесь есть критерии безопасного пилота.

Если вы собираетесь нажимать approvals для Agent с телефона, вам нужно оценить не удобство интерфейса, а реальный радиус действия кнопки.

Если вы отвечаете за платформу, главная задача — отделить функции конкретного community-проекта от возможностей официального Harness. Площадка удалённого Mac не заменяет проверку мобильного клиента, его прав и сетевой модели. Общие требования к размещению тестовой среды нужно сопоставлять отдельно, но они не подтверждают безопасность конкретного companion-приложения.

Последнее обновление: 19 августа 2026 года. Данные сверены с официальными материалами DeepSeek Harness, описанием Web UI, сведениями о релизной ветке rc.7 и доступными README мобильных community-проектов. Состав функций и совместимость таких проектов могут измениться после следующего релиза.

02 Фактическая граница мобильной поддержки

Официальный репозиторий DeepSeek Harness показывает основной путь через CLI и Web UI. В документации Web UI описываются разговоры, рабочие пространства, сессии, траектории выполнения и отображение вызовов инструментов. Отдельный нативный вход для iOS или Android в официальной точке запуска не заявлен. Для проверки API-авторизации и схемы ключей используйте официальную документацию DeepSeek API.

Одновременно в сообществе уже появились проекты, которые называют себя мобильными companion-приложениями. Например, DSH Mobile заявляет Android-клиент на Kotlin и Jetpack Compose, а Grix указывает поддержку iOS, Android, настольных систем и Web. Оба проекта прямо относятся к community-экосистеме, а не к официальному мобильному продукту DeepSeek Harness. (описание community-проекта DSH Mobile)

Это различие определяет весь порядок проверки:

  • функция community-приложения не является гарантией функции официального Harness;
  • заявление о совместимости с rc.7 не доказывает совместимость с более поздней версией;
  • число звёзд, положительных реакций или скачиваний не заменяет аудит разрешений;
  • отображение данных в мобильном интерфейсе не доказывает корректную причинную связь с выполняемой задачей.

Мобильное приложение может получать только снимок состояния. А может отправлять команды, менять prompt, переключать модель и подтверждать инструментальные действия. Для безопасности это три разных класса продукта.

Внутреннее устройство Web UI также имеет значение. В техническом описании интерфейс связывается с host-side исполнением через RPC-мост и поток событий. Поэтому companion-клиент должен корректно обрабатывать не только внешний экран, но и идентификаторы сессий, порядок событий и подтверждения операций. (техническое описание Web UI и RPC-моста)

Официальный API отдельно документирует function calling. Это важно для мобильного сценария: запрос, который выглядит как обычное сообщение, может привести к вызову инструмента и последующему изменению состояния на стороне Agent. (руководство DeepSeek по function calling)

03 Четыре сценария и разный уровень риска

Просмотр задач и уведомлений

Для первого испытания выбирайте только read-only сценарий. Подойдёт тестовая рабочая область без секретов, приватных ключей и важных веток.

Даже режим «только посмотреть» может раскрывать больше, чем ожидается:

  • имя репозитория или рабочей директории;
  • содержание prompt и последующих инструкций;
  • вывод shell-команд;
  • фрагменты файлов;
  • карточки вопросов и approvals;
  • ошибки подключения к внешним сервисам;
  • результаты поиска и содержимое инструментов.

Поэтому вам нужно проверить не надпись «notifications» в описании приложения, а фактический диапазон чтения. Получает ли клиент только статус «running / completed»? Видит ли последние сообщения? Может ли загрузить всю историю? Сохраняются ли данные локально на телефоне? Отправляются ли они через промежуточный сервер?

Даже когда мобильный экран ничего не изменяет, он может раскрывать prompt, результаты инструментов и названия каталогов. Если companion-приложение использует собственный relay, вы должны отдельно определить, проходит ли через него история сессии или только технические события.

Продолжение сессии

Второй уровень — DeepSeek Harness Mobile или аналогичный community-клиент, который позволяет отправить дополнительную инструкцию.

Здесь уже меняется сама задача. Новое сообщение может:

  • добавить ограничение к текущему плану;
  • изменить целевую директорию;
  • попросить повторить неудачный шаг;
  • остановить текущую ветку;
  • переключить модель или preset;
  • инициировать новый вызов инструмента.

Проверьте пять условий до подключения к настоящему проекту:

  1. Откройте одну и ту же сессию на рабочем Web UI и телефоне.
  2. Отправьте короткое тестовое сообщение только с одного устройства.
  3. Сравните идентификатор, порядок и timestamp сообщения.
  4. Разорвите сеть телефона и восстановите её вручную.
  5. Убедитесь, что после reconnect не появилась повторная отправка.

Повтор сообщения опаснее, чем обычная ошибка интерфейса. Если prompt вызывает запись файла, установку зависимости или изменение конфигурации, повторная доставка может привести к двум попыткам вместо одной.

Не считайте синхронизацию экрана доказательством синхронизации задачи. Экран может обновиться, пока host ещё обрабатывает старую очередь. Мобильное приложение может показать кэшированное состояние. Восстановление WebSocket может повторно запросить событие, которое клиент ошибочно примет за новую операцию.

Важное правило: если вы не можете объяснить, какой session ID, event ID и approval ID обрабатывает кнопка на телефоне, не используйте её для изменяющего действия.

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

Approvals и карточки вопросов

Самый чувствительный сценарий — обработка approval с телефона. Внешне это может быть одна кнопка «Разрешить», но за ней способен находиться вызов записи файла, shell-команда, установка пакета, изменение git-состояния или обращение к внешнему API.

На экране перед подтверждением должны быть видны:

  • точное описание операции;
  • рабочая директория;
  • команда или изменяемый файл;
  • аргументы;
  • источник запроса;
  • текущая сессия;
  • срок действия approval;
  • возможность отказа без побочного эффекта.

Проверьте три отрицательных сценария:

  • отказ не должен переводить задачу в состояние «разрешено»;
  • timeout не должен автоматически считаться согласием;
  • повторный тап или сетевой retry не должен создавать два approval-события.

В Web UI Harness элементы tool view и approval относятся к рабочему потоку выполнения, а не к обычному чату. Поэтому мобильная карта, которая показывает только краткий текст вопроса, может скрывать необходимый контекст. (описание компонентов tool view и approval)

Для высокорисковых операций используйте полный рабочий экран. Там проще проверить diff, путь, последовательность событий и фактический результат. Телефон подходит для остановки очевидно ошибочной задачи или отклонения запроса, но не для слепого подтверждения длинной команды.

Требование показывать контекст связано не только с удобством. OWASP рекомендует повторно подтверждать личность пользователя и усиливать проверку перед чувствительными действиями. Для мобильного approval это означает, что одного долгоживущего токена и одной кнопки недостаточно. (рекомендации OWASP по аутентификации и чувствительным операциям)

04 Доступ из сети

Сетевой диапазон нужно разделить на три уровня.

Режим подключения Что вы фактически открываете Решение для пилота
Loopback Сервис доступен только на том же устройстве Подходит для локальной проверки, но телефон напрямую его не увидит
Доверенная локальная сеть Сервис виден другим устройствам в одной сети Допустимо для тестовой рабочей области при наличии аутентификации
Публичный интернет Endpoint доступен из внешних сетей Не использовать без подтверждённых identity, TLS, аудита и отзыва доступа

Официальный Web UI обычно запускается как браузерный интерфейс рядом с host-средой, а не как готовый публичный multi-user control plane. Community-проект может предлагать изменить bind-адрес, добавить патч или использовать собственный relay. Это уже отдельная архитектура. Её нельзя описывать как официальный режим DeepSeek Harness.

Проверяйте:

  • на каком адресе слушает сервис;
  • есть ли bearer-токен или иной механизм входа;
  • шифруется ли трафик;
  • где хранятся refresh-токены;
  • можно ли отозвать один телефон без остановки всей сессии;
  • ведётся ли журнал входов и approvals;
  • различаются ли права просмотра и управления.

Для веб-сессии недостаточно зашифровать только страницу входа. OWASP рекомендует защищать TLS-соединением весь сеанс и не передавать идентификатор сессии по незашифрованному каналу. (OWASP о защите управления сессиями)

Не используйте «быстрый» вариант с открытым портом без аутентификации. Это превращает удалённый Agent в доступную извне панель управления рабочей машиной.

Если community-проект просит выставить 0.0.0.0, отключить проверку входа или передать один токен в мобильное приложение, остановите пилот. Такой параметр может быть удобен для локальной отладки, но он не является доказательством безопасной удалённой схемы. Дополнительные рекомендации по TLS и защите транспортного канала опубликованы в руководстве OWASP по Transport Layer Security.

05 Условия выбора для первого запуска

Используйте следующий развилочный алгоритм.

  • Если приложение показывает только статус и уведомления, работает в тестовой сети, а рабочая область не содержит секретов, то выбирайте уровень «только чтение».
  • Если клиент умеет отправлять сообщения, но вы не подтверждаете session ID, защиту от повторов и корректное восстановление после разрыва, то возвращайтесь к браузерному Web UI через контролируемый канал.
  • Если approval-карточка содержит команду, путь, diff и действие отказа, то допустим низкорисковый тест на отдельной директории.
  • Если мобильный клиент скрывает команду, не показывает пользователя или не объясняет источник события, то запрещайте все approvals.
  • Если доступ выходит за пределы локальной сети, но нет подтверждённых TLS, идентификации, аудита и отзыва, то не публикуйте Harness.
  • Если нужно работать нескольким людям, то сначала проектируйте отдельные учётные записи и полномочия, а не передавайте один токен всей команде.
  • Если community-проект тестировался только с rc.7, а ваша версия новее, то считайте совместимость неподтверждённой и запускайте отдельную регрессию.

Сначала разберите границы удалённого Web UI и сетевого доступа в собственной тестовой документации. Только после этого решайте, нужен ли вам мобильный клиент. Такой порядок снижает риск перепутать доступ к интерфейсу с доказанным контролем над состоянием Agent.

06 Пошаговая проверка без выхода на публичный интернет

1. Создайте отдельную рабочую область

Используйте небольшой тестовый репозиторий. Удалите секреты, production-конфигурацию, SSH-ключи и файлы с персональными данными. Запретите инструменты, которые не нужны для проверки мобильного сценария.

2. Зафиксируйте версию Harness

Запишите commit, release или точную ветку. Отдельно укажите версию community-приложения. Если README ссылается на rc.7, не переносите это заявление на другую сборку. Проверяйте README, Release, SECURITY и таблицу совместимости перед каждым обновлением.

3. Начните с loopback или изолированной сети

Сначала убедитесь, что десктопный Web UI работает локально. Затем подключайте телефон через доверенную сеть без проброса порта в интернет. На роутере или firewall проверьте список разрешённых устройств.

4. Проверьте границы чтения

Создайте тестовый prompt с уникальным маркером. Посмотрите, появляется ли он на телефоне. Добавьте отдельный маркер в вывод инструмента. Так вы поймёте, получает ли приложение уведомление, сообщение, tool output или полную историю.

5. Сравните идентификаторы событий

Откройте одну сессию на десктопе и телефоне. Отправьте одно безопасное сообщение. Сравните порядок событий. После краткого отключения сети проверьте, не продублировалось ли сообщение и не изменился ли статус задачи без нового события.

6. Проверьте отказ и timeout

Создайте намеренно безопасный approval в тестовой директории. Нажмите «отказать». Затем повторите тест с истёкшим временем ожидания. Сымитируйте повторное нажатие после задержки сети. В журнале должна появиться однозначная последовательность: запрос, отказ или timeout, отсутствие выполнения.

7. Проверьте отзыв доступа

Удалите токен или отключите устройство. Убедитесь, что мобильный клиент больше не может читать историю и отправлять команды. Если единственный способ отзыва — остановить весь Harness, это слабая модель для командного использования.

8. Только после этого добавляйте низкорисковую запись

Разрешите создание временного файла или изменение тестового README. Не начинайте с git push, удаления, миграции базы или установки системного пакета. После выполнения сравните diff с ожидаемым результатом.

9. Зафиксируйте границы в runbook

Запишите, кто имеет право использовать мобильный доступ, какие сети разрешены, какие инструменты запрещены и где проверяется журнал approvals. Без этого временный эксперимент быстро превращается в неуправляемый постоянный endpoint.

Для фоновых задач отдельно проведите проверку результата и приёмку длительных запусков DeepSeek Harness. Мобильное уведомление говорит, что процесс изменил состояние, но не заменяет проверку артефактов, журнала команд и итогового diff.

07 Командный доступ и удалённый Mac

Когда телефон подключается к одному личному компьютеру, вы контролируете устройство физически. Когда к тому же Harness получают доступ коллеги, появляется уже командная control plane.

Нужно определить:

  • кто может видеть prompt и исходный код;
  • кто может отправлять дополнительные инструкции;
  • кто может одобрять shell и файловые операции;
  • как отделяется просмотр от управления;
  • кто расследует ошибочное approval;
  • как быстро блокируется потерянный телефон;
  • где хранится аудит.

Если вы не можете доказать личность каждого пользователя и его полномочия, не подключайте к мобильному доступу важный Harness-инстанс.

Для постоянной работы лучше разделить вычислительную среду и мобильный экран. Отдельный удалённый Mac позволяет держать Harness в контролируемой среде, а доступ к Web UI — ограничивать по сети, учётным данным и журналам. При необходимости сравните варианты облачной Mac-среды по требованиям к постоянному запуску, физическому доступу и контролю пользователей, но мобильный companion всё равно следует считать дополнительным клиентом, а не заменой модели доступа. Перед выбором площадки отдельно проверьте, соответствуют ли условия удалённой Mac-среды требованиям к длительности сессии, сетевому доступу и контролю пользователей; стоимость и состав услуг лучше сверять по актуальным условиям, а не по заявлению мобильного приложения.

08 Текущий уровень готовности

На 19 августа 2026 года решение выглядит так:

Разрешённый уровень — read-only trial. Просмотр статуса, уведомлений и ограниченной истории допустим в изолированной тестовой среде после проверки фактического диапазона чтения.

Условный уровень — низкорисковое взаимодействие. Можно отправлять короткие уточнения и обрабатывать безопасные approvals, если подтверждены идентификаторы сессий, защита от повторов, отказ, timeout и reconnect.

Отложенный уровень — чувствительные задачи. Production-код, приватные репозитории, внешние API, удаление файлов, публикация изменений и командный доступ лучше оставить в полном Web UI с доказуемыми границами.

Следите за четырьмя сигналами:

  1. официальное появление мобильного входа в README или документации;
  2. опубликованная схема аутентификации и отзывов доступа;
  3. таблица совместимости community-клиентов с версиями Harness;
  4. отдельные тесты на approvals, повторные события и восстановление сессии.

Не превращайте текущую community-функцию в долгосрочное обещание. Сохраните ссылку на эту проверку и повторите её после изменения официального Web API, режима авторизации или релизной ветки.

Текущий подход — отдельный компьютер, локальная сеть и неформализованный мобильный relay — удобен для короткого эксперимента, но у него есть реальные недостатки: трудно контролировать версии, невозможно одинаково быстро отзывать доступ, часто не хватает аудита, а при разрыве сети не всегда очевидно, была ли команда выполнена. Поэтому для временной среды и тестирования удалённый Mac от CALMVPS может дать более предсказуемую основу, а мобильный доступ стоит добавлять поверх неё только после проверки Web UI и прав. Это особенно разумно, если вам нужно не постоянно держать личный компьютер включённым, а быстро проверить сценарий без переноса важного Harness в публичную сеть.

Начните с безопасного Web UI и приёмки фоновых задач. Если после этого мобильный клиент проходит проверки session state, approvals и отзыва доступа, подключайте его только к тестовой среде. CALMVPS можно рассматривать как один из вариантов контролируемого удалённого Mac-окружения, но решение о мобильном доступе принимайте после технической проверки, а не по списку заявленных функций community-приложения.