مدیریت نشستها
نشست یک گفتوگوی ذخیرهشده است که به یک پوشهی پروژه گره خورده. Claude Code همانطور که کار میکنی آن را بهصورت محلی ذخیره میکند تا بتوانی از همانجایی که رها کردی ادامه بدهی، برای امتحانِ یک رویکردِ متفاوت شاخه بزنی، یا بین کارها جابهجا شوی.
اپلیکیشن دسکتاپ، Claude Code on the web و افزونهی VS Code هرکدام تاریخچهی نشستهای خودشان را نگه میدارند. این صفحه دربارهی CLI است:
- ادامهدادن یک گفتوگوی قبلی با پرچم، نام یا PR
- نامگذاری نشستها تا بعداً پیدایشان کنی
- مرور نشستها با انتخابگرِ
/resume - شاخهزدن یک گفتوگو برای امتحانِ رویکردی متفاوت
- خروجیگرفتن از transcriptها و یافتنشان روی دیسک
ادامهدادن یک نشست
Section titled “ادامهدادن یک نشست”نشستها همانطور که کار میکنی بهطور پیوسته در فایلهای transcriptِ محلی ذخیره میشوند، پس میتوانی بعد از خروج یا اجرای /clear به یکی برگردی. از این نقاطِ ورود استفاده کن:
| دستور | چه میکند |
|---|---|
claude --continue | آخرین نشست در پوشهی فعلی را ادامه میدهد |
claude --resume | انتخابگرِ نشست را باز میکند |
claude --resume <name> | نشستِ نامبُرده را مستقیم ادامه میدهد |
claude --from-pr <number> | نشستِ گرهخورده به آن pull request را ادامه میدهد |
/resume | از داخل یک نشستِ فعال به گفتوگوی دیگری جابهجا میشود |
نشستهایی که با claude -p یا Agent SDK ساخته شدهاند در انتخابگرِ نشست ظاهر نمیشوند، اما باز هم میتوانی با دادنِ شناسهی نشستش به claude --resume <session-id> آن را ادامه بدهی. این را از همان پوشهای اجرا کن که نشست در آن شروع شده بود: جستوجوی شناسهی نشست محدود به پوشهی پروژهی فعلی و worktreeهای گیتش است، پس نشستی که جای دیگری ساخته شده باشد No conversation found with session ID: <session-id> را گزارش میدهد.
انتخابگرِ نشست کجا را میگردد
Section titled “انتخابگرِ نشست کجا را میگردد”نشستها بهازای هر پوشهی پروژه ذخیره میشوند. بهطور پیشفرض انتخابگرِ نشست، نشستهای تعاملیِ worktree فعلی را نشان میدهد، بهعلاوهی نشستهایی که جای دیگری شروع شدهاند ولی پوشهی فعلی را با /add-dir اضافه کردهاند. {/* min-version: 2.1.169 */}از نسخهی v2.1.169، جابهجا کردنِ یک نشست با /cd آن را به فضای ذخیرهسازیِ پروژهی پوشهی جدید منتقل میکند، پس بعد از آن در انتخابگرِ همان پوشه ظاهر میشود. با Ctrl+W دامنه را به همهی worktreeهای مخزن گسترش بده یا با Ctrl+A به هر پروژهی روی این دستگاه.
انتخابِ نشستی از worktree دیگرِ همان مخزن، آن را همانجا ادامه میدهد. انتخابِ نشستی از پروژهای بیربط، بهجایش یک دستورِ cd و ادامه را در کلیپبوردت کپی میکند.
ادامهدادن با نام، در سراسر مخزن فعلی و worktreeهایش حل میشود. هر دو شکل دنبالِ یک تطابقِ دقیق میگردند و آن را مستقیم ادامه میدهند، حتی اگر در worktree دیگری باشد:
| دستور | تطابقِ دقیق | نامِ مبهم |
|---|---|---|
claude --resume <name> | مستقیم ادامه میدهد | انتخابگرِ نشست را با نام، از پیشپُرشده بهعنوان عبارتِ جستوجو باز میکند |
/resume <name> | مستقیم ادامه میدهد | خطا گزارش میدهد؛ برای بازکردنِ انتخابگر، /resume را بدون آرگومان اجرا کن |
نامگذاری نشستها
Section titled “نامگذاری نشستها”به نشستها نامهای توصیفی بده تا در انتخابگرِ نشست پیدا شوند و با نام قابلادامه باشند. این وقتی بیشترین اهمیت را دارد که همزمان روی چند کار کار میکنی.
| کِی | چطور نام را تنظیم کنی |
|---|---|
| هنگامِ راهاندازی | claude -n auth-refactor |
| در طولِ نشست | /rename auth-refactor. این نام روی نوارِ پرامپت هم ظاهر میشود |
| از انتخابگرِ نشست | یک نشست را برجسته کن و Ctrl+R را بزن |
| هنگامِ پذیرشِ یک plan | پذیرشِ یک plan در plan mode نشست را از محتوای plan نامگذاری میکند، مگر اینکه از قبل نامی تنظیم کرده باشی |
بهمحض اینکه نشستی نام بگیرد، با claude --resume <name> یا /resume <name> به آن برگرد. برای اینکه ببینی حلِ نام در سراسر worktreeها چطور رفتار میکند، ادامهدادن یک نشست را ببین.
استفاده از انتخابگرِ نشست
Section titled “استفاده از انتخابگرِ نشست”برای بازکردنِ انتخابگرِ نشستِ تعاملی، /resume را داخل یک نشست اجرا کن، یا claude --resume را بدون آرگومان. از این میانبرهای صفحهکلید برای پیمایش، جستوجو و گسترشِ فهرست استفاده کن:
| میانبر | اقدام |
|---|---|
↑ / ↓ | پیمایش بین نشستها |
→ / ← | بازکردن یا جمعکردنِ نشستهای گروهبندیشده |
Enter | ادامهدادن نشستِ برجسته |
Space | پیشنمایشِ محتوای نشست. Ctrl+V هم روی ترمینالهایی که آن را بهعنوان paste نمیگیرند کار میکند |
Ctrl+R | تغییرِ نامِ نشستِ برجسته |
/ یا هر کاراکترِ چاپشدنیِ دیگری غیر از Space | ورود به حالتِ جستوجو و فیلترِ نشستها. یک URLِ pull/merge request از GitHub، GitHub Enterprise، GitLab یا Bitbucket را paste کن تا نشستی که آن را ساخته پیدا شود |
Ctrl+A | نمایشِ نشستهای همهی پروژههای این دستگاه. دوباره بزن تا به مخزن فعلی برگردی |
Ctrl+W | نمایشِ نشستهای همهی worktreeهای مخزن فعلی. دوباره بزن تا به worktree فعلی برگردی. فقط در مخزنهای چند-worktree نشان داده میشود |
Ctrl+B | فیلتر به نشستهای شاخهی گیتِ فعلی. دوباره بزن تا همهی شاخهها نشان داده شوند |
Esc | خروج از انتخابگرِ نشست یا حالتِ جستوجو |
هر ردیف، نامِ نشست را اگر تنظیم شده باشد نشان میدهد، وگرنه خلاصهی گفتوگو یا اولین پرامپت را، بههمراهِ زمانِ سپریشده از آخرین فعالیت، تعدادِ پیامها و شاخهی گیت. مسیرِ پروژه پس از گسترش به همهی پروژهها با Ctrl+A ظاهر میشود.
نشستهای forkشده که با /branch، /rewind یا --fork-session ساخته شدهاند، زیرِ نشستِ ریشهشان گروهبندی میشوند. برای بازکردنِ یک گروه → را بزن.
شاخهزدنِ یک نشست
Section titled “شاخهزدنِ یک نشست”شاخهزدن یک کپی از گفتوگوی تا اینجا میسازد و تو را به آن منتقل میکند، و نسخهی اصلی را دستنخورده میگذارد. از آن استفاده کن تا رویکردی متفاوت را امتحان کنی، بیآنکه مسیری که در آن بودی را از دست بدهی.
از داخل یک نشست، /branch را با یک نامِ اختیاری اجرا کن:
/branch try-streaming-approachاز خطِ فرمان، --continue یا --resume را با --fork-session ترکیب کن:
claude --continue --fork-sessionنشستِ اصلی تغییر نمیکند و در انتخابگرِ نشست در دسترس میماند. تأییدِ /branch دو شناسهی نشست چاپ میکند: شاخهی جدیدی که الان در آن هستی و نسخهی اصلی. برای برگشتن به اصلی، شناسهاش را به /resume بده، از انتخابگرِ نشست استفاده کن، یا /resume <original-name> را اجرا کن. دسترسیهایی که با «allow for this session» تأیید کرده بودی به شاخهی جدید منتقل نمیشوند. اگر همان نشست را بدون fork در دو ترمینال ادامه بدهی، پیامهای هر دو در یک transcript درهم میآمیزند.
برای rewindِ مبتنیبر checkpoint در داخلِ یک نشست واحد، Checkpointing را ببین.
مدیریتِ کانتکست در داخلِ یک نشست
Section titled “مدیریتِ کانتکست در داخلِ یک نشست”این دستورها بدونِ ترکِ نشست کنترل میکنند که چه چیزی در پنجرهی کانتکست هست:
/clear: با کانتکستِ خالی از نو شروع کن. گفتوگوی قبلی ذخیره و قابلادامه میماند/compact [instructions]: تاریخچه را با یک خلاصه جایگزین کن، و اختیاراً روی آنچه مشخص میکنی متمرکزش کن/context: نشان بده الان چه چیزی کانتکست را مصرف میکند
برای اینکه ببینی compaction چطور با CLAUDE.md، skillها و قواعد تعامل میکند، راهنمای پنجرهی کانتکست را ببین. برای راهبردهای اینکه کِی clear کنی در برابر compact، بهترین شیوهها را ببین.
خروجیگرفتن و یافتنِ دادهی نشست
Section titled “خروجیگرفتن و یافتنِ دادهی نشست”/export را اجرا کن تا گفتوگوی فعلی در کلیپبوردت کپی شود یا بهصورتِ یک فایلِ متنیِ ساده ذخیره شود، با پیامها و خروجیهای ابزار که بهصورتِ متنِ خوانا رندر شدهاند. یک نامِ فایل بده تا مستقیماً در آن فایل نوشته شود.
transcriptها بهصورتِ JSONL در ~/.claude/projects/<project>/<session-id>.jsonl ذخیره میشوند، که در آن <project> از مسیرِ پوشهی کاریات مشتق میشود. هر خط یک آبجکتِ JSON برای یک پیام، استفاده از ابزار، یا یک ورودیِ متادیتا است. برای ذخیرهی نشستها جایی غیر از ~/.claude، CLAUDE_CONFIG_DIR را تنظیم کن. این فایلهای محلی بهطور پیشفرض بعد از ۳۰ روز حذف میشوند؛ این را با cleanupPeriodDays تغییر بده.
برای جلوگیریِ کاملِ نوشتنِ transcript، CLAUDE_CODE_SKIP_PROMPT_HISTORY را تنظیم کن، یا در حالتِ غیرتعاملی از --no-session-persistence استفاده کن.
همچنین ببین
Section titled “همچنین ببین”این صفحهها مکانیکِ مرتبط با نشست و موازیسازی را پوشش میدهند:
- Worktrees: نشستهای موازیِ ایزوله روی شاخههای جداگانه اجرا کن
- Checkpointing: کد و گفتوگو را به نقطهای قبلتر برگردان
- پنجرهی کانتکست: چه چیزی کانتکست را پُر میکند و چه چیزی از compaction جان بهدر میبرد
- حالتِ غیرتعاملی: رفتارِ نشست تحتِ
claude -p