# Визуальные инструменты, которые LLM может вызвать Инструменты Claude Code, которые LLM (ассистент) сама вызывает и которые визуально отображаются пользователю в терминале / IDE. Их можно явно попросить использовать в инструкциях. > **Примечание о диаграммах:** точные скриншоты CLI в публичной документации почти не встречаются. ASCII-мокапы ниже — это реконструкция на основе описаний из документации Claude Code и поведения инструментов. Реальные рамки и цвета могут немного отличаться, но структура и расположение блоков соответствуют действительности. ## 1. AskUserQuestion - **Что показывает:** диалог с 2–4 вариантами ответа (single/multi-select), у каждого варианта может быть описание и preview-мокап рядом. - **Где появляется:** inline в conversation. Блокирует выполнение до ответа пользователя. - **Как попросить:** «Используй AskUserQuestion с вариантами …». ``` ┌─ Auth method ──────────────────────────────────────────────┐ │ Which authentication method should we use? │ │ │ │ > 1. OAuth 2.0 │ │ Industry standard, supports SSO providers │ │ 2. JWT tokens │ │ Stateless, easy to scale │ │ 3. Session cookies │ │ Simple, server-side state │ │ 4. Other │ │ │ │ ↑/↓ to navigate, Enter to select, Esc to cancel │ └─────────────────────────────────────────────────────────────┘ ``` Для multi-select добавляется указание «select multiple» и пробел переключает галочки `[x]`. ## 2. ExitPlanMode - **Что показывает:** окно с планом и кнопкой одобрения («Approve / Revise»). - **Где появляется:** overlay внизу экрана. Блокирует дальнейшие действия до ответа. - **Как попросить:** «Сначала войди в plan mode, составь план, потом вызови ExitPlanMode для моего одобрения». ``` ╭─ Ready to code? ───────────────────────────────────────────╮ │ │ │ Here is Claude's plan: │ │ │ │ 1. Create migrations/ directory and init Alembic │ │ 2. Write initial schema migration │ │ 3. Update SQLAlchemy models with relations │ │ 4. Add seed data script in scripts/seed.py │ │ 5. Run tests end-to-end │ │ │ │ ───────────────────────────────────────────────────────── │ │ │ │ ❯ 1. Yes, and auto-accept edits │ │ 2. Yes, and manually approve edits │ │ 3. No, keep planning │ │ │ ╰─────────────────────────────────────────────────────────────╯ ``` ## 3. TaskCreate / TaskUpdate / TaskList - **Что показывает:** live-список задач (todo) со статусами `pending` / `in_progress` / `completed`. - **Где появляется:** inline в conversation, обновляется в реальном времени каждый раз, когда LLM меняет статус задачи. - **Как попросить:** «Веди прогресс через TaskCreate/TaskUpdate, отмечай задачи completed по мере выполнения». ``` ⏺ Update Todos ⎿ ☒ Generate migrations ☒ Update SQLAlchemy models ☐ Add seed data script ← in_progress ☐ Run integration tests ☐ Open pull request ``` Обозначения: - `☒` — completed (зачёркнутый текст) - `☐` со стрелкой «← in_progress» — текущая активная задача - `☐` без пометки — pending ## 4. PushNotification - **Что показывает:** системное desktop-уведомление (macOS Notification Center / Linux notify-send / Windows toast). - **Где появляется:** ВНЕ терминала, в области уведомлений ОС. Также может приходить на мобильный через Remote Control. - **Как попросить:** «Когда закончишь, вызови PushNotification с title и message». ``` ╔══════════════════════════════════════╗ ║ ▶ Claude Code now ✕ ║ ╟──────────────────────────────────────╢ ║ ║ ║ Build finished ║ ║ All tests passed (124/124) ║ ║ ║ ╚══════════════════════════════════════╝ ↑ macOS-style toast в правом верхнем углу экрана ``` ## 5. Monitor - **Что показывает:** live-стрим строк из фонового процесса. Каждая новая строка становится событием, на которое LLM реагирует немедленно. - **Где появляется:** inline в conversation, как streaming-вывод. - **Как попросить:** «Запусти Monitor на `tail -f app.log` и реагируй на ERROR». ``` ⏺ Monitor(tail -f logs/app.log) ⎿ [10:45:23] webpack: compiling... [10:45:28] ✓ Compiled successfully [10:45:29] webpack: watching for changes... [10:45:45] Starting test suite... [10:45:52] ✗ FAIL auth.test.ts:45 Timeout [10:45:52] ✗ FAIL api.test.ts:78 AssertionError ───────────────────────────────────────────────── ⚠ Pattern matched: "✗ FAIL" — interrupting Monitor ⏺ I see two test failures. Let me investigate auth.test.ts first… ``` LLM получает каждую строку как event и может прервать Monitor при срабатывании паттерна. ## 6. ScheduleWakeup (в /loop dynamic mode) - **Что показывает:** в footer одна строка с временем следующего срабатывания и причиной (`reason`). - **Где появляется:** в конце итерации `/loop`, до момента следующего пробуждения. - **Как попросить:** используется автоматически в `/loop`, но можно сказать «запланируй пробуждение через 30 минут с причиной …». ``` ───────────────────────────────────────────────────────────── ⏰ Loop sleeping for 20 min (watching CI run on PR #446) Next wakeup: 2026-05-28 15:47:30 Press Esc to cancel the loop ───────────────────────────────────────────────────────────── ``` ## 7. CronCreate / CronList / CronDelete - **Что показывает:** inline подтверждение создания/удаления + табличный список активных cron-задач сессии. - **Где появляется:** inline в conversation. - **Как попросить:** «Создай cron для проверки каждые N минут». ``` ⏺ CronCreate(*/5 * * * *, "check deploy status") ⎿ ✓ Scheduled: job-abc123 Next run: 2026-05-28 15:30:00 ⏺ CronList() ⎿ ┌──────────┬──────────────┬────────────────────┬─────────┐ │ ID │ Schedule │ Prompt │ Status │ ├──────────┼──────────────┼────────────────────┼─────────┤ │ abc123 │ */5 * * * * │ check deploy … │ active │ │ def456 │ 0 9 * * 1-5 │ review PRs … │ active │ │ ghi789 │ 0 0 * * * │ nightly cleanup │ active │ └──────────┴──────────────┴────────────────────┴─────────┘ 3 active jobs (max 50 per session) ``` ## 8. RemoteTrigger - **Что показывает:** inline подтверждение создания routine на claude.ai + ссылка. - **Где появляется:** inline в conversation. Сам routine виден в облачном UI на claude.ai/routines. - **Как попросить:** обычно через `/schedule`, но можно напрямую. ``` ⏺ RemoteTrigger(name="daily-pr-review", cron="0 9 * * *") ⎿ ✓ Routine created: daily-pr-review Schedule: every day at 09:00 Runs on: Anthropic-managed infrastructure Link: https://claude.ai/routines/daily-pr-review Routine will run even when your machine is off. ``` ## 9. EnterWorktree / ExitWorktree - **Что показывает:** inline сообщение о переключении + индикатор worktree в statusline (если настроен). - **Где появляется:** inline + footer. - **Как попросить:** «Создай worktree для этой задачи через EnterWorktree». ``` ⏺ EnterWorktree(name="feature-auth") ⎿ ✓ Entered worktree: feature-auth Branch: claude/feature-auth Path: .claude/worktrees/feature-auth Base: main ───────────────────────────────────────────────────────────── [Opus] 📁 feature-auth (worktree) git: claude/feature-auth ───────────────────────────────────────────────────────────── ↑ statusline в footer ⏺ ExitWorktree(action="keep") ⎿ ✓ Exited worktree, returned to: main Worktree kept at: .claude/worktrees/feature-auth ``` ## 10. Skill - **Что показывает:** inline пометка «Using skill: /xxx» + выполнение содержимого skill в основном контексте. - **Где появляется:** inline в conversation. - **Как попросить:** «Вызови skill `xxx` через Skill tool». ``` ⏺ Skill(code-review) ⎿ Using skill: code-review Loading skill instructions… ⏺ Reviewing current diff against main… • src/auth.ts (+45 / -12) • src/api/routes.ts (+8 / -3) • tests/auth.test.ts (+60 / -0) ⏺ Found 2 issues, 1 suggestion. Posting inline… ``` ## Сводная таблица расположения UI | Инструмент | Расположение | Блокирует ввод | Тип | | -------------------- | ------------------ | -------------- | -------------- | | AskUserQuestion | inline | да | диалог выбора | | ExitPlanMode | overlay снизу | да | modal-окно | | TaskCreate/Update | inline | нет | live-список | | PushNotification | desktop OS | нет | toast | | Monitor | inline streaming | нет | live-стрим | | ScheduleWakeup | footer | нет | статус-строка | | CronCreate/List | inline | нет | таблица | | RemoteTrigger | inline | нет | подтверждение | | EnterWorktree | inline + footer | нет | сообщение | | Skill | inline | нет | выполнение |