Руководство GrantTap · · 7 мин чтения
Как управлять Claude Code и Codex с iPhone через GrantTap
Практический путь от локальной установки и привязки iPhone до единой Task, решений и проверяемой передачи работы между агентами.

Claude Code и Codex умеют работать с репозиторием, пока вы отошли от стола. Их сессии, режимы разрешений и транскрипты остаются разными. GrantTap добавляет персональный центр управления вокруг поддерживаемой локальной работы: вид Tasks на iPhone, решения, доходящие до компьютера, и ограниченное продолжение. Полезный вопрос не в том, можно ли показать на телефоне переписку. Нужно знать компьютер, Task, запрошенное действие и свидетельство того, что действие закончилось.
Устойчивую цель пользователя GrantTap называет Task. Одна native session провайдера, которая выполняет её, называется Execution; дочерний агент остаётся внутри своего исполнения. Это важно, когда Claude Code заканчивает попытку и Codex начинает следующую. Цель остаётся видимой без притворства, будто между инструментами перенесли приватное состояние модели или скрытые рассуждения. Сейчас наиболее полная локальная интеграция у Claude Code и Codex. У Cursor путь управления уже, а Grok Build наблюдается только там, где его локальный runtime сообщает события. Перед сравнением прочитайте обзор покрытий.
Подготовьте локальный компьютер
Установите поддерживаемый coding-инструмент и соответствующий GrantTap plugin на компьютере с репозиторием. Отдельный runtime granttap-mcp содержит локальный helper, MCP server, provider hooks и adapters. Документированный путь: 'npm install -g granttap-mcp', затем 'granttap setup'. Настройка обнаруживает поддерживаемые локальные инструменты и ставит либо исправляет нужные hooks. Она также сообщает, если для Project Governance нужен отдельно распространяемый Engine. Одна карточка plugin ещё не доказывает, что хук на компьютере действует.
После настройки откройте панель подключения GrantTap в coding app. Она показывает сохранённую привязку, готовность и одноразовый QR, когда требуется добавить устройство. Только что установленному plugin может понадобиться перезапуск coding app. Проверяйте helper и статус провайдера отдельно, не гадая по индикатору relay. Именно desktop остаётся средой исполнения: он хранит checkout и учётные данные провайдера и должен применять поддерживаемые правила. Телефон служит контроллером, а не второй копией agent runtime.

Привяжите iPhone через отдельный маршрут устройств
На iPhone в GrantTap откройте Settings, Connections и Add a device, затем отсканируйте временный QR с компьютера. Подтвердите с обеих сторон, что указан нужный компьютер. Не вставляйте QR в prompt, переписку с поддержкой или issue tracker. Этот код добавляет доверенную управляющую связь; приглашение в Project Mesh открывает доступ к области совместной работы. Смешение двух действий делает права непрозрачными. Инструкция по привязке подробно объясняет разницу.
После сканирования найдите компьютер в Connections и проверьте текущую готовность. Сохранённая связь означает отношение между устройствами, а не одновременную исправность Claude Code, Codex, relay, каждого hook и каждого маршрута approval. Создайте безопасную тестовую Task и попросите локального агента отправить простой progress event. Убедитесь, что iPhone показывает верного провайдера, компьютер, workspace и статус доставки. Если части данных нет, проверяйте именно её. Карточка Task, получившая сообщение, ещё не доказывает успешную команду.
Соберите работу в одном Project Mesh
Project в GrantTap — область координации. Его Mesh связывает нужные репозитории, людей, компьютеры, правила и Tasks. Это помогает понимать работу при смене провайдера. Mesh не объединяет нативные проекты разных инструментов, не выдаёт доступ к репозиторию автоматически и не складывает полные транскрипты в общее пространство. Ограниченные Mesh events включают progress, вопросы, зависимости и claims о пересечении работы. Identity ресурса учитывает репозиторий, поэтому одинаковые относительные имена файлов в разных проектах не превращаются в один файл.
Для первой проверки выберите один репозиторий и одну ясную Task: например, починить падающий unit test в экспериментальной ветке. Начните локально в Claude Code или Codex и проследите работу на телефоне. При появлении нового исполнения убедитесь, относится ли оно к той же Task или это другой запрос человека. Дочерний агент должен оставаться вложенным в execution провайдера. Так экран Now ставит Needs You, текущую работу и недавние итоги выше разрозненных сессий.
Сделайте подтверждение осмысленным
Approval на iPhone имеет значение, только если доходит до компьютера до выполнения чувствительного инструмента. Project Governance в GrantTap позволяет задавать allow, ask или deny для типов возможностей: skills, MCP servers, shell, file writes, deploy и network. Где поддерживается, можно задать отдельное правило для конкретной возможности. Глобальная конфигурация провайдера также может запретить действие, и такой запрет сильнее правила Project. Каждый компьютер сообщает применённую ревизию policy и покрытие; observed-only и unsupported нельзя выдавать за enforced.
Для поддерживаемых маршрутов Task доступны и более простые персональные режимы подтверждения. Ни один режим не превращает ненаблюдаемый native путь провайдера в путь, принудительно контролируемый GrantTap. В тестовом репозитории запросите одно безвредное разрешённое и одно запрещённое действие. Сверьте ответ host и транскрипт провайдера. Карточка Allow на телефоне фиксирует решение; завершившийся вызов инструмента — отдельное свидетельство. Разбор границ approval объясняет такую проверку без доступа к настоящим секретам.

