Увечері ви закриваєте термінал, і здається, що вся розмова з агентом іде разом із вікном. Година обговорень, знайдені помилки, пояснений контекст завдання - усе це ніби зникає.

Не зникає. Розмова пишеться на диск сама, поки ви працюєте, і однією командою відкривається знову.

Найпростіше думати про сесії як про готель. Тека проєкту - будівля, кожна розмова - номер, а ключі від усіх номерів висять на дошці за стійкою. Увечері ви йдете, але кімнату за собою не спалюєте: ключ повертається на дошку, речі лишаються всередині. Уранці досить сказати портьє, який номер вам потрібен.

В аналогії є межа, і її краще провести одразу: у номерах живуть розмови, а не код. Код - це сама будівля, одна на всіх гостей.

Далі - що таке сесія, три способи в неї повернутися, навіщо розмові назва і чому під нове завдання краще відкривати нову розмову, а не продовжувати стару.

Що таке сесія

Сесія - це збережена розмова з агентом, прив'язана до теки проєкту. Вона пишеться на диск безперервно, поки ви працюєте: спеціально зберігати, як у текстовому редакторі, нічого не треба.

У сесію потрапляють не тільки репліки. Крім ваших повідомлень і відповідей агента там лежать виклики інструментів та їхні результати: які файли він відкривав, що повернули запущені команди, які правки застосував. Тому, коли ви повернетеся в стару розмову, ви отримаєте не переказ, а всю картину цілком.

Далі два уточнення, які знімають половину плутанини.

Вміст однієї розмови не переїжджає в іншу. Обговорювали щось місяць тому в іншій сесії - у цій її реплік немає, навіть якщо проєкт той самий. Кожна сесія знає свою історію і тільки її.

Сесія - це не друге місце, де лежить код. Файли проєкту живуть на диску самі по собі. Один проєкт спокійно вживається з десятком сесій, і код у всіх них спільний - той, що зараз у теці.

Усередині однієї теки проєкту живуть кілька незалежних сесій, і всі вони працюють з одними й тими самими файлами кодуТека проєктуСесія 1зворотний зв'язокСесія 2баг в оплатіСесія 3рефакторинг тестівФайли проєктутой самий код для всіх сесій
Розмови не перетинаються між собою, а код у них спільний

На схемі обидві думки видно одразу: тека одна, сесій у ній кілька, історію кожна тримає свою, а файли внизу спільні. Відкрити другу сесію для того самого проєкту - це не копія коду, а просто ще одна розмова про нього.

Як повернутися до роботи

Входів три, і вибір між ними залежить від того, чи пам'ятаєте ви, яка саме розмова вам потрібна.

ВхідЩо робить
claude --continueпродовжує найсвіжішу розмову в цій теці, без питань
claude --resumeвідкриває список минулих розмов, вибираєте потрібну
/resumeтой самий список, але зсередини вже відкритої сесії

У таблиці легко не помітити одну річ: два верхні рядки починаються з claude, а нижній зі слеша. Різниця не косметична. Верхні два набирають у терміналі, коли агента ще немає на екрані, - флаг там частина самої команди запуску. Тобто ви однією дією і стартуєте агента, і кажете йому, яку розмову відкрити:

claude              # запуск з чистого аркуша
claude --continue   # запуск одразу у вчорашній розмові
claude --resume     # запуск із вибором розмови зі списку

/resume працює навпаки, зсередини: агент уже відкритий, ви пишете в його рядок введення й перемикаєтеся на іншу розмову, не виходячи в термінал.

Різниця на практиці проста. claude --continue - це "я вчора тут працював, хочу далі": агент мовчки відкриває останню розмову в поточній теці. claude --resume - це "розмов кілька, дайте вибрати".

Список показує по рядку на розмову: назва, якщо ви її задали, або автоматичний заголовок, скільки часу минуло з останньої активності, гілку й розмір. Якщо рядків багато, по них можна шукати - просто почніть друкувати, а можна розширити список за межі поточної теки: Ctrl+A покаже розмови з усіх проєктів на цій машині.

Спочатку перевірте теку

