У Claude Code есть настольное приложение - вкладка Code в приложении Claude для macOS, Windows и Linux (последний в бете). Это не отдельный продукт и не обёртка над терминалом: внутри работает тот же движок, что в CLI, а конфигурация у них общая. Запускать CLI и приложение на одной машине и даже на одном проекте можно одновременно.

Разница не в возможностях модели, а в интерфейсе: панели, визуальный просмотр правок, параллельные сессии в боковой панели и изоляция каждой из них в своём git-worktree. Взамен из приложения ушло всё, что связано со скриптами и автоматизацией.

Что такое вкладка Code в приложении

В приложении Claude три вкладки: Chat для обычных разговоров, Cowork для длинной агентной работы и Code для разработки. Речь дальше только про Code.

Перед первым сообщением в сессии задаются четыре вещи прямо в поле ввода:

  • Среда - где Claude выполняется: локально, в облаке, по SSH или в WSL;
  • Папка проекта - каталог или репозиторий, в котором он работает;
  • Модель - выбирается в списке рядом с кнопкой отправки и меняется по ходу сессии;
  • Режим прав - сколько самостоятельности у агента.

Дальше сессия живёт своей жизнью: у каждой свой контекст и свои изменения. Когда контекст заполняется, разговор сжимается автоматически; можно сжать раньше командой /compact.

Из мелочей, которые заметны в работе: приложение показывает системное уведомление, когда сессия закончила задачу, а вы смотрите в другую. И есть боковой чат - Ctrl+; на Windows, Cmd+; на macOS или команда /btw. Он видит весь контекст основного разговора, но обратно в него ничего не добавляет: удобно спросить «а что здесь вообще происходит», не сбивая агента с задачи. На диск боковые чаты не сохраняются, после закрытия приложения к ним не вернуться.

Установка и что нужно на Windows

Приложение скачивается с сайта Claude: сборка для macOS универсальная (Intel и Apple Silicon), для Windows отдельные установщики под x64 и ARM64, для Linux - apt или .deb под Ubuntu и Debian в статусе беты. После установки нужно войти в аккаунт и открыть вкладку Code.

На Windows вкладка Code не заработает без Git for Windows. Его надо поставить и перезапустить приложение. Причина в изоляции сессий: каждая сессия получает свой git-worktree, а без git этот механизм невозможен. На macOS git обычно уже есть, проверить можно командой git --version.

Отдельная установка CLI для приложения не требуется - движок в нём свой. Но если CLI уже стоит, перенести из него текущую сессию в приложение можно командой /desktop прямо в терминале: сессия сохраняется, открывается в приложении, а CLI закрывается. Команда работает на macOS и x64-Windows при входе по подписке Claude; с аутентификацией по API-ключу и на сторонних провайдерах её нет.

Про установку самого CLI - в статьях про установку Claude Code и Claude Code на Windows.

Где выполняется работа: четыре среды

Среда выбирается в списке в поле ввода и определяет, на какой машине Claude на самом деле читает файлы и запускает команды.

СредаГде выполняетсяКогда нужна
LocalВаша машина, прямой доступ к файламОбычная работа над проектом на своём компьютере
CloudИнфраструктура AnthropicДолгие задачи: сессия продолжается, даже если закрыть приложение
SSHУдалённая машина по SSHКод живёт на сервере или в dev-контейнере
WSLДистрибутив WSL 2, только WindowsНужен линуксовый инструментарий и линуксовые пути

У локальных сессий есть неочевидная особенность с переменными окружения. Приложение не наследует ваше окружение оболочки целиком: на macOS при запуске из Dock оно читает профиль (~/.zshrc, ~/.bashrc) только чтобы вытащить PATH и фиксированный набор переменных Claude Code, остальное экспортированное там не подхватывается. На Windows наследуются пользовательские и системные переменные, но профили PowerShell не читаются вовсе.

Поэтому для локальных сессий есть свой редактор окружения: в списке сред навести на Local и нажать шестерёнку. Переменные оттуда хранятся на машине в зашифрованном виде и применяются ко всем локальным сессиям и серверам предпросмотра. Ключ env в ~/.claude/settings.json тоже работает, но он доходит только до сессий Claude, а до dev-серверов нет.

SSH-сессия ставит Claude Code на удалённую машину сама, при первом подключении. Требование одно: удалённая машина должна работать на Linux или macOS. После подключения там работают режимы прав, коннекторы, плагины и MCP-серверы.

Параллельные сессии и автоматические worktree

Это главное, ради чего приложение вообще берут. Новая сессия заводится кнопкой + New session или сочетанием Ctrl+N (Cmd+N на macOS), переключение между ними - Ctrl+Tab и Ctrl+Shift+Tab.

Для git-репозитория каждая сессия получает собственную изолированную копию проекта через git worktree. Правки одной сессии не видны другой, пока не будет коммита. В CLI то же самое делается флагом --worktree и руками; здесь оно происходит само.

