Claude Code 2.1.139 업데이트

💡

여러 Claude Code 세션을 한 화면에서 추적하는 agent view(Research Preview)와 조건이 충족될 때까지 자동으로 턴을 이어가는 `/goal` 명령이 추가되었습니다. transcript 키보드 내비게이션, hook의 `args: string[]`·`continueOnBlock`, MCP stdio에 전달되는 `CLAUDE_PROJECT_DIR`, `/mcp` Reconnect의 `.mcp.json` 핫리로드 등 자동화·플러그인·MCP 운영 편의가 폭넓게 보강되었습니다. 한편 `ANTHROPIC_API_KEY` 등 API 키 변수가 설정되면 Remote Control·`/schedule`·claude.ai MCP 커넥터·알림 환경설정이 비활성화되도록 동작이 바뀌었습니다.

🔗 공식 발표 →

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

무엇이 바뀌었나?

Claude Code 2.1.139가 2026년 5월 11일(현지 시간) 릴리스되었습니다. 여러 세션을 한 곳에서 보는 agent view(Research Preview), 완료 조건을 명시하면 그에 도달할 때까지 작업을 이어가는 /goal, 마우스 휠 속도를 라이브 프리뷰로 조정하는 /scroll-speed, 플러그인 점검용 claude plugin details 등 신규 명령이 추가되었습니다. 동시에 hook의 exec 형식(args: string[])과 PostToolUse 차단 시 모델로 사유를 되돌리는 continueOnBlock, MCP stdio 서버에 CLAUDE_PROJECT_DIR 환경변수 전달, /mcp Reconnect의 .mcp.json 핫리로드 등 자동화·플러그인·MCP 운영 편의가 한 번에 정리되었습니다. 한편 ANTHROPIC_API_KEY·apiKeyHelper·ANTHROPIC_AUTH_TOKEN이 설정된 경우, Claude.ai 로그인이 함께 있더라도 Remote Control·/schedule·claude.ai MCP 커넥터·알림 환경설정이 비활성화되도록 동작 정책이 바뀐 점은 반드시 확인이 필요합니다.

새 기능

  • agent view (Research Preview) — 모든 세션을 한 화면에서 추적

    Claude Code 세션이 여러 개로 늘어나면 어느 세션이 실행 중이고, 어느 세션이 응답을 기다리고 있는지 빠르게 파악하기 어려웠습니다. claude agents로 실행할 수 있는 새 agent view는 실행 중·내 입력 대기·완료 상태를 한 목록에 모아 보여줍니다. 자세한 사용법은 공식 문서에서 확인할 수 있습니다.

  • /goal — 완료 조건을 정의하고 자동으로 턴을 이어감

    복잡한 작업을 진행할 때 매 턴 진행 상황을 직접 확인하고 다시 지시를 내려야 하는 흐름이 반복됐습니다. /goal은 완료 조건을 한 번 지정하면 그 조건이 충족될 때까지 Claude가 자동으로 턴을 이어가며, 화면 오버레이 패널에 경과 시간·턴 수·토큰 소비량이 라이브로 표시됩니다. 인터랙티브 모드, -p 모드, Remote Control 모두에서 동작합니다.

  • /scroll-speed — 마우스 휠 스크롤 속도를 라이브 프리뷰로 조정

    IDE·터미널마다 휠 스크롤 속도가 달라 가독성에 영향을 주는 경우가 있었습니다. /scroll-speed는 라이브 프리뷰를 보면서 속도를 즉시 조정할 수 있는 새 명령입니다.

  • claude plugin details <name> — 플러그인 구성요소·세션당 토큰 비용 미리보기

    플러그인을 설치하기 전 그 플러그인이 어떤 명령·훅·MCP를 포함하는지, 세션당 토큰 비용은 어느 정도인지 확인할 방법이 없었습니다. claude plugin details <name>은 컴포넌트 인벤토리와 추정 토큰 비용을 한 번에 보여줍니다.

  • transcript 뷰 키보드 내비게이션

    긴 transcript에서 특정 사용자 입력을 찾으려면 마우스 휠로 일일이 스크롤해야 했습니다. 이제 ?로 단축키 목록을 띄우고, {/}로 사용자 프롬프트 사이를 점프하며, v로 단축키 패널을 토글할 수 있습니다.

  • hook args: string[](exec 형식) — 셸 없이 직접 실행

    hook 명령에 경로 placeholder를 넣을 때 따옴표 처리나 셸 이스케이프 때문에 깨지는 경우가 있었습니다. exec 형식은 명령을 셸 없이 바로 실행하므로 placeholder를 별도 인용 처리 없이 그대로 넘길 수 있습니다.

  • hook continueOnBlock (PostToolUse) — 차단 사유를 모델로 되돌려 턴 계속

    PostToolUse 훅이 차단을 반환하면 턴 전체가 중단되어 모델이 다음 시도를 이어가지 못했습니다. continueOnBlock: true로 설정하면 훅의 거절 사유가 모델로 전달되고 턴은 그대로 계속됩니다.

