رفتن به محتوا

رندرینگِ تمام‌صفحه

رندرینگِ تمام‌صفحه یک مسیرِ رندرینگِ جایگزین برای Claude Code CLI است که سوسوزدن (flicker) را از بین می‌برد، مصرفِ حافظه را در گفتگوهای طولانی ثابت نگه می‌دارد و پشتیبانیِ ماوس اضافه می‌کند. رابط را روی بافرِ صفحه‌ی جایگزینِ ترمینال می‌کشد، مثلِ vim یا htop، و فقط پیام‌هایی که در حالِ حاضر قابلِ‌مشاهده‌اند را رندر می‌کند. این مقدارِ داده‌ای که در هر به‌روزرسانی به ترمینالت ارسال می‌شود را کاهش می‌دهد.

تفاوت بیشتر در شبیه‌سازهای ترمینالی محسوس است که توانِ عبوریِ رندرینگ در آن‌ها گلوگاه است، مثلِ ترمینالِ یکپارچه‌ی VS Code، tmux و iTerm2. اگر موقعیتِ اسکرولِ ترمینالت هنگام کار کردنِ Claude به بالا می‌پرد، یا صفحه هنگام جاری‌شدنِ خروجیِ ابزار چشمک می‌زند، این حالت آن‌ها را برطرف می‌کند.

/tui fullscreen را درونِ هر گفتگوی Claude Code اجرا کن. CLI تنظیمِ tui را ذخیره می‌کند و با گفتگوی دست‌نخورده‌ات دوباره در حالتِ تمام‌صفحه راه‌اندازی می‌شود، پس می‌توانی بدونِ از دست دادنِ کانتکست در میانه‌ی نشست سوییچ کنی. /tui را بدونِ آرگومان اجرا کن تا چاپ کند کدام رندرر فعال است.

می‌توانی متغیرِ محیطیِ CLAUDE_CODE_NO_FLICKER را هم پیش از شروعِ Claude Code تنظیم کنی:

Terminal window
CLAUDE_CODE_NO_FLICKER=1 claude

تنظیمِ tui و متغیرِ محیطی معادلِ هم هستند. دستورِ /tui متغیرِ CLAUDE_CODE_NO_FLICKER را از فرایندِ دوباره‌راه‌اندازی‌شده پاک می‌کند تا تنظیمی که می‌نویسد اثر کند.

رندرینگِ تمام‌صفحه نحوه‌ی کشیدنِ CLI روی ترمینالت را تغییر می‌دهد. جعبه‌ی ورودی به‌جای جابه‌جا شدن هنگام جاری‌شدنِ خروجی، ثابت در پایینِ صفحه می‌ماند. اگر ورودی هنگام کار کردنِ Claude سرِ جایش بماند، رندرینگِ تمام‌صفحه فعال است. فقط پیام‌های قابلِ‌مشاهده در درختِ رندر نگه داشته می‌شوند، پس حافظه صرف‌نظر از طولِ گفتگو ثابت می‌ماند.

چون گفتگو در بافرِ صفحه‌ی جایگزین زندگی می‌کند نه در scrollbackِ ترمینالت، چند چیز متفاوت کار می‌کنند:

