claudekit / updates / claude-code-2-1-238
[ PATCH · ]

Claude Code 2.1.238

프롬프트의 Ctrl+W를 Bash처럼 동작시키는 `keybindingFlavor` 설정이 추가됐습니다. 플러그인 마켓플레이스에는 명령을 실행해 HTTP 헤더를 만들어 내는 `headersHelper`가 들어왔고, 카탈로그 항목의 헬퍼는 설치, 업데이트 시점에 명령을 보여 준 뒤 확인을 받고 실행됩니다. 직접 운영하는 실행 서버에는 종료 신호를 받아도 붙어 있는 세션을 일정 시간 계속 처리하는 `--defer-shutdown-max-min`과, 연결마다 새 `Proxy-Authorization` 헤더를 요구하는 프록시용 옵션이 추가됐습니다. 긴 대화에서 메모리 사용량이 계속 늘어나던 문제, 출력 스타일이 세션 도중 기본 말투로 되돌아가던 문제, Remote Control의 연결과 메시지 전달에 몰려 있던 수정까지 30건이 넘는 변경이 함께 들어왔습니다.

공식 발표 →

이 글은 공식 문서를 바탕으로 요약·정리한 내용입니다.

무엇이 바뀌었나?

Claude Code 2.1.238이 2026년 8월 20일 출시됐습니다. 사내망처럼 인증이 필요한 환경을 겨냥한 변경이 중심입니다. 플러그인 마켓플레이스와 MCP가 매번 새 토큰을 만들어 쓸 수 있게 됐고, 직접 운영하는 실행 서버에는 종료와 프록시 인증을 다루는 옵션이 붙었습니다. 나머지는 긴 대화의 메모리 사용량, 터미널 입력과 화면 표시, 그리고 Remote Control 연결에 몰려 있던 30건이 넘는 개선과 수정입니다.

새 기능

  • keybindingFlavor 설정

    프롬프트에서 Ctrl+W를 눌렀을 때 지워지는 범위가 Bash 셸의 Ctrl+W와 달라, 셸 습관대로 입력하면 원하는 만큼 지워지지 않았습니다. 이제 keybindingFlavor를 "readline"으로 설정하면 Bash에서처럼 앞쪽 공백까지 지웁니다. 기본값 "classic"의 동작은 그대로입니다.

  • 플러그인 마켓플레이스의 headersHelper

    인증이 필요한 마켓플레이스는 요청마다 유효한 토큰이 필요한데, 설정 파일에 고정된 값을 적어 두는 방식으로는 유효 기간이 짧은 토큰을 다룰 수 없었습니다. 이제 url 방식 마켓플레이스나 카탈로그 항목에 headersHelper를 지정하면, 지정한 명령을 실행해 HTTP 헤더(유효 기간이 짧은 토큰 등)를 만들어 카탈로그와 같은 출처의 아카이브를 받을 때 사용합니다. 카탈로그 항목의 headersHelper는 해당 플러그인을 설치하거나 업데이트할 때만, 그것도 실행할 명령을 먼저 보여 준 다음에 실행됩니다. claude plugin install, claude plugin update는 [y/N]으로 확인을 받으며 -y로 건너뛸 수 있습니다.

  • claude self-hosted-runner --defer-shutdown-max-min <분>

    실행 서버가 SIGTERM을 받으면 그 서버에 붙어 있던 세션도 함께 정리돼, 배포나 재시작 때 진행 중이던 작업이 끊겼습니다. 이제 지정한 분 수만큼은 붙어 있는 세션을 계속 처리하고, 그 시간이 지나면 남은 세션을 대기 상태로 넘긴 뒤 종료합니다.

  • claude self-hosted-runner --proxy-authorization-command, --proxy-authorization-file

    연결할 때마다 새로 발급된 Proxy-Authorization 헤더를 요구하는 외부 통신 프록시(egress proxy) 뒤에서는 실행 서버가 연결을 맺지 못했습니다. 이제 이 두 옵션으로 헤더 값을 명령의 실행 결과나 파일에서 매번 새로 읽어 옵니다.

