✻ Claude Code по-русски
🎧 Аудиокурс
🎧 Озвучка этой страницы готовится.

#Agent view

Продвинутый уровень · Факультатив · около 20 минут плюс время запуска · Нужно: Параллельные сессии в worktree · Сверено с Claude Code v2.1.285 (stable) 09.10.2026

Примечание

«Agent view находится в исследовательском превью. Интерфейс и горячие клавиши могут меняться по мере развития функции» (Manage multiple agents with agent view).

#Цель

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

#Что понадобится

#Идея

Agent view, открываемый командой claude agents, — один экран для ваших фоновых сессий: полноценных разговоров Claude Code, которые работают без подключённого терминала. Каждый промпт, набранный там, запускает собственную сессию, которую фоновая служба продолжает выполнять и после того, как вы закроете экран. Каждая строка показывает, работает ли её сессия, ждёт ли вашего ввода или закончила (Read session state).

В уроке 1 вы создавали worktree сами. Здесь это делает Claude: прежде чем отправленная сессия отредактирует файл, она переходит в собственный worktree в .claude/worktrees/. Claude Code велит ей коммитить в ветку worktree и пушить эту ветку, если у репозитория есть удалённый, если только задача, ваш CLAUDE.md или память не говорят, что git вы ведёте сами. Ей велено никогда не пушить в main или master, не делать force-push и не сливать. Какой бы ни была задача, она заканчивается отчётом о том, что сделано и где лежит работа (How file edits are isolated).

Внимание

Фоновая сессия действует, пока вы не смотрите. Открытый из оболочки без --permission-mode, agent view запускает каждую сессию так же, как новая сессия claude в этой папке, — обычно в режиме auto (Permission mode, Which mode a session starts in), где Claude коммитит без вопросов и пушит свою ветку, если у репозитория есть удалённый. Открывайте agent view с выбранным вами режимом разрешений, никогда с --dangerously-skip-permissions, и практикуйтесь в клоне, у которого удалённый репозиторий — папка на вашей машине.

#Разбор примера

  1. Из папки, где лежит ваша копия шаблона для практики, создайте одноразовый клон с локальным удалённым репозиторием и проверьте, что тесты проходят. Замените <template copy> именем папки своей копии:
git clone --bare <template copy> av-origin.git
git clone av-origin.git av-practice
cd av-practice
mkdir -p .practice
printf '%s\n' .practice/ .claude/worktrees/ >> "$(git rev-parse --git-path info/exclude)"
npm test

npm test проходит, а origin теперь — папка av-origin.git, так что push остаётся на вашей машине. Строки исключений убирают из git status две папки без коммита: .practice/, куда задание «Ваша очередь» сохраняет свои файлы (как в уроке 1 Начального уровня), и worktree, которые создаёт Claude (gitignore, Start Claude in a worktree). 2. В первом терминале откройте agent view с двумя значениями по умолчанию для отправки: ручной режим (Manual), в котором без вопросов выполняется только чтение (Available modes), и Sonnet (Model aliases):

claude agents --permission-mode manual --model sonnet

Примите диалог доверия для новой папки. Заголовок называет модель, которую используют новые сессии (Set the model), и каждая сессия, отправленная из этого окна, стартует с обоими значениями (Dispatch defaults). Если других фоновых сессий у вас нет, список показывает пустые заголовки разделов, каждый с описанием. Если вместо этого claude agents выводит список ваших субагентов и завершается, проверьте, что ни один файл настроек не задаёт disableAgentView равным true и что переменная CLAUDE_CODE_DISABLE_AGENT_VIEW не задана (Turn off agent view). 3. Отправьте две задачи, затрагивающие разные файлы. Наберите каждую и нажмите Enter; каждый промпт запускает собственную сессию:

Add a --json option to src/cli.js that prints the broken links as a JSON array instead of text lines. Add a test for it in a new file, test/cli.test.js, and run npm test.
Write docs/config.md describing each linkcheck.json option in src/config.js, with its default and an example. Don't change any code.

В разделе Working появятся две строки, каждая названа по своему промпту. 4. Когда сессии нужно ваше одобрение правки или команды, её строка переходит в раздел Needs input. Выберите её клавишами ↑ или ↓ и нажмите Space: панель просмотра покажет, чего она ждёт (Peek and reply). Ответ, набранный там, не отвечает на запрос разрешения, поэтому нажмите →, чтобы подключиться. В v2.1.285 фоновая сессия, ждущая вашего одобрения, может отображаться как завершённая (исправлено в v2.1.286), а claude agents иногда не показывает запрос разрешения, которого ждёт сессия (исправлено в v2.1.287) (CHANGELOG): если строка выглядит завершённой без отчёта или в её просмотре нет запроса, подключитесь через →. 5. После подключения сессия занимает весь терминал и показывает краткую сводку того, что произошло, пока вас не было. Прочитайте, что хочет сделать Claude, и одобрите, если это соответствует задаче, но не вариантом Yes, and switch to auto mode, который может предложить запрос команды: он переключил бы эту сессию без присмотра в режим auto (Switch permission modes). Можно оставаться подключённым и одобрять следующие запросы, например git commit или git push, которые она попросит выполнить, а затем нажать ← на пустом промпте: вы вернётесь в таблицу, а сессия продолжит работу (Attach to a session). Делайте так всякий раз, когда строке нужны вы. 6. Во втором терминале, в av-practice, посмотрите на свой checkout, пока сессии работают:

