Claude Code, 깜빡임 없는 NO_FLICKER 모드 공개
(x.com/bcherny)- 기존 렌더러의 화면 깜박임·점프 현상을 해소하는 실험적 렌더러 도입
- 대화가 길어져도 메모리·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로 전달됨;
-
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으로 설정
GeekNews Weekly에 포함된 글입니다.
에디터 코멘트 보기
댓글과 토론
iterm -CC 사용으로 통합모드로 쓰는데요.. 이상한걸 잘 모르겠던데요...
오히려, 얼마전부터 랜더링 중에 스크롤하면, 최상단 강제 점프 되는 현상 때문에 불편했는데, 위치가 멈춰서면서 new message 알림으로 바뀌니 맘에 들어요. 좋네요..