رفتن به محتوا

مدیریت نشست‌ها

نشست یک گفت‌وگوی ذخیره‌شده است که به یک پوشه‌ی پروژه گره خورده. Claude Code همان‌طور که کار می‌کنی آن را به‌صورت محلی ذخیره می‌کند تا بتوانی از همان‌جایی که رها کردی ادامه بدهی، برای امتحانِ یک رویکردِ متفاوت شاخه بزنی، یا بین کارها جابه‌جا شوی.

اپلیکیشن دسکتاپ، Claude Code on the web و افزونه‌ی VS Code هرکدام تاریخچه‌ی نشست‌های خودشان را نگه می‌دارند. این صفحه درباره‌ی CLI است:

نشست‌ها همان‌طور که کار می‌کنی به‌طور پیوسته در فایل‌های 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 را بدون آرگومان اجرا کن

به نشست‌ها نام‌های توصیفی بده تا در انتخاب‌گرِ نشست پیدا شوند و با نام قابل‌ادامه باشند. این وقتی بیشترین اهمیت را دارد که هم‌زمان روی چند کار کار می‌کنی.

کِیچطور نام را تنظیم کنی
هنگامِ راه‌اندازی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 ساخته شده‌اند، زیرِ نشستِ ریشه‌شان گروه‌بندی می‌شوند. برای بازکردنِ یک گروه را بزن.

شاخه‌زدن یک کپی از گفت‌وگوی تا اینجا می‌سازد و تو را به آن منتقل می‌کند، و نسخه‌ی اصلی را دست‌نخورده می‌گذارد. از آن استفاده کن تا رویکردی متفاوت را امتحان کنی، بی‌آنکه مسیری که در آن بودی را از دست بدهی.

از داخل یک نشست، /branch را با یک نامِ اختیاری اجرا کن:

/branch try-streaming-approach

از خطِ فرمان، --continue یا --resume را با --fork-session ترکیب کن:

Terminal window
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 استفاده کن.

این صفحه‌ها مکانیکِ مرتبط با نشست و موازی‌سازی را پوشش می‌دهند:

  • Worktrees: نشست‌های موازیِ ایزوله روی شاخه‌های جداگانه اجرا کن
  • Checkpointing: کد و گفت‌وگو را به نقطه‌ای قبل‌تر برگردان
  • پنجره‌ی کانتکست: چه چیزی کانتکست را پُر می‌کند و چه چیزی از compaction جان به‌در می‌برد
  • حالتِ غیرتعاملی: رفتارِ نشست تحتِ claude -p