
Claude Code에서 Superpowers 설치했더니 키보드가 먹통이 됐다
요즘 Claude Code 마켓플레이스에 올라오는 플러그인들이 하나둘 늘어나고 있어서, 나도 이것저것 깔아보는 재미에 빠져 있었다. 그러다 Superpowers라는 플러그인을 발견했다. 스타 수가 5만 개가 넘는 인기 프로젝트길래, 당연히 별 문제 없겠지 싶어서 바로 설치했다.

그런데 설치하고 나서 Claude Code를 터미널에서 실행했는데... 아무 키도 안 먹는다.
진짜 말 그대로 아무 키도. 타이핑을 해도 글자가 안 찍히고, Ctrl+C도 안 되고, Escape도 안 된다. 커서만 멀뚱멀뚱 깜빡이지도 않고 그냥 굳어있다. 처음엔 뭔가 로딩이 오래 걸리나 싶어서 기다려봤는데, 아무리 기다려도 그대로다.
혹시 내가 뭘 잘못 깐 건가?
일단 껐다 켜봤다. 몇 번을 재시작해봤다. 터미널도 바꿔보고, Claude Code 버전도 확인해봤다. 근데 여전히 똑같다. 실행하면 UI는 뜨는데 키 입력이 전혀 안 먹는 상태.
뭐가 문제일까. 내 환경이 이상한 건가? 윈도우라서 그런 건가? 진짜 머리를 싸맸다. 구글링을 해봐도 딱히 같은 증상을 겪는 사람이 안 보여서 더 답답했다.
GitHub 이슈에서 답을 찾다
결국 직접 Superpowers 깃허브 이슈 페이지에 들어가서 하나하나 뒤져봤다. 그리고 찾았다.
나만 겪는 게 아니었다.
Issue #404 — 윈도우에서 키보드 입력이 얼어버리는 버그