주요 개선

  • 프로젝트 범위 headersHelper와 인라인 MCP 서버에 폴더 신뢰 확인 요구

    프로젝트 .mcp.json에 적힌 headersHelper와, 프로젝트 또는 --add-dir 에이전트 파일에 인라인으로 적힌 MCP 서버는 폴더를 신뢰할지 묻는 확인 없이도 동작할 수 있었습니다. 이제 해당 폴더의 신뢰 확인을 받은 뒤에만 동작하며, claude -p에서도 같습니다.

  • headersHelper의 실행 환경 분리

    프로젝트 .mcp.json, 플러그인, 에이전트 파일에서 온 headersHelper는 이제 자격 증명 환경변수를 물려받지 않고 실행됩니다. 사용자, 관리형(managed), claude.ai 범위의 헬퍼는 Claude 설정 디렉터리에서 실행됩니다.

  • 전체 화면의 Ctrl+L, Cmd+K는 항상 화면만 다시 그림

    두 번 연달아 누르면 /clear가 실행되는 단축키가 있어, 1행짜리 nvim 터미널에서는 /clear가 저절로 반복 실행되기도 했습니다. 이제 두 키는 화면을 다시 그리기만 하며, 두 번 누르기 단축키는 제거됐습니다.

  • claude mcp list, claude mcp get이 비활성 서버에 연결하지 않음

    비활성화해 둔 서버까지 실제로 연결해 상태를 확인했습니다. 이제 연결하지 않고 ⊘ Disabled로 표시합니다.

  • Remote Control 연결 유지력

    네트워크 경계 장비나 VPN, 프록시가 잠깐 HTTP 403으로 거절하면 연결이 그대로 끊겼습니다. 이제 최대 3분까지는 이런 거절을 견디며, 차단이 계속되면 어느 쪽이 막고 있는지 함께 알려 줍니다.

  • zsh 고유 구문의 Bash 도구 권한 검사

    셸 조건문에 쓰이는 zsh 고유 구문을 권한 검사가 제대로 해석하지 못했습니다. 해석 방식이 개선됐습니다.

  • 시작 속도

    macOS에서 claude만 입력해 실행할 때 더 빨리 시작합니다. 자동 업데이트 확인이 시작 과정과 CPU를 다투던 문제도 실행 약 10초 뒤로 미뤄 해소됐습니다.

  • claude-api 스킬 갱신

    8월 19일 Managed Agents 릴리스 내용이 기본 제공 claude-api 스킬에 반영됐습니다. 웹 검색과 웹 가져오기의 도메인 설정, 직접 운영하는 샌드박스의 메모리 스토어가 포함됩니다.

주요 버그 수정

세션과 메모리

  • 긴 대화 세션에서 메모리 사용량이 한없이 늘어나던 문제 수정. 서브에이전트의 도구 실행 결과가 최근 표시 범위를 벗어나면 이제 메모리에서 해제됩니다.
  • 사용자 정의, 프로젝트, 플러그인 출력 스타일(output style)이 세션 도중 기본 말투로 되돌아가던 문제 수정.
  • CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true인데도 계정이 사용 한도에 가까워지면 프롬프트 제안이 꺼지던 문제 수정. 한도를 넘지 않은 상태에서도 꺼졌습니다.
  • 프롬프트 캐시가 이미 만료된 뒤에도 /model과 /effort에서 캐시 미스 경고가 뜨던 문제 수정.

터미널과 화면

  • Backspace를 Ctrl+H로 보내는 터미널에서 키 입력이 한꺼번에 몰려 들어오면 Backspace를 누르고 있어도 무시되던 문제 수정. 느린 SSH, mosh 연결에서 나타났습니다.
  • 권한 확인 창의 diff에서 이모지처럼 여러 코드 포인트로 이뤄진 넓은 문자나 탭이 들어간 줄이 잘려 보이던 문제 수정.
  • Ctrl+Z로 멈춰 둔 세션을 종료하면 터미널이 bracketed-paste 모드에 머물고 커서가 숨겨진 채 남던 문제 수정.
  • MCP elicitation(사용자에게 추가 정보를 묻는) 창이 4,096자가 넘는 URL에서 아무것도 표시하지 않던 문제와 프로젝트 경로가 터미널 너비에 들어가지 않으면 권한 확인 창에서 “don’t ask again” 항목이 사라지던 문제 수정.

권한과 실행

  • 워크트리 격리에서 Bash 명령이 거부될 때, 리다이렉트가 없는 명령인데도 리다이렉트를 지우라고 안내하던 문제 수정.
  • Bash 명령이 강제 종료되거나 시간을 초과하거나 중단됐을 때 /tmp/claude-*-cwd 파일이 남던 문제 수정.

