#Agent view
Продвинутый уровень · Факультатив · около 20 минут плюс время запуска · Нужно: Параллельные сессии в worktree · Сверено с Claude Code v2.1.285 (stable) 09.10.2026
Примечание
«Agent view находится в исследовательском превью. Интерфейс и горячие клавиши могут меняться по мере развития функции» (Manage multiple agents with agent view).
#Цель
К концу этого факультатива вы сможете раздавать несколько независимых задач фоновым сессиям с одного экрана, вмешиваться, только когда какой-то из них нужны вы, и сливать или отбрасывать то, что сделала каждая.
#Что понадобится
- Ваша копия шаблона для практики и Node.js LTS — для разбора примера; один из ваших репозиториев — для задания «Ваша очередь». Практикуйтесь в одноразовых клонах, у которых удалённый репозиторий — папка на вашей машине, чтобы ничто из запушенного сессией не покинуло машину. Шаг 1 создаёт клон для разбора примера.
- macOS, Linux или WSL 2 и два терминала: один для agent view, другой для git. В macOS держите клоны вне Desktop, Documents и Downloads, где фоновая сессия может сообщать
Operation not permitted, пока вы не дадите ей доступ (Background sessions can't read Desktop, Documents, or Downloads on macOS). - Расход лимита: умеренный. Каждая сессия расходует ваш лимит независимо (Quick start), а однострочная сводка каждой строки — это короткий запрос класса Haiku в конце хода и раз в несколько минут во время долгого хода (Row summaries). Экономный вариант: на шаге 3 отправьте только первую задачу, а второй наберите
! npm test. Задание оболочки выполняет команду вместо Claude, так что модель не вызывается, а его строка сама исчезает через несколько минут после завершения команды (Run a shell command). Тогда шаги 4–8 относятся к одной сессии Claude: ожидайте один worktree, одну ветку и одну сессию к удалению.
#Идея
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, и практикуйтесь в клоне, у которого удалённый репозиторий — папка на вашей машине.
#Разбор примера
- Из папки, где лежит ваша копия шаблона для практики, создайте одноразовый клон с локальным удалённым репозиторием и проверьте, что тесты проходят. Замените
<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, пока работа каждой отправленной сессии не будет слита или отброшена.
Критерии приёмки:
- Agent view открыт с режимом разрешений и моделью, которые вы выбрали для этой работы.
- Две отправленные сессии меняют файлы, которых не касается другая.
- Пока обе работают, после того как каждая попросила правку, и до запуска переносимой сессии вы сохраняете состояние своего checkout:
git status --short > .practice/a-view-status.txt
git worktree list > .practice/a-view-worktrees.txt
- Эта сессия перенесена в agent view командой
/background(псевдоним/bg) после вашего вопроса (Commands). - На каждую строку
Needs inputдан ответ: на вопрос — из панели просмотра, на запрос разрешения — после подключения. - То, что вы оставляете, слито в вашу ветку, тесты проходят, и каждая запущенная вами сессия удалена командой
claude rm <id>.
#Проверка
Факультатив пройден, когда выполнено всё это:
- Ваш checkout оставался чистым, пока работали отправленные сессии, и у каждой был собственный worktree:
.practice/a-view-status.txtпуст, а.practice/a-view-worktrees.txtперечисляет путь в.claude/worktrees/для каждой. В клоне[ ! -s .practice/a-view-status.txt ] && grep /.claude/worktrees/ .practice/a-view-worktrees.txtвыводит по строке на каждую. -
git log --onelineна вашей ветке показывает оставленную работу, и тесты проходят. -
claude agents --json --all --cwd "$PWD"не показывает ни одной сессии сkindравнымbackground, аgit worktree listничего не показывает в.claude/worktrees/. - Самопроверка (не тестируется): вы ответили на каждую строку
Needs inputиз agent view, не переключаясь в оболочку, и можете сказать, на какие запросы ответила панель просмотра, а для каких понадобилось подключение.
Если не проходит первый пункт, сохраните файлы заново при следующем запуске, пока обе отправленные сессии работают: у сессии, ещё не просившей правок, 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).
#Осторожно
- Удаление сессии в agent view двойным
Ctrl+Xудаляет созданный для неё worktree вместе с незакоммиченными изменениями;claude rmтакой worktree оставляет (What deleting a session removes). Сначала закоммитьте или слейте то, что хотите сохранить. - Фоновые сессии расходуют лимит так же, как интерактивные, так что несколько одновременных расходуют его в несколько раз быстрее (Limitations).
/agentsвнутри сессии — команда, отличная отclaude agents, несмотря на похожее название (Check on running work).
#Что дальше
- Read session state from a script: опрашивайте
claude agents --json --allиз строки состояния или другой программы. - Copy the session with /fork: отправьте копию разговора в фон и продолжайте работать там, где вы есть.
- Message your other Claude Code sessions: пусть отправленные вами сессии передают друг другу находки.
Источники: 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
Назад к оглавлению Продвинутого уровня · Тема: Субагенты и параллельная работа · Застряли на уроке?