Продолжайте без выдуманного переноса сессии
Task может пережить новую сессию провайдера или смену компьютера. Поддерживаемый handoff переносит ограниченные факты Task и git, решения, блокеры, адрес назначения и receipt принимающей стороны. Он не перевозит скрытые рассуждения, приватное состояние провайдера или незакоммиченные файлы как портативный пакет. Перед передачей проверьте identity репозитория, целевой checkout, ветку, локальные правки и фактическую доступность инструмента у получателя. Одинаковое имя ветки на двух машинах не гарантирует одинаковое дерево.
Если цель недоступна, интерфейс должен показать ошибку маршрута или ожидание. Если провайдер не даёт детерминированный hook для действия, нельзя обещать удалённую блокировку этого действия. Receipt о приёме handoff означает, что следующее execution приняло маршрут, но не доказывает прохождение тестов. Поэтому руководство по сохранению Task рассматривает передачу как цепочку свидетельств. По той же причине общая цель Project не делает политики на разных компьютерах автоматически одинаковыми.
Проверяйте usage и результат
GrantTap получает сведения об использовании из native transcripts провайдеров и локальных замеров операционной системы. Возможность может быть доступна, но не разрешена; разрешённый инструмент может ни разу не запускаться. Для вызова расход ресурсов может остаться неизвестным, если процесс не был измерен. Сообщение об удачном edit request само по себе не доказывает изменение файла. Приложение обязано сохранять эту разницу. Руководство по usage помогает читать числа без превращения каждой видимой строки в денежное обещание.
После первой полной Task проверьте дерево исходников и результат теста на компьютере. Телефон помогает увидеть, где нужно ваше внимание, и продолжить ограниченный разговор, но итоговое техническое evidence находится в runtime и репозитории. Используете оба инструмента — повторите проверку для Claude Code и Codex отдельно. Добавляете второй компьютер — повторите привязку и проверку checkout. Такая привычка быстро выявляет настоящие пробелы интеграции и делает центр управления полезнее набора красивых статусных карточек.
Если результат на телефоне расходится с состоянием компьютера, запишите время, провайдера, идентификатор Task и последнее подтверждённое событие. Сначала проверьте, был ли доставлен запрос, затем получил ли его provider hook и только после этого ищите исход инструмента. Разница между задержкой доставки и ошибкой выполнения подскажет, где исправлять проблему. Не создавайте вторую Task только потому, что первая временно перестала обновляться: сначала выясните, существует ли её прежнее execution и не продолжает ли оно работу локально. Это сохраняет понятную историю решений и уменьшает риск параллельных правок одного файла.