MCP, 프록시, 실행 서버

  • stdio 방식 MCP 서버가 initialize보다 먼저 server/discover 요청을 받던 문제 수정. 필요할 때만 백엔드를 띄우는 서버가 세션을 열 때마다 백엔드를 실행하게 만들었습니다.
  • 프록시가 연결을 거절한 것이 일반 네트워크 오류로 표시되던 문제 수정. 이제 어느 프록시가 거절했는지 함께 알려 줍니다.
  • 직접 운영하는 실행 서버(self-hosted runner)가 폴링 요청 한 번이 느리거나 유실된 것만으로 서버 쪽에서 제거되던 문제 수정. 정상 동작하던 세션이 다른 실행 서버로 넘어갔습니다.

Remote Control

  • 작업 패널에서 개별 작업의 Stop이 CLI에서 띄운 세션에는 아무 동작도 하지 않던 문제 수정.
  • 클라이언트가 role이 없는 사용자 메시지를 보내면 원격 세션이 종료되던 문제 수정.
  • claude remote-control로 시작한 세션이 명령을 실행한 셸의 세션 범위 환경변수를 물려받던 문제 수정.
  • 프로세스가 죽은 세션이 claude remote-control을 다시 실행하기 전까지 사용할 수 없던 문제 수정. 이제 다음에 메시지를 보내면 다시 사용됩니다.
  • Claude가 턴을 처리하는 중에 웹이나 데스크톱에서 보낸 메시지가 턴이 끝난 뒤 대화 기록에서 사라지던 문제 수정.
  • 휴대폰이나 웹에서 고른 모델이 터미널에 표시되는 모델에 반영되지 않던 문제 수정.
  • 네트워크가 잠깐 끊겨 로그인 갱신이 늦어질 때 “login expired”로 연결이 끊기던 문제 수정. 이제 다시 시도하며 연결을 유지합니다.
  • 로그아웃할 때 재연결 실패로 표시되던 문제 수정. 이제 세션이 끝났다는 안내와 함께 종료됩니다.

세션 간 메시징

  • ListAgents와 SendMessage가 claude remote-control(서버 모드)이나 데스크톱, IDE에서 실행한 세션에서 “Remote Control is not connected”로 응답하던 문제 수정. 이제 Remote Control로 연결된 다른 세션을 목록에 보여 주고 메시지도 전달합니다.
  • ListAgents와 SendMessage가 다음 백그라운드 세션을 위해 미리 띄워 둔 유휴 작업자(worker)까지 노출하던 문제 수정. 이제 작업이 배정된 뒤에만 목록에 나타납니다.
  • 수신을 거부하도록 설정된 세션(crossSessionInbound: "refuse")에 메시지를 보내면 보낸 쪽에 성공한 것처럼 표시되던 문제 수정. 이제 “refused”로 알려 줍니다.
  • 받는 세션의 수신함이 한도 초과나 대기열 가득 참으로 메시지를 버릴 때 아무 표시 없이 사라지던 문제 수정. 이제 보낸 세션에 알려 줍니다.

알아두면 좋은 점

  • 2.1.237은 두 항목만 담긴 릴리스 — LLM 게이트웨이나 사용자 지정 base URL을 쓰는 세션의 프롬프트 캐싱 수정과, 기본 제공 “Concise” 출력 스타일 추가 두 가지입니다. “Concise”는 /config의 Output style에서 고를 수 있으며, 앞머리 설명과 진행 상황 서술을 빼고 결과부터 제시합니다. 분량이 적어 별도 콘텐츠로 다루지 않습니다.
  • 전체 화면에서 Ctrl+L을 두 번 눌러도 /clear가 실행되지 않습니다 — 단축키가 제거됐으므로 대화를 비우려면 /clear를 직접 입력합니다.
  • 카탈로그 항목의 headersHelper는 확인을 거칩니다 — 설치와 업데이트 때만 실행되고, 실행할 명령이 먼저 표시됩니다. claude plugin install, claude plugin update는 [y/N]로 묻고 -y로 건너뛸 수 있습니다.
  • 프로젝트 범위 headersHelper는 폴더 신뢰 확인이 필요합니다 — 프로젝트 .mcp.json의 headersHelper와 인라인 MCP 서버는 해당 폴더의 신뢰 확인을 받아야 동작하며, claude -p에서도 마찬가지입니다. 자격 증명 환경변수도 물려받지 않으므로, 환경변수에 기대던 헬퍼 명령은 업데이트 후 다시 확인해야 합니다.
  • keybindingFlavor 기본값은 "classic" — Bash처럼 Ctrl+W를 쓰려면 "readline"으로 바꿉니다.
  • claude mcp list는 비활성 서버의 상태를 확인하지 않습니다 — 비활성화한 서버는 연결 없이 ⊘ Disabled로만 표시되므로, 목록에서 서버가 살아 있는지 확인하려면 먼저 활성화해야 합니다.