Skip to content

Session (RU)

Baidak.D edited this page Sep 12, 2026 · 7 revisions

English · Русский

Kitten для kitty: полноэкранный оверлей для просмотра и управления сессиями Claude Code — прямо из терминала, по хоткею.

Из каталога, который не является проектом Claude, открывается со списка проектов — все проекты из ~/.claude/projects со счётчиком сессий и живой активностью; текущий (по cwd окна) помечен (here). Из папки проекта открывается сразу на его сессиях, а Esc — шаг назад к экрану проектов; из окна, где уже идёт сессия, — сразу на ней: курсор стоит на её строке:

session — список проектов

Enter открывает сессии проекта. У запущенных — реальный статус: busy (зелёный), waiting (жёлтый), ◆ bg busy у фонового агента — плюс ветка git и число сообщений; переименованная сессия показывает свой заголовок:

session — список сессий проекта с живым статусом

p (или →) — предпросмотр диалога транскриптом в стиле Claude Code: промпт, вызовы инструментов с выводом, правки файлов цветным diff'ом, ошибки красным, markdown-ответы с подсветкой кода:

session — предпросмотр диалога

Что умеет

  • Навигация проекты → сессии. Список проектов (~/.claude/projects), внутри — сессии выбранного проекта. Текущий проект (по cwd окна) помечен (here). Если кит открыт из окна с идущей сессией, он стартует прямо на ней: kitty отдаёт киту pid процесса окна, и сессия ищется по дереву процессов — в проекте с несколькими живыми сессиями выбирается именно нужная.
  • Реальная активность. Показывает, какие сессии запущены прямо сейчас и их статус (busy / idle / waiting) — источник данных надёжный, из реестра живых процессов, а не по времени файла. waiting — сессия ждёт ответа, например на permission prompt. Фоновые агенты помечены отдельно (◆, bg idle): к ним нельзя подключиться через resume, пока они работают — см. Как определяется активность.
  • Resume / fork. o (или Enter) — claude --resume <id> в папке проекта, поверх текущего окна (оверлеем; сплитом рядом, если окно уже занято работающим claude); f — то же, но --fork-session (форкнуть диалог, не трогая исходную сессию).
  • Новая сессия / continue. n — новый claude в папке (проект или проект сессии); c (на экране проектов) — claude --continue (продолжить последнюю сессию проекта). Если окно проекта уже занято работающим claude — новая сессия открывается сплитом рядом (нужен layout splits из конфига терминала; на «голой» kitty откроется отдельным окном — текущая сессия в любом случае не перекрывается, ничего не ломается). Свободное окно сессия занимает сама (оверлеем) и сообщает kitty свою рабочую папку, поэтому сплиты из неё (Cmd+D / Cmd+Shift+D) открываются в папке проекта. Окно сессии подписано claude · <проект>, окно самого кита — Session.
  • Worktree. w — claude --worktree <имя>: создать изолированный git worktree и запустить в нём сессию (параллельная работа, не трогая основное рабочее дерево). Имя спрашивается в строке ввода; пустое — Claude сгенерирует сам.
  • Предпросмотр диалога транскриптом в стиле Claude Code: реплики (> / ⏺), вызовы инструментов с аргументом (⏺ Bash(git status)), их вывод (⎿) с ошибками красным. Правки файлов — ⏺ Update(tests/x.py) со сводкой и цветным diff'ом, чтение файла — ⎿ Read 402 lines, выход из планирования — ⏺ Updated plan с планом в рамке. Фоновый агент читается как ⎿ Running in background, а его отчёт — он приходит много позже вызова — говорит, чья это была задача и чем кончилась: ⎿ Agent(Audit moon phase rounding) finished и сводка агента под ней. Так же отчитываются фоновые команды и мониторы. Отклонённый пользователем вызов — ⎿ Rejected by user, прерванный ход — ⎿ Interrupted by user, а MCP-инструменты зовутся как в Claude Code (tinkerwell - evaluate-remote-php-code). Ответы Claude рендерятся с markdown-разметкой (жирный, курсив, инлайн-код, заголовки, списки, таблицы) и подсветкой синтаксиса в блоках кода. Длинный вывод свёрнут (… +N lines), Ctrl+o раскрывает всё. Вызовы разведки — поиск, чтение, обзор папки — сворачиваются в строку-сводку (Searched for 2 patterns, read 1 file); команды, правки файлов, планы и упавшие вызовы всегда видны целиком. Плюс поиск по тексту (/, переход n / N с подсветкой совпадений).
  • Переименование сессии (r). Пишет запись custom-title в файл сессии — то же, что делает команда /rename в Claude Code, поэтому имя видно и там, и тут.
  • Фильтр списка по названию (/ в списке).
  • Прячет шум: sdk-сессии (entrypoint: sdk-cli) и внутренние папки ~/.claude/… скрыты по умолчанию, переключатель — a.
  • Шорткаты работают и на русской раскладке (по позиции клавиши).