git status --short
git worktree list

git status --short ничего не выводит: сессии правят в другом месте. Как только сессия попросила разрешения на правку, git worktree list показывает для неё worktree в .claude/worktrees/ с её веткой в квадратных скобках. 7. Когда строка каждой сессии окажется в разделе Completed, посмотрите её: результат говорит, что сделано и где лежит работа, например в какой ветке (формулировки у вас будут другими). Результат, который не говорит, что сделала сессия и где работа, может означать, что она всё ещё ждёт вашего одобрения, как предупреждает шаг 4: подключитесь через → и сначала ответьте. Во втором терминале слейте то, что хотите оставить, затем запустите тесты:

git merge --no-edit <branch>
npm test

Выполните слияние один раз для каждой оставляемой ветки, взяв имя ветки из результата её сессии или из git worktree list. npm test проходит; если вы оставили ветку с --json, тестов будет больше, чем на шаге 1. 8. Уберите всё из второго терминала. Выведите сессии этой папки, каждую с коротким id, затем удалите каждую:

claude agents --json --all --cwd "$PWD"
claude rm <id>

claude rm также удаляет worktree, который Claude создал для сессии, если это безопасно. Он оставляет worktree с незакоммиченными изменениями или с коммитами, сохранность которых в другом месте он не может подтвердить, и объясняет почему. Коммиты в удалённом репозитории или слитые в ветку по умолчанию, на которой вы находитесь, считаются сохранёнными (What deleting a session removes). После этого git worktree list показывает только ваш checkout. Нажмите Esc в agent view, чтобы вернуться в оболочку.

#Ваша очередь

Задание: в одноразовом клоне своего репозитория, созданном как на шаге 1, с новыми именами папок и своей командой тестов, поручите две давно откладываемые задачи, затрагивающие разные файлы. Каждый worktree — свежий checkout (Set up the worktree environment), поэтому задача, которая запускает тесты, должна сначала велеть установить зависимости в своём worktree, как это делала задача про тесты в уроке 1. Пока обе сессии работают, сохраните два файла .practice/, названных в критериях ниже.

Затем во втором терминале сами запустите сессию в клоне командой claude --permission-mode manual: перенесённая сессия сохраняет свой режим, а простой claude обычно стартует в режиме auto (Permission mode). Задайте ей вопрос о коде, не требующий правок, и перенесите её в agent view командой /background — она освобождает терминал и возвращает вас в оболочку (Send the session to the background). Перенесённая сессия продолжает работать в вашем checkout, без собственного worktree. Следите за всеми тремя из agent view, пока работа каждой отправленной сессии не будет слита или отброшена.

Критерии приёмки:

git status --short > .practice/a-view-status.txt
git worktree list > .practice/a-view-worktrees.txt

#Проверка

Факультатив пройден, когда выполнено всё это:

Если не проходит первый пункт, сохраните файлы заново при следующем запуске, пока обе отправленные сессии работают: у сессии, ещё не просившей правок, worktree пока нет, перенесённая сессия правит ваш checkout на месте, а файл настроек, задающий worktree.bgIsolation равным "none", отключает worktree. Если в вашей ветке нет оставленной работы или тесты падают после слияния, найдите стоящую за этим сессию. Сессия оставляет git вам, если так говорит задача, ваш CLAUDE.md или память, а незакоммиченную работу в её worktree нужно закоммитить там, прежде чем её можно будет слить: подключитесь к этой сессии и попросите её закоммитить. Если ветка сломала тесты, исправьте сами или подключитесь к сессии до её удаления и скажите, что упало; затем слейте исправление. Если claude rm оставил сессию, прочитайте выведенную причину, например незакоммиченные изменения или незапушенные коммиты, и следуйте What deleting a session removes. Worktree, оставшийся без сессии, удалите командой git worktree remove <path> (.claude/worktrees/ is filling up), предварительно выполнив git worktree unlock <path>, если git говорит, что он заблокирован (Clean up subagent and background-session worktrees).

#Осторожно

#Что дальше


Источники: Manage multiple agents with agent view · Run agents in parallel · Choose a permission mode · Run parallel sessions with worktrees · All settings · Commands · Model configuration · Claude Code CHANGELOG · gitignore

Назад к оглавлению Продвинутого уровня · Тема: Субагенты и параллельная работа · Застряли на уроке?