Claude Code - это один агентный runtime с несколькими интерфейсами, и путать интерфейс с продуктом - первая ошибка. Базовый цикл везде одинаков: модель получает контекст, выбирает инструмент, Claude Code проверяет разрешение, выполняет действие, возвращает результат модели, и цикл продолжается. Но место выполнения, набор доступных tools, способ хранения сессии и доступные интеграции у разных поверхностей отличаются - и именно эти различия определяют модель доверия и то, что вообще возможно.
Терминальный CLI - основа и точка максимального контроля. Именно там доступны все launch-флаги, headless-режим и скрипты, и там же самая прозрачная диагностика. Цена контроля - нужно понимать shell и разрешения. IDE-поверхности, VS Code и JetBrains, добавляют inline-diff, контекст выделения и review плана прямо в редакторе; но часть настроек принадлежит расширению, а часть - общему CLI, и это разделение надо держать в голове.
Desktop-приложение смещает акцент на параллельность и визуальную проверку: несколько panes одновременно, визуальный diff, preview, computer use, локальные и облачные сессии сразу. Доступность отдельных функций там зависит от ОС и аккаунта. Но и Desktop не отменяет общих файлов ~/.claude/ и .claude/ - конфигурация остаётся той же, меняется лишь оболочка, через которую вы с ней работаете.
Две облачные поверхности легко перепутать, и это опасно. Claude Code on the web выполняет задачу в управляемом Anthropic cloud-окружении: подходит для автономной работы без открытого компьютера, через branch и PR, но требует подключённого репозитория и настроенного окружения. Remote Control - принципиально другое: код и команды остаются на вашей локальной машине, а телефон или браузер лишь продолжают уже идущую локальную сессию.
Различие web и Remote Control - это различие моделей доверия, сети и доступа к данным, а не удобства. Web переносит выполнение в облако, со всеми последствиями для того, где живут ваши файлы и credentials. Remote Control ничего в облако не переносит - он даёт удалённое управление тем, что по-прежнему исполняется локально. Смешать эти два понятия - значит неверно оценить, куда уходят ваш код и секреты.
Полезно один раз свести поверхности в таблицу - где выполняется работа, сильная сторона и главное ограничение каждой, - чтобы выбирать осознанно. Ниже такая карта: от терминала до Chrome и computer use. К ней возвращаются, решая, на какой поверхности вести конкретную задачу: там, где нужен полный контроль и диагностика, - CLI; где нужна автономность в изоляции - web; где процесс должен остаться на вашей машине - Remote Control.
| Поверхность | Где выполняется | Сильная сторона | Ограничение |
|---|---|---|---|
| Terminal CLI | На вашей машине или сервере | Полный контроль, флаги, headless, скрипты | Нужно понимать shell и permissions |
| VS Code / JetBrains | Локально, через extension | Inline diff, контекст, review плана | Часть настроек у extension, часть у CLI |
| Desktop | Локальные и облачные сессии | Параллельные panes, visual diff, computer use | Доступность функций зависит от ОС/аккаунта |
| Web | В Anthropic cloud environment | Автономная задача, PR workflow | Нужны connected repo и окружение |
| Remote Control | Код остаётся локально | Продолжение локальной сессии с телефона | Требует поддерживаемой подписки |
| Chrome / computer use | Браузер или GUI | Проверка интерфейсов, GUI-workflow | Расширяет поверхность риска |
Практический выбор чаще всего таков. Для ежедневной разработки и тонкой настройки начинают с CLI - там все флаги и самая честная диагностика. Если основной редактор - VS Code, берут расширение ради diff и контекста, но проектные правила держат в репозитории, а не только в настройках IDE. Web - для автономной задачи в изолированном окружении с оформлением через PR. Remote Control - когда процесс обязан остаться на машине с её файлами, credentials и локальными сервисами.
Проверить, на какой поверхности и в каком состоянии вы находитесь, помогает пара команд. В сессии /status показывает тип сессии, модель, provider, рабочий каталог и источники настроек. В shell claude agents --json и claude daemon status раскрывают фоновую инфраструктуру - но второй вызов осмыслен лишь при использовании agent view и background sessions. Начинать любую работу стоит с этой проверки, а не с предположения о том, что за поверхность под вами.
# В сессии - какая поверхность и состояние
/status
# В shell - фоновая инфраструктура (только при agent view/background)
claude agents --json
claude daemon status