Подключение

familiar enable session

Перезагрузить конфиг: Cmd+Ctrl+, (или перезапустить kitty). Открыть: cmd+shift+s.

Минимальный fallback — ручной map в ~/.config/kitty/kitty.conf (или отдельном include-файле):

map cmd+shift+s kitten /path/to/familiar/plugins/session.py

В отличие от familiar enable, голый map лишён toggle-закрытия, защиты от повторного открытия оверлея поверх самого себя, разворота во весь экран из сплита (переключение layout в stack) и кириллических дублей клавиш для русской раскладки.

Клавиши

Мышь: клик по строке — выбрать; повторный клик по выбранной — открыть (войти в проект / resume сессии).

Списки (проекты / сессии)

Клавиша Экран Действие
↑/↓, PgUp/PgDn оба навигация
g / G, Home/End оба в начало / конец
клик мышью оба выбрать строку · повторный клик — открыть
Enter оба открыть проект / resume сессии
→ сессии предпросмотр (на проектах — открыть)
n оба новая сессия (claude) в каталоге
w оба worktree (claude --worktree) + новая сессия
c проекты continue (claude --continue)
a проекты показать все сессии / только cli
o сессии resume — claude --resume поверх текущего окна (сплитом, если занято)
f сессии fork — resume с --fork-session
p сессии предпросмотр диалога (то же, что →)
r сессии переименовать сессию
/ оба поиск (фильтр) по списку
Esc оба назад (или сбросить фильтр); на списке проектов — вопрос о закрытии оверлея
q ⌃c оба выход

Esc на дне каскада (список проектов, фильтр не применён) не закрывает оверлей молча: сначала центрированный диалог в стиле kitty — y / Enter / клик по Yes закрывает, n / Esc / No оставляет открытым, ←/→/Tab переключают кнопки. ⌃c выходит сразу даже поверх диалога; q работает, только пока диалога нет.

Предпросмотр

Клавиша Действие
↑/↓, PgUp/PgDn, колесо мыши скролл
g / Home, G / End в начало / конец истории
[ / ] к предыдущей / следующей реплике пользователя
клик по свёрнутой строке раскрыть / свернуть (вывод, план, содержимое файла, сводку вызовов)
Ctrl+o раскрыть весь свёрнутый вывод (повторно — свернуть)
перетаскивание мышью выделение: внутри строки — куска, через строки — целых строк
⌘c скопировать выделенное
/ поиск по тексту диалога
n / N следующее / предыдущее совпадение
o resume
f fork (resume с --fork-session)
Esc ← назад
q выход

Во время ввода (фильтр / поиск / переименование / имя worktree)

Клавиша Действие
← →, Home / End двигать каретку — вставка идёт в позицию каретки
Backspace / Delete стереть перед кареткой / за ней

Как определяется активность

Claude Code ведёт реестр живых процессов в ~/.claude/sessions/<pid>.json (sessionId, cwd, status, waitingFor, kind). Плагин читает его и сверяет живость pid — так активные сессии определяются точно, с реальным статусом, а не по mtime.

Записи с kind: bg — фоновые агенты. Claude Code не даёт подключиться к живому агенту (claude --resume отвечает «stop it there first to resume here»), поэтому такие сессии помечены ◆ и статусом bg <status>, а o/Enter по ним не запускают resume. Варианты: остановить агента, подключиться к нему через claude agents или форкнуть диалог (f) — форку живой процесс не мешает.

Источники данных

  • ~/.claude/projects/<enc>/<uuid>.jsonl — сессии (<enc> — путь проекта с заменой / и . на -). Заголовок берётся из custom-title (/rename), иначе ai-title, иначе первое сообщение.
  • ~/.claude/sessions/<pid>.json — реестр запущенных сессий и их статусы.

Clone this wiki locally