주요 개선

  • MCP stdio 서버에 CLAUDE_PROJECT_DIR 전달

    hook은 이미 CLAUDE_PROJECT_DIR을 받고 있었지만 MCP stdio 서버는 그렇지 못해, 프로젝트 루트 기준 경로 처리를 별도로 해야 했습니다. 이제 stdio MCP 서버 환경에도 CLAUDE_PROJECT_DIR이 주입되며, 플러그인 설정의 command 필드에서 ${CLAUDE_PROJECT_DIR} 변수도 사용할 수 있습니다.

  • /mcp Reconnect — .mcp.json 핫리로드 + 실패 시 HTTP 상태·URL 표시

    .mcp.json을 수정하고 변경 사항을 적용하려면 Claude Code를 재시작해야 했습니다. 이제 /mcp Reconnect가 파일 변경을 바로 반영하며, 재연결이 실패하면 HTTP 상태 코드와 대상 URL을 함께 표시해 디버깅 단서를 제공합니다.

  • /context all 스킬별 토큰 추정 — 모델 토크나이저 기준 + 반올림 표시

    기존 /context all의 스킬별 토큰 추정은 모델의 실제 토크나이저와 어긋나 정확도가 떨어졌습니다. 이제 모델 토크나이저를 기준으로 계산하고, 사람이 읽기 쉽도록 반올림된 값으로 표시됩니다.

  • claude plugin install <name>@<marketplace> — 마켓플레이스 자동 새로고침 후 재시도

    마켓플레이스 캐시가 stale 상태일 때 갓 등록된 플러그인을 설치하려고 하면 “not found”로 떨어졌습니다. 이제 설치 명령이 마켓플레이스를 자동 새로고침하고 한 번 더 시도한 다음에야 not found를 보고합니다.

  • /plugin 설치된 플러그인 상세 — hook 이벤트명·MCP 서버명을 깔끔하게 표시

    설치된 플러그인의 상세 화면에 hook 이벤트와 MCP 서버 이름이 식별하기 어려운 형식으로 노출되던 문제가 정리되었습니다.

  • /context — 플러그인 제공 스킬에 출처 플러그인 이름 함께 표시

    플러그인이 제공한 스킬이 어디서 온 것인지 한눈에 알기 어려웠습니다. 이제 /context가 스킬의 제공 플러그인 이름을 함께 표시합니다.

  • Remote MCP 서버 재연결 재시도 — 전체 사용자에게 활성화

    일시적 네트워크 실패로 Remote MCP 서버 연결이 끊겼을 때 자동 재시도가 제한적으로만 활성화돼 있었습니다. 이번 릴리스에서 모든 사용자에게 동일하게 적용됩니다.

  • 서브에이전트 API 요청에 식별 헤더·OTEL 속성 추가

    서브에이전트가 보낸 API 요청을 텔레메트리에서 구분하기 어려웠습니다. 이제 모든 서브에이전트 요청에 x-claude-code-agent-id/x-claude-code-parent-agent-id 헤더가 붙고, claude_code.llm_request OTEL span에는 agent_id/parent_agent_id 속성이 포함됩니다.

  • compaction 프롬프트 — 사용자 지시 보존 강화

    대화 compaction 과정에서 민감하거나 중요한 사용자 지시가 누락되는 사례가 있었습니다. compaction 프롬프트가 사용자 지시를 의식적으로 보존하도록 갱신되었습니다.

  • API 키 환경변수 우선 정책 강화 — Remote Control//schedule/claude.ai MCP/알림 비활성화

    ANTHROPIC_API_KEY·apiKeyHelper·ANTHROPIC_AUTH_TOKEN이 설정되어 있으면, Claude.ai 로그인이 같이 있더라도 Remote Control·/schedule·claude.ai MCP 커넥터·알림 환경설정이 모두 비활성화됩니다. 해당 기능을 사용하려면 API 키 환경변수를 해제해야 합니다.