이 이슈가 정확히 내 상황이었다. 제목부터가 "Windows - Superpowers Plugin Freezes Terminal Keyboard Input in VSCode". 누군가 나와 완전히 동일한 증상을 겪고 있었다.
원인을 요약하면 이랬다. Superpowers는 SessionStart 훅을 통해 세션이 시작될 때 쉘 스크립트(session-start.sh)를 실행하는데, 이 훅이 동기적(synchronous)으로 실행되고 있었다. 즉 이 훅이 끝나야 Claude Code가 다음 단계로 넘어가는 구조인데, 윈도우에서는 이 .sh 스크립트가 제대로 실행되지 않으면서 훅이 영원히 끝나지 않는 상태로 빠지는 거다. 그래서 CLI 전체가 멈춰버린 것.
Issue #414 — bash가 PATH에 없으면 터미널이 죽는다
이 이슈도 같은 맥락이었다. 윈도우에서는 bash가 기본 PATH에 없는 경우가 많은데, Superpowers의 훅이 bash 기반 쉘 스크립트를 실행하려 하니까 'bash' is not recognized as an internal or external command라는 에러가 뜨면서, 때로는 빠르게 실패하고 넘어가지만 간헐적으로 훅 실행 자체가 행(hang) 되면서 터미널 전체가 얼어버리는 것이었다.
디버그 로그에서도 Hook SessionStart:startup (SessionStart) error: 'bash' is not recognized... 이런 에러가 찍히고, 그 뒤로는 아무 반응이 없다.
해결 방법: async: true 한 줄이면 된다
해결 방법은 비교적 간단했다. 훅 설정에 "async": true를 추가하면 된다.
Superpowers의 hooks/hooks.json 파일에서 SessionStart 훅에 async 옵션을 붙여주면, 훅이 비동기로 실행되면서 CLI가 훅 완료를 기다리지 않고 바로 다음 단계로 넘어간다.
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh",
"async": true
}
이렇게 바꾸니까 깔끔하게 해결됐다. 키보드도 잘 먹히고, Claude Code도 정상적으로 동작한다. 그동안 몇 시간을 삽질한 게 한 줄 때문이었다니 좀 허무하면서도, 원인을 알게 되니 속이 시원했다.
또 다른 플러그인, 또 같은 문제
Superpowers 문제를 해결하고 나서, 이번엔 Get Shit Done (GSD)이라는 플러그인도 깔아봤다. Claude Code를 위한 메타 프롬프팅, 컨텍스트 엔지니어링 시스템인데, 스타가 1만 2천 개가 넘는 꽤 인기 있는 프로젝트다.
설치하고 Claude Code를 실행했는데... 어? 똑같은 현상이 또 발생했다. 키보드 먹통. 터미널 프리즈.
이번엔 원인을 바로 알 수 있었다. 아까와 같은 문제다. GSD도 SessionStart 훅을 쓰고 있었고, 역시 동기 실행이 기본이었다. 바로 GSD의 hook 설정 파일로 들어가서 같은 방식으로 수정했다.
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "node .claude/hooks/gsd-check-update.js",
"async": true // <-- 추가한 부분
}
]
}
]
},
"statusLine": {
"type": "command",
"command": "node .claude/hooks/gsd-statusline.js"
}
}
근본 원인은 Claude Code 자체에 있었다
두 번째까지 겪고 나니 궁금해졌다. 이건 플러그인 문제가 아니라 Claude Code 자체의 문제 아닌가? 좀 더 찾아봤다.
역시나, Claude Code 공식 레포에 관련 이슈가 여러 개 올라와 있었다.
Issue #22906 — v2.1.30에서 키보드 입력 자체가 안 된다
이 이슈는 가장 심플하게 증상만 딱 적어놓은 건데, 내용이 정확히 나랑 같다. v2.1.30으로 업그레이드한 뒤 윈도우에서 키보드 입력이 아예 안 된다는 거다. Git CMD, PowerShell 등 여러 터미널에서 테스트해봤지만 전부 동일. 이 사람은 워크어라운드로 v2.1.28로 다운그레이드하면 해결된다고 적어놨다.
라벨이 area:tui, bug, has repro, platform:windows로 붙어있는 걸 보면 Anthropic 팀도 재현에 성공한 모양이다. 근데 문제는... 아직 Open 상태다.
Issue #22934 — 훅 에러 시 CLI가 프리즈되는 리그레션

