Claude Code, 깜빡임 없는 NO_FLICKER 모드 공개

3 hours ago 2
  • 기존 렌더러의 화면 깜박임·점프 현상을 해소하는 실험적 렌더러 도입
  • 대화가 길어져도 메모리·CPU 사용량이 일정하게 유지되며, 터미널 환경에서 마우스 클릭·커서 이동·UI 요소 클릭이 가능해짐
  • CLAUDE_CODE_NO_FLICKER=1 환경변수로 활성화
  • 기존 터미널 ANSI 코드의 구조적 한계로 뷰포트 밖 행을 다시 그리려면 전체 화면 지우기 코드를 써야 했으나, 새 렌더러는 뷰포트 전체를 가상화해 이 문제를 해결
  • native cmd-f 검색·복사-붙여넣기 미지원, 스크롤 물리 조정 미완성 등 트레이드오프가 남아 있어 실험적 단계임
  • 대화 내용이 스크롤백이 아닌 대체 화면 버퍼에 존재하므로 Ctrl+O로 Transcript 모드 진입 후 less 스타일 검색(/, n/N) 사용 가능
  • 입력창은 출력이 스트리밍되는 동안에도 화면 하단에 고정
  • 마우스로 커서 위치 조정·툴 결과 확장·URL/파일 경로 열기·텍스트 드래그 선택 등 인앱 마우스 이벤트 처리 지원

상세 내용은 클로드 코드 문서의 Fullscreen rendering 참고(아래 첨부)

풀스크린 렌더링

  • CLAUDE_CODE_NO_FLICKER=1 환경변수를 설정해 실행하거나, ~/.zshrc / ~/.bashrc에 export CLAUDE_CODE_NO_FLICKER=1을 추가하면 모든 세션에 자동 적용
  • Claude Code v2.1.88 이상 필요, 현재 리서치 프리뷰 단계로 피드백에 따라 동작이 변경될 수 있음
  • "풀스크린"이라는 명칭은 터미널 창의 최대화와 무관하며, 어떤 창 크기에서도 작동

기존 방식 대비 변경 사항

  • 입력창이 출력이 스트리밍되는 동안에도 화면 하단에 고정됨 (입력창이 고정되어 있으면 풀스크린 렌더링 활성화 상태)
  • 대화 내용이 대체 화면 버퍼에 존재하므로 기존과 달라진 점:
기존 변경 후
Cmd+F 또는 tmux 검색으로 텍스트 탐색 Ctrl+O 후 /로 검색, 또는 [로 네이티브 스크롤백에 쓴 후 Cmd+F 사용
터미널 네이티브 드래그로 선택·복사 인앱 선택, 마우스 버튼 놓으면 자동 복사
Cmd-클릭으로 URL 열기 URL 클릭으로 열기

마우스 지원

  • 프롬프트 입력창 클릭: 텍스트 어디서든 커서 위치 지정
  • 접힌 툴 결과 클릭: 펼치거나 접기 (툴 호출과 결과가 함께 확장)
  • URL·파일 경로 클릭: 파일은 기본 앱으로 열리고, http:///https:// URL은 브라우저로 열림
    • VS Code 내장 터미널 등 xterm.js 기반 터미널에서는 링크를 두 번 열지 않도록 터미널 자체 링크 핸들러에 위임
  • 클릭 앤 드래그: 텍스트 선택 (더블클릭: 단어 선택, 트리플클릭: 줄 선택)
  • 마우스 휠: 대화 스크롤
  • 마우스 버튼을 놓으면 선택 텍스트가 클립보드에 자동 복사; /config에서 비활성화 가능

스크롤 단축키

단축키 동작
PgUp / PgDn 반 화면씩 위/아래 스크롤
Ctrl+Home 대화 맨 위로 이동
Ctrl+End 최신 메시지로 이동 및 자동 따라가기 재활성화
마우스 휠 몇 줄씩 스크롤
  • MacBook처럼 전용 키가 없는 키보드는 Fn+↑/↓/←/→으로 PgUp/PgDn/Home/End 대체
  • 위로 스크롤 시 자동 따라가기(auto-follow) 일시 중지; Ctrl+End 또는 맨 아래로 스크롤하면 재개
  • 단축키는 scroll:pageUp, scroll:pageDown 등의 액션명으로 키바인딩 커스터마이징 가능 (Keybindings 문서 참조)
  • CLAUDE_CODE_SCROLL_SPEED 환경변수로 마우스 휠 스크롤 속도 배율 조정 가능 (1~20, 기본 vim 기준 3 권장)

대화 검색·검토 (트랜스크립트 모드)

  • Ctrl+O로 트랜스크립트 모드 진입 시 less 스타일 탐색 및 검색 사용 가능
키 동작
/ 검색 열기 (Enter: 확인, Esc: 취소)
n / N 다음/이전 검색 결과 이동
j/k 또는 ↑/↓ 한 줄 스크롤
g/G 또는 Home/End 맨 위/아래로 이동
Ctrl+U / Ctrl+D 반 페이지 스크롤
[ 전체 대화를 터미널 네이티브 스크롤백에 기록 (Cmd+F 사용 가능)
v 임시 파일로 저장 후 $VISUAL/$EDITOR로 열기
Esc, q, Ctrl+O 트랜스크립트 모드 종료

tmux 사용 시 주의사항

  • tmux에서 마우스 휠 스크롤을 사용하려면 ~/.tmux.conf에 set -g mouse on 추가 필요
    • 마우스 모드 없이는 휠 이벤트가 tmux로 전달됨; PgUp/PgDn 키보드 스크롤은 정상 작동
    • tmux 마우스 모드가 꺼진 상태에서 시작 시 Claude Code가 일회성 안내 메시지 출력
  • tmux -CC (iTerm2 통합 모드) 와는 호환되지 않음
    • 이 모드에서는 대체 화면 버퍼와 마우스 추적이 올바르게 작동하지 않으며, 더블클릭 시 터미널 상태 손상 가능
    • -CC 없이 iTerm2 내에서 일반 tmux 사용은 정상 작동

네이티브 텍스트 선택 유지 방법

  • 마우스 캡처가 불편한 경우 CLAUDE_CODE_DISABLE_MOUSE=1 을 추가로 설정하면 마우스 캡처 없이 깜빡임 방지·일정 메모리 유지만 활성화 CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
  • 마우스 캡처 비활성화 시 키보드 스크롤(PgUp, PgDn, Ctrl+Home, Ctrl+End)은 유지되나, 클릭으로 커서 위치 지정·툴 결과 확장·URL 클릭·휠 스크롤은 비활성화
  • SSH 환경이나 tmux 내부에서 마우스 캡처 시 클립보드 경로가 달라지며, Claude Code는 복사 후 어떤 경로를 사용했는지 토스트로 알려줌

리서치 프리뷰 및 피드백

  • 주요 터미널 에뮬레이터에서 테스트되었으나, 비일반적인 터미널이나 특이한 설정에서는 렌더링 문제가 발생할 수 있음
  • 문제 발생 시 Claude Code 내에서 /feedback 명령어 실행 또는 claude-code GitHub 리포에 이슈 등록 (터미널 에뮬레이터 이름·버전 포함 필요)
  • 비활성화하려면 환경변수를 해제하거나 CLAUDE_CODE_NO_FLICKER=0 으로 설정
Read Entire Article