Skip to main content
BlogSoftware Development

Fullscreen Claude Code: Bebas Kedip, Dengan Pertukarannya

Fullscreen rendering menghapus kedipan dan meratakan memori dengan menggambar di alternate screen. Ongkosnya scrollback dan seleksi mouse asli, dan keduanya bisa ditebus.

Matthews Wong

Software Engineer

Agustus 202612 menit baca
Fullscreen Claude Code: Bebas Kedip, Dengan Pertukarannya

Ringkasan Utama

Fullscreen rendering menggambar Claude Code di alternate screen buffer milik terminal, seperti yang dilakukan vim, dan hanya merender pesan yang sedang terlihat. Kedipan hilang dan pemakaian memori tetap rata berapa pun panjang percakapannya. Ongkosnya, pencarian dan seleksi asli terminal Anda tidak lagi melihat percakapannya, karena ia tidak lagi berada di scrollback.

Saya beralih ke fullscreen rendering karena posisi gulir saya terus melompat ke atas selagi Claude bekerja, dan itu langsung teratasi sepenuhnya pada percobaan pertama. Lalu saya hendak mencari isi percakapan dengan fitur find terminal, dan tidak ada apa pun untuk ditemukan. Percakapannya masih ada — ia hanya tidak lagi berada di tempat yang bisa dilihat terminal saya.

Pertukaran itulah seluruh cerita mode ini, dan kedua sisinya bisa ditebus kalau Anda tahu jalan keluarnya. Tulisan ini membahas apa yang sebenarnya diubah fullscreen, bagaimana Anda bisa berada di dalamnya tanpa memilihnya, tombol transcript mode yang mengembalikan percakapan ke terminal, tiga tingkat untuk keluar dari mouse capture, serta penghitung gagal-mulai yang diam-diam mengembalikan Anda ke renderer klasik.

Apa yang sebenarnya dilakukannya

Fullscreen adalah jalur rendering berbeda, bukan mode jendela — namanya menggambarkan pengambilalihan permukaan gambar terminal seperti yang dilakukan vim, dan ia bekerja pada ukuran jendela berapa pun. Ia menggambar di alternate screen buffer dan hanya menyimpan pesan yang terlihat di dalam render tree, dan itulah sebabnya memorinya tetap konstan sepanjang apa pun percakapannya serta jumlah data yang dikirim ke terminal per pembaruan turun tajam.

Perbedaannya paling terasa di tempat throughput rendering menjadi hambatan: terminal bawaan VS Code, tmux, dan iTerm2. Cara tercepat mengetahui renderer mana yang sedang aktif adalah kotak input — kalau ia tetap diam di bawah selagi Claude bekerja alih-alih bergerak seiring keluaran mengalir, fullscreen sedang aktif.

Berpindah, dan kapan ia menolak

Anda bisa berpindah di tengah sesi dan mempertahankan percakapannya, karena Claude Code meluncurkan ulang lalu membawa keadaan sesinya. Apa yang dibawanya spesifik, dan apa yang menghentikannya juga spesifik.

# Switch mid-session. Claude Code saves the tui setting and
# RELAUNCHES with your conversation intact.
/tui fullscreen
/tui default
/tui               # print which renderer is active, and why

# Or before launch:
CLAUDE_CODE_NO_FLICKER=1 claude

# It carries over: the conversation as it appears on screen,
# your permission mode, effort level, the model you last picked,
# and your allowed-tools, agent and append-system-prompt flags.
#
# It REFUSES to relaunch when the session holds a restriction it
# cannot pass on — a --system-prompt replacement, a --tools
# allowlist, --setting-sources, or deny/ask rules a hook added
# for this session only. It prints the reasons and changes
# nothing.

Peluncuran ulangnya membawa percakapan sebagaimana tampak di layar, dan itu penting setelah sebuah rewind. Kalau Anda melakukan rewind melewati tiga pesan terakhir, sesi yang diluncurkan ulang terbuka tanpa pesan-pesan itu — transkrip lebih panjang di disk bukanlah yang kembali. Lakukan rewind ke sebelum pesan pertama Anda dan Anda meluncurkan ulang dengan percakapan kosong. Layak diketahui sebelum Anda berpindah renderer untuk merapikan sesi yang baru saja Anda rewind.

Mengembalikan percakapan ke terminal Anda

Inilah bagian yang terlalu cepat orang menyerah. Percakapannya tidak hilang, ia berada di buffer yang tak terjangkau pencarian terminal Anda — dan ada satu tombol yang mengembalikannya.

Tiga hal yang bekerja berbeda, dan penggantinya masing-masing:

SebelumnyaDi fullscreenCatatan
Find terminal atau pencarian tmuxTranscript mode, lalu garis miring untuk mencariAtau tombol kurung siku untuk menulis semuanya ke scrollback asli
Seleksi klik-dan-seret asliSeleksi di dalam aplikasi, disalin saat tombol mouse dilepasTahan tombol modifier terminal Anda untuk seleksi asli sekali pakai
Modifier-klik untuk membuka URLCommand-klik di macOS, Control-klik di tempat lainKlik biasa sengaja tidak membuka tautan
# The conversation lives in the alternate screen buffer, so
# your terminal's own search cannot see it. The way back:

Ctrl+O        toggle transcript mode
    /         open search; Enter accepts, Esc restores position
    n / N     next / previous match, even after closing search
    { / }     jump to the previous / next PROMPT
    g / G     top / bottom
    [         write the WHOLE conversation into your terminal's
              native scrollback, tool output expanded. Now Cmd+F
              and tmux copy mode work on it. Lasts until you exit
              transcript mode.
    v         write it to a temp file and open $VISUAL or $EDITOR

/focus        a quieter view: your last prompt, one line per tool
              call with edit diffstats, and the final response.
              Persists across sessions.

# You can scroll back past compaction. Claude works from the
# summary, but fullscreen keeps every earlier message in its
# own scrollback across repeated compactions.

Mouse capture, dan tiga jalan keluar

Mouse capture adalah titik gesekan paling umum, terutama lewat SSH atau di dalam tmux, karena copy-on-select terminal Anda berhenti bekerja — seleksinya hidup di dalam Claude Code alih-alih di buffer seleksi terminal. Ada tiga tingkat untuk keluar, dan kebanyakan orang meraih yang terbesar padahal yang lebih kecil sudah cukup.

# Mouse capture is the most common friction point, especially
# over SSH or in tmux. Three levels of opting out:

# 1. Keep everything, copy manually instead of on select:
#    toggle "Copy on select" off in /config

# 2. Keep wheel scrolling, drop click/drag/hover:
CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1

# 3. Give the mouse back to the terminal entirely, keeping the
#    flicker-free rendering and flat memory:
CLAUDE_CODE_DISABLE_MOUSE=1

# For a ONE-OFF native selection, hold your terminal's key:
#   Terminal.app          Fn
#   iTerm2                Option
#   VS Code and Cursor    Shift (or Option on macOS with
#                         macOptionClickForcesSelection on)
#   most others           Shift

# Scroll feels slow? Some terminals send one event per notch
# with no multiplier. VS Code's terminal is one of them.
export CLAUDE_CODE_SCROLL_SPEED=3      # 3 matches vim's default
# Or run /scroll-speed for a live ruler you can feel.

Claude Code memang menulis seleksinya ke clipboard sistem Anda, memakai jalur yang sesuai setup Anda: perkakas clipboard asli saat lokal, paste buffer tmux di dalam tmux, dan escape sequence terminal lewat SSH. Ia menampilkan toast setelah tiap penyalinan yang menyebut jalur yang dipakainya, dan itu cara tercepat mengetahui bahwa terminal Anda memblokir jalur escape sequence — iTerm2 memblokirnya secara default sampai Anda mengizinkan akses clipboard, dan perintah terminal-setup menyalakannya untuk Anda.

tmux, dengan tiga catatan

Fullscreen bekerja di dalam tmux, dan masing-masing hal ini akan terlihat seperti bug kalau Anda tidak mengetahuinya:

  • Gulir roda mouse butuh mode mouse milik tmux diaktifkan, atau event roda mouse menuju tmux alih-alih Claude Code. Gulir dengan keyboard tetap bekerja, dan Claude Code menampilkan petunjuk sekali kalau mendeteksi situasi ini.
  • Ia tidak kompatibel dengan mode integrasi tmux milik iTerm2. Di sana, alternate screen buffer dan pelacakan mouse tidak bekerja dengan benar — roda mouse tidak melakukan apa-apa dan klik ganda bisa merusak keadaan terminal. tmux biasa di dalam iTerm2 baik-baik saja.
  • Rilis tmux seri 3.6 ke bawah tidak mengimplementasikan synchronized output, jadi Anda bisa melihat lebih banyak kedipan di bawahnya daripada saat menjalankan Claude Code langsung di terminal.

Kalau Anda melihat serpihan keluaran lama tertinggal di layar sampai jendelanya diubah ukuran, itu terminal yang menggabungkan penulisan inkremental secara keliru — paling sering Windows Terminal dan host berbasis ConPTY lainnya. Ada environment variable yang menggambar ulang setiap sel pada tiap frame alih-alih mengirim pembaruan inkremental, dan itu memperbaikinya dengan sedikit ongkos throughput.

Penghitung gagal-mulai

Kalau sebuah sesi fullscreen crash sebelum sempat mulai dengan sukses, Claude Code menempatkan sesi Anda berikutnya di renderer klasik dan memberi tahu Anda. Sebuah sesi dihitung berhasil mulai begitu ia menggambar frame pertamanya lalu bertahan sepuluh detik atau diakhiri dengan sengaja. Setelah satu kali gagal, ia mencoba fullscreen lagi berikutnya; setelah dua kali, ia bertahan di renderer klasik sampai Anda memperbarui Claude Code atau meminta fullscreen secara eksplisit.

Itu layak diketahui karena keadaan kedua tidak mencetak apa pun di sesi berikutnya — Anda sekadar berada di renderer klasik tanpa penjelasan di layar. Menjalankan perintah tui tanpa argumen memberi tahu renderer mana yang aktif dan, selama gagal-mulai adalah sebabnya, menyatakannya di baris renderer saat ini. Itu selisih antara jawaban lima detik dan satu sore penuh kebingungan.

Memutuskan apakah perlu memakainya

Tiga pertanyaan menuntaskannya, dengan urutan ini:

  1. Apakah layar Anda berkedip, atau posisi gulirnya melompat selagi Claude bekerja? Kalau ya, fullscreen memperbaiki persis itu, dan itulah alasan keberadaannya.
  2. Apakah Anda terus-menerus mengandalkan pencarian dan seleksi asli terminal? Kalau iya, pelajari dulu tombol transcript mode sebelum berpindah, atau Anda akan kembali dalam sehari karena alasan yang punya jawaban satu tombol.
  3. Apakah Anda berada di mode integrasi tmux milik iTerm2? Kalau ya, jangan aktifkan di sana sama sekali — kombinasi itu memang rusak, bukan sekadar canggung.

Fullscreen adalah research preview dan berperilaku seperti research preview yang baik: ia menyelesaikan satu masalah spesifik yang menjengkelkan secara tuntas, dan ia jujur soal ongkosnya. Dua tombol yang membuatnya bertahan bagi saya adalah toggle transcript dan tombol kurung siku yang menulis semuanya kembali ke scrollback asli — dengan keduanya, sebenarnya tidak ada yang hilang, hanya berjarak satu ketukan lebih jauh daripada sebelumnya. Kalau kedipan tidak mengganggu Anda, tidak ada alasan untuk berpindah.

FAQ

Pertanyaan Umum

Jawaban singkat untuk pertanyaan yang paling sering diajukan pembaca tentang topik ini.

Apa itu fullscreen rendering di Claude Code?

Sebuah jalur rendering alternatif yang menggambar antarmuka di alternate screen buffer milik terminal, seperti vim atau htop, dan hanya merender pesan yang sedang terlihat. Ia menghapus kedipan, menjaga memori tetap rata pada percakapan panjang, dan menambahkan dukungan mouse. Namanya menggambarkan pengambilalihan permukaan gambar, bukan memaksimalkan jendela Anda.

Bagaimana mencari isi percakapan di mode fullscreen Claude Code?

Find terminal Anda tidak bisa melihatnya, karena percakapannya hidup di alternate screen buffer. Tekan Ctrl+O untuk transcript mode, lalu garis miring untuk mencari, dengan n dan N untuk hasil berikutnya dan sebelumnya. Menekan tombol kurung siku menulis seluruh percakapan ke scrollback asli terminal Anda sehingga pencarian asli berfungsi lagi.

Bagaimana mengembalikan seleksi teks asli di Claude Code?

Ada tiga tingkat. Matikan Copy on select di /config untuk menyalin manual; setel CLAUDE_CODE_DISABLE_MOUSE_CLICKS untuk mempertahankan gulir roda tetapi membuang klik dan seret; atau setel CLAUDE_CODE_DISABLE_MOUSE untuk mengembalikan mouse sepenuhnya sambil mempertahankan rendering bebas kedip. Untuk seleksi sekali pakai, tahan tombol modifier terminal Anda.

Kenapa Claude Code kembali ke renderer klasik dengan sendirinya?

Kemungkinan sebuah sesi fullscreen crash sebelum sempat mulai dengan sukses. Setelah satu kali gagal, Claude Code mencoba fullscreen lagi di sesi berikutnya; setelah dua kali, ia bertahan di klasik sampai Anda memperbarui Claude Code atau menjalankan /tui fullscreen — dan tidak mencetak apa pun di sesi-sesi berikutnya. Jalankan /tui tanpa argumen untuk melihat apakah gagal-mulai penyebabnya.

Apakah fullscreen rendering Claude Code bekerja di tmux?

Ya, dengan tiga catatan. Gulir roda mouse butuh mode mouse tmux diaktifkan. Ia tidak kompatibel dengan mode integrasi tmux milik iTerm2, tempat alternate screen dan pelacakan mouse berulah. Dan rilis tmux seri 3.6 ke bawah tidak punya synchronized output, jadi Anda bisa melihat lebih banyak kedipan daripada menjalankannya langsung di terminal.