이 이슈는 좀 더 깊이 파고든 분석이 담겨 있다. 제목부터 직관적이다: "[Bug] v2.1.30 regression: CLI freezes when SessionStart hook errors (Windows)"
핵심은 이렇다. Claude Code v2.1.30부터 SessionStart 훅이 에러를 반환하면 CLI 전체가 프리즈되는 버그가 있다. 이전 버전에서는 훅이 실패해도 경고만 표시하고 정상적으로 시작됐는데, 어느 시점부터 훅 에러가 전체 프로세스를 먹통으로 만들어버리는 것이다.
이슈 제보자가 분석한 내용이 명쾌했다.
- 이전 버전(~v2.1.27): 훅 에러 발생 → 경고 표시 → CLI 정상 동작
- v2.1.30 이후: 훅 에러 발생 → SessionStart:startup hook error 메시지 → CLI 완전히 프리즈
그리고 이 이슈에서 중요한 구분을 해주고 있다. 윈도우에서 .sh 스크립트가 실행 안 되는 문제(훅 실행 실패)와, 훅이 실패했을 때 CLI가 죽어버리는 문제(에러 핸들링 실패)는 별개의 버그라는 것이다. 전자는 플러그인 쪽에서 윈도우 호환성을 챙겨야 할 문제고, 후자는 Claude Code 자체가 훅 에러를 graceful하게 처리하지 못하는 문제다.
이게 Superpowers만의 문제가 아니라, SessionStart 훅을 사용하는 모든 플러그인에서 발생할 수 있는 문제라는 거다. Superpowers가 가장 흔한 트리거일 뿐이고, 내가 GSD에서 똑같이 겪은 것도 같은 원인이다.
이슈에서 제안된 근본적인 수정 방향은 세 가지다.
- 훅 실행에 타임아웃을 걸 것 (예: 30초)
- 훅 실패 시 graceful recovery — 에러를 잡고 정상 시작을 계속할 것
- 메인 이벤트 루프를 절대로 블로킹하지 말 것 — 실패한 훅 때문에 CLI가 멈추면 안 된다
아직 안 고쳐졌다
이 글을 쓰는 2026년 2월 현재, 위에 언급한 이슈들이 전부 Open 상태다. #22906도, #22934도, Superpowers 쪽 #404, #414도 전부 닫히지 않았다.
그리고 v2.1.31에서도 같은 문제가 계속 보고되고 있다는 것이다.
윈도우 사용자 입장에서는 솔직히 좀 서운하다. macOS나 Linux에서는 이런 문제가 안 생기는 것 같은데 ㅠㅠ
정리
결국 이 문제의 구조는 이렇다.
윈도우에서 Claude Code 플러그인의 SessionStart 훅이 실패하면, Claude Code가 그 에러를 제대로 처리하지 못하고 CLI 전체가 먹통이 된다. Superpowers든 GSD든, SessionStart 훅을 쓰는 플러그인이면 다 걸릴 수 있다. 그리고 이건 v2.1.30에서 도입된 리그레션이고, v2.1.31에서도 고쳐지지 않았다.
당장의 해결책은 두 가지다.
- 해당 플러그인의 훅 설정에서 "async": true를 추가해서 훅을 비동기로 돌리기. 이렇게 하면 훅이 실패하더라도 CLI가 멈추지 않는다.
- v2.1.28로 다운그레이드하기. 이전 버전에서는 훅 에러가 나도 CLI가 정상 동작했다.
근본적으로는 Claude Code 쪽에서 훅 에러 핸들링을 고쳐야 하는 문제다. 이슈가 high-priority로 태그되어 있으니 조만간 수정될 거라 기대는 하고 있는데... 솔직히 v2.1.30에서 터진 게 v2.1.31에서도 안 고쳐진 걸 보면 언제 될지는 모르겠다.
혹시 나처럼 윈도우에서 Claude Code 플러그인 깔았다가 키보드가 먹통이 된 분이 있다면, 일단 async: true 한번 넣어보시길. 진짜 이 한 줄이면 된다. 그래도 안 되면 v2.1.28로 다운그레이드하는 것도 방법이다.
이 이슈가 공식적으로 해결되면 글 업데이트하겠다. 그때까지는... 윈도우 유저들 화이팅.
관련 이슈 링크 모음
- obra/superpowers #404 — Windows에서 Superpowers 플러그인이 VSCode 터미널 키보드 입력을 프리즈시키는 버그
- obra/superpowers #414 — Windows에서 bash가 PATH에 없을 때 SessionStart 훅이 터미널을 프리즈시키는 버그
- anthropics/claude-code #22906 — v2.1.30 Windows에서 키보드 입력이 작동하지 않는 버그
- anthropics/claude-code #22934 — v2.1.30 리그레션: SessionStart 훅 에러 시 CLI 프리즈 (Windows)
- anthropics/claude-code #22970 — Windows 시작 시 TUI가 완전히 프리즈되는 버그
- anthropics/claude-code #23346 — v2.1.31 네이티브 인스톨러에서 인터랙티브 모드 프리즈
- anthropics/claude-code #24584 — 네이티브 인스톨러(claude.exe)가 VSCode 터미널에서 무한 프리즈
'개발' 카테고리의 다른 글
| 아키텍처 다이어그램, 매번 손으로 그리기 싫어서 자동화해본 이야기 (1) | 2026.02.16 |
|---|---|
| 코드 한 줄 안 바꿨는데 CI가 터졌다 — TestContainers, Docker 29 (1) | 2026.02.16 |
| Seoul AI Builders AI Agent 해커톤 후기 (3) | 2026.02.12 |
| AI 도구를 활용해 백오피스 자동화하기 (3) | 2026.01.19 |
| 빈번한 쓰기 요청을 어떻게 저장할 것인가 (0) | 2026.01.11 |