За замовчуванням список прив'язаний до теки. Якщо claude --resume запущено з домашньої директорії, перейдіть у теку проєкту й повторіть. Знайти, де лежить розмова, допоможе Ctrl+A: він покаже розмови з усіх тек, але відкрити чужу прямо зі списку не вийде - замість цього Claude Code покладе в буфер обміну команду переходу в ту теку й запуску, її треба вставити в термінал. Не допомогло - перевірте, що Claude Code запущено з тим самим профілем, що й раніше, а розмова не старша за термін зберігання. Після автоматичного видалення повернути її через /resume уже не можна.

Разом із розмовою повертається і все, що в ній було: повна історія, включно з викликами інструментів та їхніми результатами. Зазвичай зберігається й модель, якщо її доступність і налаштування не змінилися. Продовжувати можна рівно з того місця, де зупинилися.

Навіщо сесії назва

Поки розмова одна, назва не потрібна. Щойно їх три, список перетворюється на ребус: дві починаються однаково, а третя взагалі незрозуміло про що.

Задати назву можна двома способами:

claude -n feedback-form   # під час запуску
/rename feedback-form     # у вже відкритій сесії

Якщо назву не задали, Claude Code сам придумає короткий заголовок за вашим першим повідомленням. Він теж працює як орієнтир: за ним сесію видно в списку і можна відкрити. Просто своя назва точніша - автозаголовок описує першу фразу, а не завдання цілком.

Чесно кажучи, на початку розмови назву вигадують рідко: ви ще не знаєте, у що вона виросте. Половина сесій - це "гляну один рядок", і частина з них несподівано перетворюється на роботу на пів дня.

Тому простіше так. Короткий захід лишити як є, автозаголовка вистачить. Зрозуміли, що застрягли надовго - /rename у процесі. Закінчили - /clear з назвою: завдання вже позаду, і як його назвати, питання не стоїть.

Нове завдання - нова розмова

Головне питання у процесі роботи всього одне: це все ще те саме завдання? Поки те саме - продовжуєте. Змінилося - відкриваєте чистий аркуш. Звучить як формальність, а насправді саме тут розмови найчастіше перетворюються на кашу.

Спокуса зрозуміла: агент уже в курсі проєкту, навіщо починати заново. Але розмова, у яку звалили три завдання поспіль, поводиться передбачувано погано:

  • вона тягне рішення з минулого завдання в нове. Годину тому домовилися робити через одне, зараз робите інше - а агент пам'ятає першу домовленість і повертається до неї;
  • спливають ідеї, які ви вже відкинули. Відкинули в іншому завданні, але для нього це одна стрічка;
  • агент заодно править те, що стосувалося минулої роботи. Просили про форму - отримали ще й правки в оплаті;
  • зміни перемішуються. В одній розмові правки за двома темами, і потім важко розібрати, що до чого належало;
  • розмову не знайти в списку. Вона про все одразу, тобто ні про що.

Звідси просте правило: розмова живе рівно стільки, скільки допомагає одному завданню. Завдання скінчилося - закінчується й вона. Сесія тут витратний матеріал, а не те, що бережуть.

Почати чистий аркуш можна двома способами, і різниця між ними менша, ніж здається.

ДіяЩо з розмовоюЩо з файлами проєктуКоли вибирати
/clearпочинається з чистого аркуша, минула лишається збереженоюне чіпаєзавдання змінилося, а ви все там само
Нова сесіяпочинається окрема розмова під іншу роботуне чіпаєінший проєкт, інша тека, інший день

Тепер про /clear, бо саме тут найчастіше лякаються. Команда виглядає як видалення, а працює як перемикання: вона не стирає розмову, а відсуває її вбік і відкриває порожню. Відсунута розмова лишається в списку й відкривається через /resume рівно такою, якою ви її покинули.

У неї є необов'язковий аргумент - назва. /clear feedback-form підпише в списку ту розмову, з якої ви йдете, щоб ви потім її впізнали. Секунда роботи, а шукати пізніше помітно легше.

Є і зворотний бік. Якщо розмова вже названа - через -n під час запуску або /rename по ходу, - голий /clear передасть цю назву новій розмові, і наступне завдання виявиться підписане назвою минулого. З аргументом назва лишається у старої розмови, а нова стартує без назви.