قبلحالاجزئیات
Cmd+f یا جستجوی tmux برای یافتنِ متنCtrl+o برای حالتِ رونوشت، سپس / برای جستجو یا [ برای نوشتن در scrollbackجستجو و مرورِ گفتگو
کلیک-و-کشِ بومیِ ترمینال برای انتخاب و کپیانتخابِ درون‌برنامه‌ای، هنگام رها کردنِ ماوس خودکار کپی می‌کنداستفاده از ماوس
Cmd-کلیک برای باز کردنِ یک URLروی URL کلیک کناستفاده از ماوس

اگر تسخیرِ ماوس با ورک‌فلوی تو تداخل دارد، می‌توانی آن را خاموش کنی در حالی که رندرینگِ بدونِ سوسو را حفظ می‌کنی.

رندرینگِ تمام‌صفحه رویدادهای ماوس را تسخیر می‌کند و درونِ Claude Code آن‌ها را مدیریت می‌کند:

  • در ورودیِ پرامپت کلیک کن تا مکان‌نمایت را هر جای متنی که تایپ می‌کنی قرار دهی.
  • روی یک پیشنهاد در فهرستِ دستورِ / یا فایلِ @ کلیک کن تا بپذیری‌اش. نگه‌داشتنِ ماوس روی ردیفِ زیرِ مکان‌نمایت آن را برجسته می‌کند.
  • روی یک نتیجه‌ی ابزارِ جمع‌شده کلیک کن تا گسترده‌اش کنی و خروجیِ کامل را ببینی. دوباره کلیک کن تا جمع شود. فراخوانیِ ابزار و نتیجه‌اش با هم گسترده می‌شوند. فقط پیام‌هایی که چیزی بیشتر برای نشان دادن دارند قابلِ‌کلیک‌اند.
  • روی یک URL یا مسیرِ فایل کلیک کن تا بازش کنی. مسیرهای فایل در خروجیِ ابزار، مثلِ آن‌هایی که پس از یک Edit یا Write چاپ می‌شوند، در برنامه‌ی پیش‌فرضت باز می‌شوند. URLهای ساده‌ی http:// و https:// در مرورگرت باز می‌شوند. در بیشترِ ترمینال‌ها این جایگزینِ Cmd-کلیک یا Ctrl-کلیکِ بومی می‌شود، که تسخیرِ ماوس رهگیری‌شان می‌کند. در ترمینالِ یکپارچه‌ی VS Code و ترمینال‌های مشابهِ مبتنی بر xterm.js، همچنان از Cmd-کلیک استفاده کن. Claude Code آنجا به مدیریت‌کننده‌ی لینکِ خودِ ترمینال احترام می‌گذارد تا از باز شدنِ دوباره‌ی لینک‌ها جلوگیری شود.
  • کلیک و کشیدن کن تا متنی هر جای گفتگو را انتخاب کنی. دابل‌کلیک یک کلمه را انتخاب می‌کند، منطبق با مرزهای کلمه‌ی iTerm2 پس یک مسیرِ فایل به‌عنوانِ یک واحد انتخاب می‌شود. سه‌بار-کلیک خط را انتخاب می‌کند.
  • با چرخِ ماوس اسکرول کن تا در گفتگو حرکت کنی.

متنِ انتخاب‌شده هنگام رها کردنِ ماوس خودکار به کلیپ‌بوردت کپی می‌شود. برای خاموش کردنِ این، گزینه‌ی Copy on select را در /config خاموش کن. با خاموش بودنش، Ctrl+Shift+c را بزن تا دستی کپی کنی. در ترمینال‌هایی که از پروتکلِ صفحه‌کلیدِ kitty پشتیبانی می‌کنند، مثلِ kitty، WezTerm، Ghostty و iTerm2، Cmd+c هم کار می‌کند. اگر انتخابی فعال داشته باشی، Ctrl+c به‌جای لغو، کپی می‌کند.

با انتخابی فعال، Shift را نگه دار و کلیدهای جهت‌دار را بزن تا آن را از صفحه‌کلید گسترش دهی. Shift+↑ و Shift+↓ وقتی انتخاب به لبه‌ی بالا یا پایین می‌رسد viewport را اسکرول می‌کنند. Shift+Home و Shift+End تا آغاز یا پایانِ خطِ جاری گسترش می‌دهند.

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

میان‌براکشن
PgUp / PgDnاسکرولِ بالا یا پایین به اندازه‌ی نیم‌صفحه
Ctrl+Homeپرش به آغازِ گفتگو
Ctrl+Endپرش به آخرین پیام و فعال‌سازیِ دوباره‌ی auto-follow
چرخِ ماوساسکرولِ چند خط در هر بار

روی صفحه‌کلیدهای بدونِ کلیدهای اختصاصیِ PgUp، PgDn، Home یا End، مثلِ صفحه‌کلیدهای MacBook، Fn را با کلیدهای جهت‌دار نگه دار: Fn+↑ معادلِ PgUp است، Fn+↓ معادلِ PgDn، Fn+← معادلِ Home، و Fn+→ معادلِ End. این باعث می‌شود Ctrl+Fn+→ میان‌برِ پرش-به-پایین باشد. اگر این ناجور است، با چرخِ ماوس به پایین اسکرول کن تا دنبال‌کردن از سر گرفته شود، یا scroll:bottom را به چیزی دسترس‌پذیر rebind کن.

این اکشن‌ها قابلِ‌rebind هستند. برای فهرستِ کاملِ نام‌های اکشن، از جمله گونه‌های نیم‌صفحه و تمام‌صفحه که binding پیش‌فرض ندارند، اکشن‌های اسکرول را ببین.

اسکرول به بالا auto-follow را موقتاً متوقف می‌کند تا خروجیِ جدید تو را به پایین برنگرداند. Ctrl+End را بزن یا به پایین اسکرول کن تا دنبال‌کردن از سر گرفته شود.

برای خاموش کردنِ کاملِ auto-follow تا نما همان‌جا که رهایش می‌کنی بماند، /config را باز کن و Auto-scroll را روی off بگذار. با غیرفعال بودنِ auto-scroll، نما هرگز خودش به پایین نمی‌پرد. درخواست‌های دسترسی و دیالوگ‌های دیگری که به پاسخ نیاز دارند صرف‌نظر از این تنظیم همچنان به نما اسکرول می‌شوند.

اسکرول با چرخِ ماوس مستلزمِ آن است که ترمینالت رویدادهای ماوس را به Claude Code بفرستد. بیشترِ ترمینال‌ها هر وقت برنامه‌ای درخواستش کند این کار را می‌کنند. iTerm2 آن را یک تنظیمِ هر-پروفایل می‌کند: اگر چرخ هیچ کاری نمی‌کند ولی PgUp و PgDn کار می‌کنند، Settings → Profiles → Terminal را باز کن و Enable mouse reporting را روشن کن. همین تنظیم برای کارکردنِ کلیک-برای-گسترش و انتخابِ متن هم لازم است.

اگر اسکرول با چرخِ ماوس کند به‌نظر می‌رسد، ممکن است ترمینالت در هر دندانه‌ی فیزیکی یک رویدادِ اسکرول بدونِ ضریب بفرستد. برخی ترمینال‌ها، مثلِ Ghostty و iTerm2 با اسکرولِ سریع‌تر فعال، از پیش رویدادهای چرخ را تقویت می‌کنند. بقیه، از جمله ترمینالِ یکپارچه‌ی VS Code، دقیقاً یک رویداد در هر دندانه می‌فرستند. Claude Code نمی‌تواند تشخیص دهد کدام است.

CLAUDE_CODE_SCROLL_SPEED را تنظیم کن تا فاصله‌ی اسکرولِ پایه را چند برابر کنی:

Terminal window
export CLAUDE_CODE_SCROLL_SPEED=3

مقدارِ 3 با پیش‌فرضِ vim و برنامه‌های مشابه می‌خواند. این تنظیم مقادیر ۱ تا ۲۰ را می‌پذیرد، و مقادیرِ کسریِ زیرِ ۱ مثلِ 0.5 برای کند کردنِ اسکرولِ شتاب‌دارِ trackpad و چرخ در ترمینال‌هایی که روی مسیرِ اسکرولِ بومی‌اند.

برای تنظیمِ تعاملیِ سرعتِ اسکرول، /scroll-speed را اجرا کن. دیالوگ یک خط‌کش نشان می‌دهد که می‌توانی هنگام باز بودنش اسکرولش کنی تا تغییر را فوری حس کنی. و را برای تنظیم بزن، r را برای بازنشانی به پیش‌فرضِ خودکار-تشخیص‌داده‌شده، و Enter را برای ذخیره. این دستور همان مقداری را می‌نویسد که متغیرِ محیطیِ CLAUDE_CODE_SCROLL_SPEED تنظیم می‌کند، که در ~/.claude/settings.json پایدار می‌شود. این دستور در ترمینالِ JetBrains IDE در دسترس نیست.

جدا از سرعتِ پایه، Claude Code وقتی چرخ را سریع می‌چرخانی نرخِ اسکرول را شتاب می‌دهد، پس یک چرخشِ سریع مسافتِ بیشتری از همان تعداد دندانه‌ی آهسته می‌پیماید. {/* min-version: 2.1.174 */}برای خاموش کردنِ شتاب و حفظِ نرخِ ثابت در هر دندانه، wheelScrollAccelerationEnabled را در settings.json روی false بگذار. این تنظیم به Claude Code نسخه‌ی v2.1.174 یا بالاتر نیاز دارد.

در ترمینالِ JetBrains IDE، Claude Code مدیریتِ اسکرولِ خودش را اعمال می‌کند و CLAUDE_CODE_SCROLL_SPEED را نادیده می‌گیرد. این ترمینال رویدادهای اسکرول را با نرخی بسیار بالاتر از سایر شبیه‌سازها می‌فرستد، پس ضریبی که جای دیگر تنظیم شده اینجا بیش از حد می‌رود.

در ۲۰۲۵٫۲، ترمینال باگ‌های چرخِ-اسکرول هم دارد که کلیدهای جهت‌دارِ نادرست و رویدادهای جهتِ-اشتباه تولید می‌کنند. Claude Code این‌ها را در زمانِ اجرا تشخیص می‌دهد و خودکار رفعشان می‌کند، پس اسکرول با trackpad و چرخِ ماوس بدونِ پیکربندی کار می‌کند. برای بهترین تجربه‌ی اسکرول، به ۲۰۲۵٫۳ یا بالاتر ارتقا بده. Claude Code اگر باگ را تشخیص دهد، اولین باری که اسکرول می‌کنی یک راهنمایی نشان می‌دهد.

Ctrl+o بینِ پرامپتِ عادی و حالتِ رونوشت سوییچ می‌کند. برای نمایی آرام‌تر که فقط آخرین پرامپتت، یک خلاصه‌ی یک‌خطی از فراخوانی‌های ابزار همراه با diffstatِ ویرایش‌ها، و پاسخِ نهایی را نشان می‌دهد، /focus را اجرا کن. این تنظیم بین نشست‌ها باقی می‌ماند. /focus را دوباره اجرا کن تا خاموش شود.

حالتِ رونوشت پیمایش و جستجوی سبکِ less می‌گیرد:

کلیداکشن
/بازکردنِ جستجو. تایپ کن تا تطابق‌ها را بیابی، Enter برای پذیرش، Esc برای لغو و بازگرداندنِ موقعیتِ اسکرولت
n / Nپرش به تطابقِ بعدی یا قبلی. پس از بستنِ نوارِ جستجو کار می‌کند
j / k یا / اسکرولِ یک خط
g / G یا Home / Endپرش به بالا یا پایین
Ctrl+u / Ctrl+dاسکرولِ نیم‌صفحه
Ctrl+b / Ctrl+f یا Space / bاسکرولِ تمام‌صفحه
Ctrl+o، Esc یا qخروج از حالتِ رونوشت و بازگشت به پرامپت

Cmd+fِ ترمینالت و جستجوی tmux گفتگو را نمی‌بینند چون در بافرِ صفحه‌ی جایگزین زندگی می‌کند، نه در scrollbackِ بومی. برای بازگرداندنِ محتوا به ترمینالت، ابتدا Ctrl+o را بزن تا واردِ حالتِ رونوشت شوی، سپس:

  • [: کلِ گفتگو را با همه‌ی خروجیِ ابزارِ گسترده‌شده در بافرِ scrollbackِ بومیِ ترمینالت می‌نویسد. گفتگو حالا متنِ معمولی در ترمینالت است، پس Cmd+f، حالتِ کپیِ tmux و هر ابزارِ بومیِ دیگر می‌تواند آن را جستجو یا انتخاب کند. نشست‌های طولانی ممکن است لحظه‌ای هنگام انجامِ این کار مکث کنند. این تا وقتی با Esc یا q از حالتِ رونوشت خارج شوی پابرجاست، که تو را به رندرینگِ تمام‌صفحه برمی‌گرداند. Ctrl+oِ بعدی از نو شروع می‌کند.
  • v: گفتگو را در یک فایلِ موقت می‌نویسد و آن را در $VISUAL یا $EDITOR باز می‌کند.

Esc یا q را بزن تا به پرامپت برگردی.

Ctrl+L را دو بار ظرفِ دو ثانیه بزن تا /clear اجرا شود و گفتگوی جدیدی شروع کنی. فشارِ اول صفحه را دوباره می‌کشد و یک راهنمایی نشان می‌دهد؛ فشارِ دوم گفتگو را پاک می‌کند. روی macOS، دوبار-فشردنِ Cmd+K هم /clear را اجرا می‌کند.

رندرینگِ تمام‌صفحه درونِ tmux کار می‌کند، با سه نکته.

اسکرول با چرخِ ماوس به حالتِ ماوسِ tmux نیاز دارد. اگر ~/.tmux.confِ تو از پیش آن را فعال نکرده، این خط را اضافه کن و کانفیگت را reload کن:

Terminal window
set -g mouse on

بدونِ حالتِ ماوس، رویدادهای چرخ به‌جای Claude Code به tmux می‌روند. اسکرولِ صفحه‌کلیدی با PgUp و PgDn به هر حال کار می‌کند. Claude Code اگر tmux را با حالتِ ماوسِ خاموش تشخیص دهد یک راهنماییِ یکباره در راه‌اندازی چاپ می‌کند.

رندرینگِ تمام‌صفحه با حالتِ یکپارچگیِ tmuxِ iTerm2 ناسازگار است، یعنی همان حالتی که با tmux -CC واردش می‌شوی. در حالتِ یکپارچگی، iTerm2 هر paneِ tmux را به‌عنوانِ یک splitِ بومی رندر می‌کند به‌جای اینکه بگذارد tmux روی ترمینال بکشد. بافرِ صفحه‌ی جایگزین و ردیابیِ ماوس آنجا درست کار نمی‌کنند: چرخِ ماوس هیچ کاری نمی‌کند، و دابل‌کلیک می‌تواند وضعیتِ ترمینال را خراب کند. در نشست‌های tmux -CC رندرینگِ تمام‌صفحه را فعال نکن. tmuxِ معمولی درونِ iTerm2، بدونِ -CC، خوب کار می‌کند.

tmux از خروجیِ همگام‌شده پشتیبانی نمی‌کند، پس ممکن است هنگامِ بازکشیدن‌ها سوسوزدنِ بیشتری ببینی نسبت به وقتی Claude Code را مستقیم در ترمینالت اجرا می‌کنی. اگر سوسو محسوس است، به‌ویژه روی SSH، Claude Code را در تبِ ترمینالِ خودش بیرون از tmux اجرا کن.

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

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

  • macOS: pbcopy
  • Linux: wl-copy روی Wayland، یا xclip یا xsel روی X11، هرکدام که نصب باشد. Claude Code هم کلیپ‌بورد و هم انتخابِ PRIMARY را می‌نویسد، پس میان‌کلیک-paste کار می‌کند.
  • Windows و WSL: Set-Clipboardِ PowerShell

درونِ tmux به بافرِ pasteِ tmux هم می‌نویسد. روی SSH به دنباله‌های escapeِ OSC 52 برمی‌گردد. Claude Code پس از هر کپی یک toast چاپ می‌کند که به تو می‌گوید کدام مسیر را استفاده کرده.

برخی ترمینال‌ها OSC 52 را به‌صورت پیش‌فرض مسدود می‌کنند. iTerm2 آن را مسدود می‌کند تا وقتی Settings → General → Selection → Applications in terminal may access clipboard را روشن کنی؛ اجرای /terminal-setup در iTerm2 این را برایت فعال می‌کند.

برای یک انتخابِ بومیِ یکباره، کلیدی که باید استفاده کنی به ترمینالت بستگی دارد:

  • Terminal.app: Fn
  • iTerm2: Option
  • VS Code، Cursor و Devin Desktop: Shift، یا Option روی macOS با فعال بودنِ تنظیمِ terminal.integrated.macOptionClickForcesSelection
  • بیشترِ ترمینال‌های دیگر: Shift

آن کلید را هنگام کلیک و کشیدن نگه دار. ترمینالت خودش انتخاب را به‌جای پاس دادن به Claude Code مدیریت می‌کند، پس میان‌برهای کپی مثلِ Cmd+C روی آنچه انتخاب می‌کنی کار می‌کنند. Claude Code کلیدِ درست را در راهنماییِ روی‌صفحه‌اش هم نشان می‌دهد.

روی SSH یا درونِ tmux، Claude Code همیشه نمی‌تواند ترمینالی که از آن وصل می‌شوی را تشخیص دهد، پس راهنمایی به‌جای آن کلیدهای کاندید را فهرست می‌کند.

اگر همیشه به انتخابِ بومی تکیه می‌کنی، CLAUDE_CODE_DISABLE_MOUSE=1 را تنظیم کن تا از تسخیرِ ماوس خارج شوی در حالی که رندرینگِ بدونِ سوسو و حافظه‌ی ثابت را حفظ می‌کنی:

Terminal window
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude

با غیرفعال بودنِ تسخیرِ ماوس، اسکرولِ صفحه‌کلیدی با PgUp، PgDn، Ctrl+Home و Ctrl+End همچنان کار می‌کند، و ترمینالت انتخاب را به‌صورتِ بومی مدیریت می‌کند. کلیک-برای-قرار-دادنِ-مکان‌نما، کلیک-برای-گسترشِ خروجیِ ابزار، کلیکِ URL و اسکرولِ چرخی درونِ Claude Code را از دست می‌دهی.

رندرینگِ تمام‌صفحه یک قابلیتِ research preview است. روی شبیه‌سازهای ترمینالیِ رایج آزمایش شده، اما ممکن است روی ترمینال‌های کم‌رایج‌تر یا پیکربندی‌های غیرعادی با مشکلاتِ رندرینگ روبه‌رو شوی.

اگر به مشکلی برخوردی، /feedback را درونِ Claude Code اجرا کن تا گزارشش دهی، یا یک issue روی مخزنِ GitHubِ claude-code باز کن. نام و نسخه‌ی شبیه‌سازِ ترمینالت را بگنجان.

برای خاموش کردنِ رندرینگِ تمام‌صفحه، /tui default را اجرا کن، یا اگر از آن راه فعالش کرده بودی CLAUDE_CODE_NO_FLICKER را unset کن. برای اجبارِ رندررِ کلاسیک صرف‌نظر از تنظیمِ ذخیره‌شده‌ی tui، CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 را تنظیم کن. رندررِ کلاسیک گفتگو را در scrollbackِ بومیِ ترمینالت نگه می‌دارد پس Cmd+f و حالتِ کپیِ tmux طبقِ معمول کار می‌کنند.

نشست‌های پس‌زمینه که از agent view یا claude attach باز می‌شوند همیشه رندرینگِ تمام‌صفحه را استفاده می‌کنند. ترمینالِ متصل‌شونده واردِ بافرِ صفحه‌ی جایگزین می‌شود تا نشست را نشان دهد، و رندررِ کلاسیک آنجا scrollback یا مدیریتِ ماوس ندارد، پس تنظیمِ tui و CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN به آن‌ها اعمال نمی‌شوند.