Практические детали, которые всплывают на второй день:

  • worktree лежат в <корень-проекта>/.claude/worktrees/, каталог меняется в Settings → Claude Code, пункт «Worktree location»;
  • там же задаётся префикс веток, чтобы ветки, созданные агентом, было видно в списке;
  • убрать worktree можно иконкой архива на строке сессии; есть и автоархив по слиянию или закрытию pull request;
  • файлы из .gitignore в новый worktree не попадают - если сессии нужен .env, его добавляют в файл .worktreeinclude в корне проекта.

Две сессии видно одновременно: Ctrl плюс клик по сессии в боковой панели открывает её во второй панели рядом. Закрыть панель с фокусом - Ctrl+\.

Ещё одна вещь, которой в CLI нет: Claude может смотреть на ваши другие сессии. В обычной формулировке - «какая сессия трогала авторизацию», «что решила сессия по API», «скажи сессии про оплату, что схема изменилась». Но границу тут стоит знать точно: он видит только те сессии, которые запустило само приложение (локальные, SSH и WSL во вкладке Code). Сессии из терминала и из расширения VS Code он не видит, даже в worktree того же проекта. По умолчанию берутся 20 последних активных, архивные пропускаются, и текущая сессия в список не попадает никогда.

Общая конфигурация с CLI

Приложение и CLI читают одни и те же файлы, так что настроенное однажды работает в обоих:

  • CLAUDE.md и CLAUDE.local.md в проекте;
  • MCP-серверы из ~/.claude.json и .mcp.json;
  • хуки и навыки из настроек;
  • правила прав и остальные ключи из ~/.claude/settings.json.

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

С MCP на десктопе есть тонкость, о которую спотыкаются. Приложение дополнительно подхватывает серверы из claude_desktop_config.json - того файла, которым пользуется вкладка Chat. Если один и тот же сервер описан и там, и в ~/.claude.json, локальная сессия во вкладке Code возьмёт определение из claude_desktop_config.json. Отдельно стоящий CLI этот файл не читает вообще; перенести из него серверы можно командой claude mcp add-from-claude-desktop на macOS и в WSL.

CLI против приложения: таблица

ВозможностьCLIПриложение
Режимы правВсе, включая dontAskManual, Accept edits, Plan, Auto; Bypass появляется после включения в настройках
Несколько сессийНесколько терминаловВкладки в боковой панели
Изоляция сессийФлаг --worktreeWorktree автоматически
Упоминание файлов через @ТекстомС автодополнением, в локальных и SSH-сессиях
ВложенияНетИзображения, PDF
Сторонние провайдерыAmazon Bedrock, Google Cloud, Microsoft FoundryAPI Anthropic; остальное только через шлюз
ПлагиныКоманда /pluginМенеджер плагинов в интерфейсе
Регулярные задачиCron, CIЗапланированные задачи
Скрипты и автоматизация--print, Agent SDKНет

Флаги CLI, у которых есть прямая замена: --model становится списком моделей у кнопки отправки, --resume и --continue - кликом по сессии в панели, --permission-mode - переключателем режима, --verbose - подробным режимом просмотра. У --allowedTools и --disallowedTools замены на уровне сессии нет: правила прав из файлов настроек действуют, а разово переопределить их нечем.

Чего в приложении нет

Список короткий, но важный - половина причин остаться в терминале именно здесь.

  • Скриптов и автоматизации. Ни --print, ни машиночитаемого вывода: приложение только интерактивное. Всё, что вы гоняли из CI или по cron, остаётся за CLI.
  • Сторонних провайдеров по умолчанию. Приложение ходит в API Anthropic; Bedrock, Google Cloud и Microsoft Foundry - через отдельные схемы со шлюзом.
  • Команд, которые открывают панель в терминале. /permissions без аргумента отвечает, что недоступна в этом окружении; /config открывает системные настройки приложения и текст после команды игнорирует, то-есть /config theme=dark ничего не поставит. Права и конфигурация здесь правятся файлами.
  • Подсказок по ходу набора. Автодополнения кода в стиле Copilot тут нет, работа идёт репликами и явными правками.
  • Команд агентов. Скоординированные команды агентов с общим списком задач есть в CLI и отсутствуют в приложении.
  • Computer Use в линуксовой сборке - на macOS и Windows он есть, в бете под Linux пока нет.

Что выбрать

Правило простое и почти не имеет исключений.

Приложение - когда работа идёт руками и параллельно: две-три задачи одновременно, каждая в своей изолированной копии, правки надо посмотреть глазами до коммита, а панели удобнее разложить, чем держать четыре окна терминала.

CLI - когда работа идёт из скрипта или по расписанию, когда нужен сторонний провайдер, когда важен режим dontAsk или разовые флаги вроде --allowedTools, и когда терминал просто привычнее.

Выбирать одно из двух не обязательно: конфигурация общая, оба запускаются на одном проекте, а /desktop переносит начатую в терминале сессию в приложение. Разумный порядок - держать CLI для автоматизации и разовых запусков, а приложение для долгой работы над задачей.

Что до самой модели, скорости и лимитов - интерфейс на них не влияет никак: и там, и там это одни и те же модели и одни и те же лимиты подписки.