주요 버그 수정

인증·세션

  • 만료된 자격 증명과 forceRemoteSettingsRefresh 정책이 함께 작동해 claude auth login/logout/status가 모두 막혀 복구 경로가 없던 데드락 수정.

권한·sandbox

  • autoAllowBashIfSandboxed$VAR·$(cmd) 같은 셸 확장이 포함된 명령을 자동 승인하지 못하던 문제 수정.
  • Skill(name *) 권한 규칙의 와일드카드가 Bash(ls *)와 동일한 prefix 매치로 동작하지 않던 문제 수정.

MCP·hook

  • HTTP/SSE MCP 서버가 프로토콜 외 데이터를 스트리밍할 때 응답 본문이 무제한 누적되며 메모리가 폭주하던 문제 — 이제 SSE 프레임당 16 MB 상한이 적용됩니다.
  • hook이 터미널에 출력을 쓰면 화면에 떠 있던 인터랙티브 프롬프트가 깨지던 문제 — 이제 훅은 터미널 접근 없이 실행됩니다.
  • MCP 리소스가 끊긴 서버에서도 @server: 자동완성에 계속 남아 있던 문제 수정.
  • 10개 이상 MCP 서버가 설정된 상태에서 캐시 디렉터리가 쓰기 불가일 때 원인 없이 exit 1로 종료되던 문제 — 이제 오류 메시지에 근본 원인이 포함됩니다.

플러그인

  • 마켓플레이스 키가 manifest name과 다를 때 플러그인 상세가 로드되지 않던 문제 수정.
  • manifest name이 source identifier와 다를 경우 플러그인 의존성 카운트가 stale로 남던 문제 수정.
  • claude plugin update가 마켓플레이스 내부의 플러그인 간 심볼릭 링크를 보존하지 않던 문제 수정.

설정·재시작

  • ~/.claude/settings.json이 심링크일 때 설정 핫리로드가 변경을 감지하지 못하던 문제 수정.

모델 선택

  • /model 피커의 “Default” 행이 ANTHROPIC_DEFAULT_OPUS_MODEL·ANTHROPIC_DEFAULT_SONNET_MODEL 오버라이드를 반영하지 못하던 문제 수정.
  • opus 별칭으로 설정된 3P 사용자에게 “Current model” 행이 중복 표시되던 문제 수정.
  • PAYG 3P 환경의 legacy Opus 항목이 default 항목과 같은 모델로 풀리던 문제 수정.

스트림·타이머

  • 응답이 끝난 5분 뒤에 “stream idle timeout”이 잘못 발생하던 문제 — 스트림 취소 시 watchdog 타이머가 정리되지 않던 원인이 수정되었습니다.
  • 마지막 구독자가 떠난 뒤에도 task polling·fs.watch가 진행 중 fetch 때문에 되살아나던 문제 수정.

UI·터미널

  • 탭 이름·리스트 포인터·다이얼로그 select 행에 입력 커서가 깜빡이던 시각 결함 수정.
  • transcript 뷰의 문자 단축키가 마우스 클릭 이후 동작하지 않던 문제 수정.
  • Bash 모드에서 위쪽 방향키 히스토리가 첫 항목을 반복하고 작성 중인 초안을 덮어쓰던 문제 수정.
  • 여러 이미지를 한 번에 붙여넣거나 드롭해도 마지막 이미지만 입력되던 문제 수정.
  • 다크 테마에서 하이퍼링크가 어두운 네이비로 표시돼 가독성이 떨어지던 문제 — 활성 테마에 맞춰 색이 조정됩니다.
  • Cursor·VS Code 1.92–1.104의 마우스 휠 스크롤 속도 — 트랙패드는 일정한 속도로, 마우스 휠은 한 노치당 약 3줄로 정상화되었습니다.
  • Windows Terminal·VS Code에서 백그라운드 세션에 attach했을 때의 스크롤 동작 수정.

