У 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 | Приложение |
|---|---|---|
| Режимы прав | Все, включая dontAsk | Manual, Accept edits, Plan, Auto; Bypass появляется после включения в настройках |
| Несколько сессий | Несколько терминалов | Вкладки в боковой панели |
| Изоляция сессий | Флаг --worktree | Worktree автоматически |
| Упоминание файлов через @ | Текстом | С автодополнением, в локальных и SSH-сессиях |
| Вложения | Нет | Изображения, PDF |
| Сторонние провайдеры | Amazon Bedrock, Google Cloud, Microsoft Foundry | API 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 для автоматизации и разовых запусков, а приложение для долгой работы над задачей.
Что до самой модели, скорости и лимитов - интерфейс на них не влияет никак: и там, и там это одни и те же модели и одни и те же лимиты подписки.