Чат с агентом
Сервер запускает сессию через @anthropic-ai/claude-agent-sdk, авторизуясь OAuth-токеном из ~/.claude. Транскрипт пишется в обычный ~/.claude/projects/**/*.jsonl, поэтому чат сразу появляется в общем списке — и в claude --resume в терминале тоже.

Начать и продолжить
- «💬 Новый чат» — выбрать каталог (или взять из списка недавних), модель и уровень усилий, отправить первое сообщение.
- «+ Новый проект» в списке проектов — то же самое, но начинается с выбора папки, в которой сессий ещё не было; папку можно создать на месте.
- «💬 Продолжить в чате» на странице сессии —
resumeпо её id.
Режим ответа
Один и тот же блок в форме нового чата и над композером живого: модель с расшифровкой, ряд усилий и две галочки — ⚡ ultracode и воркфлоу (трёхпозиционная: «вкл / выкл / как решит план»).
Модель, усилия и ultracode меняются на ходу. Воркфлоу — переподъёмом сессии: набор инструментов CLI собирает при старте, на живой сессии его не поменять.
Композер
К сообщению можно приложить картинки — из галереи, камерой или вставкой из буфера; они сжимаются на клиенте. Незаконченный текст (и приложенные к нему картинки) лежит черновиком у каждого чата и у каждого каталога в форме нового чата — уйти за папкой и вернуться можно без потерь.
Отправленное можно отменить и забрать назад. Сообщение, вставшее в очередь за текущим ответом, снимается крестиком и возвращается в поле; долгое нажатие копирует текст, ссылку или блок кода.
Команда вместо сообщения. Строка, начатая с !, модели не уходит: её выполняет оболочка в каталоге этого чата. !git status, !npm test, !tail -50 log — то же, за чем обычно идут в терминал, но не выходя из разговора и не тратя на это ответ агента. Вывод ложится в ленту отдельной записью.
@ дополняет пути файлов. Наберите @ и начало имени — над полем появится список файлов папки чата. Ищет сервер по всему дереву и с учётом .gitignore, поэтому node_modules и сборки в список не лезут. Файл встаёт в текст как @путь, а выбранный каталог раскрывается дальше — так спускаются по дереву, не набирая имён. Путь с пробелом уходит в кавычках, как его понимает CLI. Модели уходит обычный текст: файл по пути она прочитает сама. С клавиатуры по списку ходят стрелками, Tab и Enter выбирают — и в вебе, и в Android; на телефоне без клавиатуры выбирают касанием.
Блок кода копируется кнопкой. Значок в правом верхнем углу фенса забирает его целиком. Копирование работает и по локальной сети без https: браузер в незащищённом контексте не отдаёт странице буфер обмена, поэтому используется запасной путь.
Вопросы модели
Вопросы (AskUserQuestion) показываются карточкой с вариантами. Висящий вопрос переживает перезагрузку страницы и приходит на все устройства сразу — ответили с телефона, в браузере карточка погасла.
Вопрос чужой сессии — той, что ведёт claude в терминале, — тоже можно перехватить и ответить на него из Clauder. Для этого нужны хуки.
Пароль — карточкой, а не сообщением
Агенту понадобился пароль, токен или ключ — он поднимает над композером карточку с полем-паролем, а ход встаёт до вашего ответа. Значение уходит на сервер и подставляется в команду там; в переписке, в транскрипте и в контексте модели остаётся только имя секрета. Подробно — Секреты и безопасный режим.
Слэш-команды
В композере работают свои команды:
| Команда | Что делает |
|---|---|
/model, /effort, /permissions, /ultracode, /workflows | меняют настройки живой сессии |
/context, /cost | показывают её состояние |
/btw | задаёт попутный вопрос в том же диалоге |
/continue | пишет «Продолжай» и сразу отправляет |
/agents, /chats, /files, /search | водят по интерфейсу |
/login, /logout | вход в Claude и выход: окно с OAuth-ссылкой и полем для кода |
Незнакомое имя командой не считается и уходит сообщением — так через композер проходят команды самого CLI (/compact, /init, ваши проектные команды).
Окно контекста
В строке расхода под композером — процент заполнения окна с полоской и тремя ступенями цвета. Считается он от рабочей части окна (0.9 номинала): остальное CLI держит под автосжатие и свой ответ.
По нажатию раскрывается график заполнения по времени с отметками сжатий и заголовком вида «Окно контекста: 45k из 200k · занято 23%».
Живое рядом
Строка над композером говорит про всё живое разом: «⤷ 2 субагента · ⚙ 3 фоновые задачи работают — посмотреть». Субагент пишет в свой файл, дочерний чат живёт отдельной сессией — в ленте они о себе не напоминают, а строка ведёт на экран агентов.
Режимы прав
В режимах default, plan и acceptEdits над композером появляется карточка «Агент хочет вызвать инструмент» с кнопками «Разрешить», «Всегда для этого инструмента» и «Отказать»; ответ при этом стоит до вашего решения. Режим меняется в настройках и командой /permissions.
По умолчанию стоит bypassPermissions — инструменты выполняются без подтверждений. Что это значит на практике, написано в разделе Безопасность.
Чужая сессия слушается тоже
Чат, открытый в терминале или другим Clauder-ом, принимает сообщение (оно доедет хуком), показывает в шапке, чем занят прямо сейчас («⚙ Bash(…)»), и завершается пунктом «Завершить сессию» под «⋮». Второй процесс на неё при этом не поднимается.
Очередь работ в одном каталоге
Несколько долгих работ в одной папке правят одни файлы и сбивают друг друга. Порядок им задают в меню чата, пункт «Очередь работ»: список работ этого каталога, перестановка местами, «пустить сейчас» и «снять».
Идёт всегда одна — держатель очереди; остальные заморожены до её «готово». Написанное в замороженный чат не пропадает и не влезает посреди чужого хода: сообщение ждёт своей очереди, а над композером стоит плашка «⏸ ждёт очереди» со счётчиком накопленного. Очередь живёт в базе, поэтому перезапуск сервера её не теряет.
Забрать чат или показать его
Файлом. «Скачать в Markdown» в меню чата (в Android — «Поделиться в Markdown»): шапка с названием, каталогом и моделью, дальше разговор — «Вы» и «Агент», вызовы инструментов строкой под ответом. Вывод команд и субагенты в файл не идут, размышления — только флагом ручки (?thinking=1). Файл собирает сервер, поэтому во всех клиентах он одинаковый.
Живой ссылкой. «Поделиться ссылкой» там же выдаёт ссылку на чтение одного этого чата — без ключа доступа и без остального Clauder. Пока ссылка жива, гость видит, как чат идёт дальше. Что ему видно и чего нет — в разделе Ключи доступа.
Места, где поведение неочевидно
Это не баги, а свойства SDK — но знать про них полезно.
resume часто заводит новый файл. SDK не гарантирует продолжение в том же транскрипте. Клиенты следят за фактическим sessionId ответа и сами переходят на новую сессию — иначе экран остался бы на старом файле и выглядел бы зависшим.
Отправленное сообщение появляется в файле не сразу. Пока идёт текущий ответ, оно лежит в очереди SDK. Клиенты рисуют его сами (pending-пузырь) и убирают, когда та же строка появилась в транскрипте.
Сессии агента живут в памяти. Перезапуск api (в том числе hot-reload после правки api/src) стирает их, и прежний runId отдаёт 404. Оборванный ответ api досылает сам, а открытый экран поднимает сессию заново. Не поднимается только ответ на висевший вопрос: новый процесс о нём не знает.
Сорвавшийся запрос к API виден. Пока CLI повторяет его, в композере идёт отсчёт («ошибка API (сервис перегружен, HTTP 529) — повтор 2 из 8 через 8 с»), а строка кликабельна: нажатие повторяет запрос сразу. Ответ, оборванный лимитом плана, не досылается: до сброса окна повтор вернёт ту же ошибку.
Настройки агента
Переменные AGENT_* в .env (или раздел «Агент» в окне приложения): модель, режим прав, разрешённые корни для cwd, потолок одновременных сессий, время простоя до автозакрытия. Полный список — в справочнике переменных.