До команди clear у поточному вікні активна розмова про форму, а список порожній. Після команди активний чистий аркуш, а розмова про форму лежить у списку. В обох станах у цьому вікні активна одна розмоваБулоСтало/clearактивнау спискуРозмова про формуЧистий аркушРозмова про формупоки порожньо
У поточному вікні команда змінює активну розмову, а попередню переносить у список

Дивіться на верхній рядок. У цьому запуску активна розмова одна і до команди, і після. /clear не відкриває другу сесію поруч із першою: він підміняє активну розмову чистою, а попередню зносить униз, у список. Опинитися в ній знову можна лише свідомо, через /resume.

Нова сесія відрізняється від /clear тим, що зазвичай означає й іншу роботу: інший проєкт, інша тека, інший день. /clear не виводить вас ні з поточної директорії, ні з поточного запуску - він відкриває чистий аркуш там, де ви стоїте.

Є ще /compact. Ця команда не про зміну завдання, а про довжину розмови: вона згортає вже сказане в короткий переказ і лишає вас у тій самій сесії. Розбирати її зручніше разом із тим, як влаштоване вікно контексту і що відбувається, коли воно закінчується, - це окрема тема.

Де все це лежить і скільки зберігається

Розмови лежать у вас на диску, у службовій теці Claude Code:

~/.claude-javarush/projects/

Знак ~ означає домашню теку користувача. У Windows їй відповідає %USERPROFILE%, тому навчальний шлях починається з %USERPROFILE%\.claude-javarush\projects\.

.claude-javarush - навчальний профіль. Якщо Claude Code запущено без нього, стандартний шлях має вигляд ~/.claude/projects/. Усередині - по підтеці на кожен проєкт, а в ній по основному файлу на кожну розмову.

Секрети в транскрипт не вставляємо

На диску транскрипт зберігається відкритим текстом. У нього записується вміст прочитаних файлів, вивід запущених команд і текст, який ви вставили в чат. Читати такий файл можуть процеси й користувачі, які мають доступ до файлів вашого користувача в операційній системі.

Локальний файл - лише одна частина історії: щоб модель відповіла, Claude Code передає запити й потрібний контекст мережею вибраному провайдеру. Умови зберігання на боці провайдера залежать від акаунта й налаштувань. Тому не вставляйте в чат паролі й ключі та не просіть агента читати файли із секретами на кшталт .env без потреби.

Зберігаються розмови не вічно: приблизно через місяць старі видаляються автоматично, разом із точками відкату до них, і термін за бажання можна налаштувати. Тож сесія - гарне місце для роботи над завданням і погане для довготривалої історії проєкту. Чим зберігають історію довго - це окрема велика тема.

Що це змінює в роботі

Кілька висновків, які знадобляться вже завтра:

  • сесія - контейнер одного завдання, а не листування з агентом за все життя. Що ближче ви її до цього тримаєте, то рідше він плутається;
  • розмова зберігається сама, окремо зберігати нічого не треба. Закритий увечері термінал нічого не коштує;
  • сесії розкладені по теках. Запустили агента з теки проєкту - його розмови під рукою; якщо список порожній, перевірте теку: Ctrl+A покаже розмови з усіх проєктів і підкаже, куди перейти;
  • коли ви повертаєтеся в стару розмову, ви повертаєте весь її контекст, включно з глухими кутами й відкинутими ідеями. Іноді швидше почати заново, ніж оживляти тригодинне обговорення;
  • одна тека й десяток сесій у ній - нормальна робоча картина, а не ознака безладу.
Ритуал на дві секунди

Одна звичка замість двох: не вигадувати назву на старті, а підписувати розмову на виході. /clear feedback-form замість голого /clear - ті самі дві секунди, але в момент, коли назва вже очевидна. За місяць список лишається читабельним, і розкопувати його не доводиться.


Розташування файлів сесій, склад списку й термін зберігання залежать від версії Claude Code та налаштувань, тому у вас вони можуть відрізнятися від описаних тут.