Grep·diff·자잘한 렌더링

  • 두 파일 diff 스니펫이 truncated 라인 수를 1만큼 더 많게 보고하던 문제 수정.
  • Grep 결과가 Windows 드라이브 레터 경로를 상대화하지 못하고, count 모드에서 단일 파일 경로의 합계를 잘못 계산하던 문제 수정.
  • 테두리 안 텍스트가 CJK·이모지에서 시각 셀 폭 계산 오류로 넘쳐 보이던 문제 수정.
  • 퍼지 매치 하이라이트가 이모지·astral plane 문자의 surrogate pair 사이를 갈라 깨던 문제 수정.
  • 스킬 인자 이름에 정규식 메타문자가 포함되면 인자 치환이 깨지던 문제 수정.
  • ProgressBar가 거의 가득 찬 분수 셀에 풀 블록을 그리던 문제 수정.
  • Insights Time-of-Day 차트가 파싱 불가 타임스탬프를 가진 세션에서 왜곡되던 문제 수정.
  • cmd/super/win 단일 modifier 키바인딩이 파싱 불가로 표시되던 문제 수정.
  • claude_code.active_time.total OpenTelemetry 메트릭이 --print 모드에서 방출되지 않던 문제 수정.

VS Code

  • Cmd/Ctrl+Shift+T로 가장 최근 닫힌 세션 탭 다시 열기claudeCode.enableReopenClosedSessionShortcut 설정으로 토글할 수 있습니다.

알아두면 좋은 점

  • API 키 환경변수가 있으면 Remote Control·/schedule·claude.ai MCP·알림이 비활성화됨ANTHROPIC_API_KEY·apiKeyHelper·ANTHROPIC_AUTH_TOKEN이 설정되면 Claude.ai 로그인 유무와 관계없이 위 기능들이 비활성화됩니다. 두 종류의 인증을 함께 쓰던 환경은 동작이 달라질 수 있으니 업데이트 전에 확인하세요.
  • agent view는 Research Preview — 동작·UI가 변경될 수 있으며, 안정 기능으로 보장되지 않습니다. 정식 운영 워크플로에 의존하기 전에 공식 문서를 확인하세요.
  • hook의 exec 형식(args: string[]) — 기존 셸 기반 hook 명령에서 인용·이스케이프 문제가 잦았다면 exec 형식으로 전환하면 placeholder를 안전하게 다룰 수 있습니다.
  • PostToolUse 훅의 continueOnBlock: true — 훅이 차단을 반환할 때 모델로 거절 사유를 되돌리고 턴을 이어갑니다. 가드레일은 유지하면서도 한 번에 실패시키지 않고 모델에 재시도 기회를 주고 싶을 때 사용합니다.
  • MCP stdio 서버의 CLAUDE_PROJECT_DIR — 프로젝트 루트 기준 경로를 다루는 MCP 서버는 별도 환경 주입 없이 CLAUDE_PROJECT_DIR을 그대로 사용할 수 있습니다. 플러그인의 command 필드에서도 ${CLAUDE_PROJECT_DIR} 치환이 가능합니다.
  • /mcp Reconnect 핫리로드.mcp.json을 수정한 뒤 재시작 없이 Reconnect만으로 변경 사항이 적용됩니다. 실패 시 HTTP 상태와 URL이 노출되므로 디버깅에도 도움이 됩니다.
  • SSE 프레임 16 MB 상한 — MCP 서버가 프로토콜 외 데이터를 스트리밍하는 패턴이 있다면, 16 MB를 초과하는 응답이 잘릴 수 있다는 점을 고려해 서버 측에서 분할 전송을 검토하세요.