개발 도구노트3분 읽기

tmux에서 Codex CLI 리사이즈 시 줄바꿈 어그러짐 줄이기

tmux 안에서 Codex CLI 창 너비를 바꿀 때 기존 출력의 줄바꿈이 어그러지는 현상을 대체 화면 설정으로 줄인 과정과 선택 기준을 정리한다.

tmux에서 Codex CLI 리사이즈 시 줄바꿈 어그러짐 줄이기

tmux 안에서 Codex CLI를 사용하다가 창 너비를 바꾸면 이미 출력된 한국어 문장과 구분선의 줄바꿈이 어색해지는 현상을 확인했다. 이 글은 당시 환경에서 확인한 조건과 대체 화면을 끄는 방식으로 증상을 줄인 과정을 정리한다.

확인한 조건

당시 tmux에는 세션별로 클라이언트가 하나씩만 연결되어 있었고, window-size 값은 latest였다. 여러 클라이언트가 서로 다른 창 크기를 강제하는 상황은 아니었으며, macOS 전체 화면 기능과도 관계가 없었다.

Codex CLI는 기본적으로 터미널의 대체 화면(Alternate Screen)을 사용할 수 있다. 대체 화면은 vim, htop, less처럼 프로그램이 별도의 화면 버퍼를 직접 그리는 방식이다. 프로그램을 종료하면 기존 셸 화면으로 돌아갈 수 있지만, tmux와 함께 사용할 때 창 크기 변경 후 과거에 그린 행이 자연스럽게 재배치되지 않을 수 있다.

이 조건에서는 대체 화면과 tmux·터미널의 리사이즈 처리 조합이 증상에 영향을 줬을 가능성이 높다고 추정했다. Codex 내부 버그를 별도 재현 테스트로 확정한 것은 아니다.

적용한 설정

사용자 전역 Codex 설정의 [tui] 섹션에 다음 값을 추가했다.

[tui]
animations = false
alternate_screen = "never"

리사이즈 증상과 직접 관련된 설정은 alternate_screen = "never"다. 이 값은 Codex를 대체 화면 대신 인라인 모드로 실행한다. 출력이 일반 터미널 스크롤백에 남기 때문에 창 크기를 바꿀 때 터미널과 tmux가 내용을 다시 배치하기 쉬워진다. animations = false는 당시 함께 적용한 별도 UI 설정이다.

Codex 설정 문서에서 tui.alternate_screen은 auto, always, never를 지원한다.

설정 확인

설정 변경 후 다음 명령을 실행했다.

codex --strict-config doctor --summary --no-color

설정 파일이 정상적으로 로드됐고 알 수 없는 설정 키 오류가 없었다. Codex CLI의 --no-alt-screen 도움말에서도 인라인 모드와 터미널 스크롤백 보존 동작을 확인했다.

실행 중인 Codex 프로세스는 시작할 때 설정을 읽으므로 변경 내용은 새로 시작하거나 재개한 세션부터 반영된다.

선택 기준과 되돌리기

당시 환경에서는 다음 조건에서 인라인 모드를 선택할 이유가 있었다.

  • 터미널 기본 스크롤백을 사용하고 싶을 때
  • 창 크기를 자주 바꿀 때
  • 프로그램을 종료한 뒤에도 출력을 남기고 싶을 때

반면 고정된 화면 안에서 정돈된 TUI를 사용하거나 종료 후 실행 화면을 남기고 싶지 않다면 대체 화면을 유지할 수 있다. 인라인 모드는 화면 전환과 정리 효과가 덜 깔끔하게 느껴질 수 있다.

리사이즈 안정성을 우선하면 never를 유지하고, 고정형 TUI 경험을 우선하면 alternate_screen 설정을 제거해 기본 동작으로 돌아갈 수 있다.