본문으로 건너뛰기

"Claude Code" 태그로 연결된 18개 게시물개의 게시물이 있습니다.

모든 태그 보기

Claude Code Auto Mode

· 약 5분

또 새 기능이다

Claude Code를 쓰다 보면 이런 경험이 있을 거예요. 파일 하나를 수정할 때마다 "Allow?" 프롬프트가 뜨고, bash 명령을 실행할 때마다 또 떠요. 장시간 작업할 때는 Y 키를 누르는 게 일이 돼요.

그래서 나온 게 Auto 모드입니다. 2026년 3월 24일, 리서치 프리뷰로 공개됐습니다.

Claude Code Auto Mode 설명

Auto mode lets Claude handle permission prompts automatically — Claude checks each tool call for risky actions and prompt injection before executing.

쉽게 말하면, 권한 승인을 AI가 대신 판단해 주는 모드입니다.

기존 권한 모드 복습

Auto 모드를 이해하려면 기존 모드부터 알아야 합니다. Shift+Tab으로 전환할 수 있는 모드들입니다.

모드자동 승인 범위특징
default읽기만가장 안전. 나머지는 전부 물어봄
acceptEdits읽기 + 파일 편집 + 기본 파일 명령코드 수정은 자동, 셸 명령은 물어봄
plan읽기만실행 없이 계획만 세움
auto전부 — 분류기가 안전 여부 판단장시간 작업에 적합
bypassPermissions전부 — 안전 검사 없음격리된 컨테이너 전용

핵심 차이:

  • default/acceptEdits: 사람이 판단
  • auto: AI 분류기가 판단
  • bypassPermissions: 아무도 판단 안 함 (위험)

어떻게 동작하나

Auto 모드는 2단계 파이프라인으로 각 도구 호출의 안전 여부를 판단합니다.

1단계: 입력 검사와 프롬프트 인젝션 탐지

도구 실행 결과가 에이전트의 컨텍스트에 들어가기 전에, 서버 측에서 프롬프트 인젝션 시도를 스캔합니다. 파일이나 웹페이지에 숨겨진 악성 지시를 감지하면 경고를 붙입니다.

2단계: 출력 검사와 트랜스크립트 분류기

실제 도구 호출 전에 Claude Sonnet 4.6 기반 분류기가 행동의 위험성을 평가합니다.

Stage 1: 빠른 1토큰 Yes/No 필터
↓ (위험 가능성 있으면)
Stage 2: Chain-of-thought 추론으로 정밀 판단

결과: 승인 또는 차단
  • Stage 1에서 대부분의 안전한 작업이 바로 통과
  • 의심스러운 것만 Stage 2로 넘어가서 정밀 검토
  • 분류기는 사용자 메시지, 도구 호출, CLAUDE.md 내용을 참조
  • 도구 실행 결과는 분류기에게 보이지 않음 (인젝션 방지)

뭘 막고 뭘 허용하나

기본 차단 항목

  • curl | bash 같은 다운로드 후 실행 패턴
  • 외부 엔드포인트로 민감 데이터 전송
  • 프로덕션 배포 및 마이그레이션
  • 클라우드 스토리지 대량 삭제
  • IAM/리포 권한 변경
  • main에 직접 push 또는 force push
  • 세션 이전에 존재하던 파일의 비가역적 삭제

기본 허용 항목

  • 작업 디렉토리 내 로컬 파일 작업
  • 매니페스트에 선언된 의존성 설치
  • .env 읽기 및 해당 API로의 인증 정보 전송
  • 읽기 전용 HTTP 요청
  • 시작 브랜치 또는 Claude가 생성한 브랜치에 push

차단 시 동작

분류기가 차단하면 Claude는 이유를 전달받고 다른 접근법을 시도합니다. 연속 3회 또는 세션 내 20회 차단되면 Auto 모드가 일시 중단되고 사용자에게 직접 물어봅니다.

정확도는

Anthropic이 공개한 수치:

지표수치의미
False Negative Rate17%사용자가 거부할 행동인데 분류기가 통과시킴
False Positive Rate0.4%안전한 행동인데 분류기가 차단함

17%의 미탐(false negative)이 눈에 띕니다. Anthropic도 이걸 숨기지 않고 공개했습니다. "완벽하지 않다"는 걸 솔직하게 인정한 것입니다.

즉, 100번 중 17번은 위험한 행동이 통과할 수 있습니다. 그래서 격리된 환경에서의 사용을 계속 권장하는 것입니다.

요금과 제한

  • Pro 플랜: 사용 불가
  • Max, Team, Enterprise, API: 사용 가능
  • 분류기 호출이 토큰 사용량에 포함되어 약간 더 비쌈
  • 읽기와 작업 디렉토리 내 파일 편집은 분류기를 건너뛰므로 추가 비용 없음
  • 셸 명령, 네트워크 작업에서 주로 추가 비용 발생
  • Claude Code v2.1.83 이상 필요

주의할 점

컨텍스트 압축 문제

대화 중에 "main에 push하지 마" 같은 경계를 설정해도, 컨텍스트 압축(compaction)이 해당 메시지를 날려버리면 분류기가 그 경계를 인식하지 못합니다.

해결하려면 대화로 경계를 설정하지 말고, 명시적 deny 규칙을 설정 파일에 넣어야 합니다.

상속된 권한 문제

Auto 모드의 분류기는 개별 행동을 평가하지, 전체 맥락에서의 의도를 파악하지는 못합니다. IAM 수정이나 curl | bash 같은 패턴은 차단하지만, 개별적으로는 무해해 보이는 여러 행동이 합쳐져서 위험해지는 경우는 놓칠 수 있습니다.

이전 취약점 이력

Claude Code에는 이미 보고된 CVE가 있습니다.

  • CVE-2025-59536: 악성 .claude/settings.json을 통한 원격 코드 실행
  • CVE-2026-21852: 악성 MCP 서버를 통한 API 키 유출

Auto 모드가 이런 공격 벡터를 완전히 차단하지는 못합니다.

bypassPermissions 대신 Auto를 써야 하는 이유

이전에 장시간 작업을 위해 bypassPermissions(또는 --dangerously-skip-permissions)를 쓰던 사람들이 있습니다. Auto 모드는 그 대안입니다.

bypassPermissionsAuto
안전 검사없음분류기 검사
프롬프트 인젝션 방어없음입력 스캔
위험 행동 차단없음자동 차단
사용 권장 환경완전 격리 컨테이너만격리 환경 권장

공식 문서에서도 이렇게 말합니다.

"For background safety checks without prompts, use auto mode instead."

활성화 방법

# CLI 플래그
claude --permission-mode auto

# 또는 실행 중 Shift+Tab으로 전환

# 기본값으로 설정
# settings.json에서:
# "permissions": { "defaultMode": "auto" }

Team/Enterprise 플랜에서는 관리자가 먼저 활성화해야 사용자가 접근할 수 있습니다.

커뮤니티 반응

GeekNews(news.hada.io)에서도 Auto 모드 소식이 다뤄졌습니다. 댓글 반응이 인상적입니다.

"하루가 다르게 발전하는군요"

"일상이 바뀔 수 있을 정도의 파급력이 있는 기능이 하루 걸러 하나씩 나와버리네요"

저도 공감해요. Anthropic의 릴리즈 속도는 정말 따라가기 벅찰 정도예요.

마무리

Auto 모드는 "매번 Y를 누르는 귀찮음"과 "아무 검사 없이 전부 실행하는 위험함" 사이의 중간 지점입니다.

편리합니다. 하지만 17%의 미탐률이 있고, 컨텍스트 압축 문제가 있고, 격리 환경에서 쓰라는 권장 사항이 있습니다. 리서치 프리뷰인 만큼 앞으로 개선될 여지가 있지만, 지금은 편리함과 위험 사이의 트레이드오프를 이해하고 쓰는 것이 중요합니다.

개인 프로젝트에서 장시간 코딩 세션을 돌릴 때라면 충분히 쓸 만해요. 프로덕션 인프라에 접근 가능한 환경이라면 아직은 아니에요.

이 글은 2026년 4월 기준 리서치 프리뷰 상태를 바탕으로 작성했어요. 정식 출시 후 동작, 정확도, 요금이 변경될 수 있어요.

참고 자료

Claude Code Skills

· 약 4분

commands가 사라졌다?

Claude Code를 쓰면서 .claude/commands/ 디렉토리에 커스텀 명령어를 만들어 쓰던 분들이 있을 거예요. /deploy, /review, /commit 같은 것들이에요.

그런데 어느 날 문서를 보니 "Skills"라는 게 나옵니다. commands는 어디로 간 것인지 의문이 듭니다.

결론부터 말하면, commands가 skills로 통합됐습니다. 정확히는 v2.1.3 (2026년 1월)부터입니다.

"Merged slash commands and skills, simplifying the mental model with no change in behavior" — Claude Code v2.1.3 Changelog

타임라인

시점변경사항
2025.10 (v2.0.22)Skills 시스템 첫 도입
2026.01 (v2.1.3)Slash commands와 skills 공식 병합
2026.04 현재.claude/commands/ 여전히 동작. 새로 만들 땐 skills 권장

공식 deprecation 일정은 아직 없습니다. 하지만 방향은 명확합니다.

commands와 skills의 차이

기존: commands

.claude/commands/deploy.md

마크다운 파일 하나. 프롬프트를 적어두면 /deploy로 호출할 수 있었습니다. 단순하고 직관적이었습니다.

현재: skills

.claude/skills/deploy/
├── SKILL.md # 주요 지침 (필수)
├── template.md # Claude가 채울 템플릿
├── examples/
│ └── sample.md # 예제 출력
└── scripts/
└── validate.sh # Claude가 실행할 스크립트

디렉토리 구조입니다. SKILL.md가 진입점이고, 지원 파일을 함께 둘 수 있습니다.

핵심 차이: frontmatter

Skills의 가장 큰 차이는 YAML frontmatter입니다.

---
name: deploy
description: 프로덕션 배포
disable-model-invocation: true
allowed-tools: Bash(ssh *) Bash(rsync *)
model: claude-opus-4-7
context: fork
---

배포 순서:
1. 테스트 실행
2. 빌드
3. 서버에 전송

frontmatter로 할 수 있는 것들:

필드기능
descriptionClaude가 자동으로 skill을 선택하는 기준
disable-model-invocationClaude가 임의로 호출하는 것 방지
allowed-tools이 skill에서 쓸 수 있는 도구 제한
model특정 모델 강제 지정
context: forksubagent에서 격리 실행
paths특정 파일 패턴에서만 활성화

commands에서는 이런 제어가 전부 불가능했습니다.

자동 호출이 핵심

commands는 /명령어로 직접 호출해야만 동작했습니다. skills는 다릅니다.

description에 적절한 키워드를 넣어두면, Claude가 대화 맥락에서 관련이 있다고 판단할 때 자동으로 로드합니다. 예를 들면 다음과 같습니다.

---
name: api-conventions
description: API design patterns for this codebase
---

API 엔드포인트 작성 시:
- RESTful 명명 규칙 사용
- 일관된 에러 포맷 반환
- 요청 유효성 검사 포함

이 skill은 /api-conventions으로 호출할 수도 있고, Claude가 API 코드를 작성할 때 알아서 참조하기도 합니다.

반대로 배포처럼 사람이 타이밍을 통제해야 하는 작업은 disable-model-invocation: true를 설정해서 자동 호출을 막습니다.

마이그레이션은 어떻게

안 해도 된다

기존 .claude/commands/ 파일은 그대로 동작합니다. 이름이 같으면 skill이 우선할 뿐입니다.

하고 싶다면

  1. .claude/skills/<이름>/ 디렉토리 생성
  2. 기존 .md 파일 내용을 SKILL.md로 이동
  3. 필요하면 frontmatter 추가
  4. 기존 commands 파일 삭제

예시:

Before.claude/commands/deploy.md

프로덕션에 배포해줘.
1. 테스트 실행
2. 빌드
3. rsync로 서버에 전송

After.claude/skills/deploy/SKILL.md

---
name: deploy
description: 프로덕션 빌드 및 배포
disable-model-invocation: true
---

프로덕션에 배포해줘.
1. 테스트 실행
2. 빌드
3. rsync로 서버에 전송

내용은 같고, frontmatter만 추가됐습니다.

번들 Skills

Claude Code가 기본으로 제공하는 skills도 있습니다.

Skill기능
/batch <instruction>대규모 변경을 병렬 에이전트로 처리
/claude-apiClaude API 레퍼런스 로드
/debug [description]디버그 로깅 활성화 및 문제 분석
/loop [interval] <prompt>프롬프트를 반복 실행
/simplify [focus]최근 변경 코드의 품질 리뷰

이것들도 전부 skill입니다. 프롬프트 기반으로 Claude가 도구를 조율해서 실행합니다.

Skills 저장 위치

skill을 어디에 저장하느냐에 따라 적용 범위가 달라집니다.

위치경로적용 대상
Enterprise관리 설정조직 전체
Personal~/.claude/skills/<name>/SKILL.md모든 프로젝트
Project.claude/skills/<name>/SKILL.md해당 프로젝트만
Plugin<plugin>/skills/<name>/SKILL.md플러그인 활성화 시

제가 자주 쓰는 건 Personal에, 프로젝트 팀원과 공유할 건 Project에 넣으면 돼요.

커뮤니티 반응

병합이 발표됐을 때 커뮤니티에서 혼란이 있었습니다. GitHub에 "Merged slash commands and skills"가 뭔 말이냐는 이슈가 올라왔고, "no change in behavior"면 왜 changelog에 넣느냐는 비판도 있었습니다.

실제로 사용자 입장에서는 기존 commands가 그대로 동작하기 때문에 체감할 수 있는 변화가 거의 없었습니다. 하지만 앞으로 새로 만들 때는 skills로 만드는 편이 맞습니다. frontmatter의 자동 호출 제어, 도구 제한, subagent 실행 같은 기능은 commands에서는 쓸 수 없습니다.

정리

Commands (기존)Skills (현재)
구조마크다운 파일 1개디렉토리 (SKILL.md + 지원 파일)
자동 호출불가Claude가 맥락에 따라 자동 로드
frontmatter미지원도구 제한, 모델 지정, 자동 호출 제어 등
subagent 실행불가context: fork 지원
동작 여부여전히 동작권장
같은 이름 충돌 시-skill이 우선

기존 commands를 당장 마이그레이션할 필요는 없어요. 하지만 새로 만들 건 skills로, 기존 것도 기능이 필요하면 skills로 전환하는 게 좋아요.

참고 자료

Claude Code Routines

· 약 5분

또 나왔다

Anthropic이 자꾸 뭔가를 내놓네요.

Claude Code 데스크톱 앱이 나왔나 싶더니, 이번엔 Routines라는 기능이 2026년 4월 14일에 리서치 프리뷰로 공개됐습니다. Claude Code에서 프롬프트를 한 번 짜두면, 정해진 시간에 혹은 특정 이벤트가 발생할 때 알아서 실행되는 자동화 기능입니다.

쉽게 말하면 "AI cron job"입니다.

주의: 이 글에서 다루는 내용은 전부 리서치 프리뷰 기준입니다. API, 실행 한도, 동작 방식 모두 정식 출시 전에 바뀔 수 있습니다. "오 좋은데?" 하고 프로덕션에 넣었다가 다음 달에 스펙이 바뀌면 본인 책임입니다.

Routines가 뭔데

루틴은 Claude에게 시킬 작업을 담은 프롬프트, 작업 대상 코드베이스인 GitHub 저장소, Slack, Linear, Google Drive 같은 외부 서비스를 잇는 MCP 커넥터를 하나로 묶습니다.

이걸 한 번 설정하면 Anthropic 클라우드 VM에서 실행됩니다. 제 노트북이 꺼져 있어도 돌아갑니다. 퇴근하고 자는 동안에도 돌아갑니다.

어떻게 실행되나

트리거는 세 종류입니다.

트리거설명
Schedule시간별, 일별, 주별 반복. cron 표현식 지원. 최소 간격 1시간
APIHTTP POST로 외부 시스템이 호출. Bearer 토큰 인증
GitHub 이벤트PR 열림/닫힘, 릴리즈 생성 등에 반응

하나의 루틴에 여러 트리거를 동시에 걸 수 있습니다. 예를 들면:

  • 매일 밤 11시 + PR 열릴 때 + Sentry 알림 API 호출 → 같은 루틴이 세 가지 상황에서 모두 실행

활용 예시

  • 매일 밤 이슈 트래커를 읽어서 라벨 붙이고 Slack에 요약 보고
  • PR 열릴 때 팀 코드 리뷰 체크리스트 자동 적용
  • 에러 알림 임계값 초과 시 수정 PR 초안 자동 생성
  • 배포 후 스모크 테스트 자동 실행
  • 주간 스캔으로 API 변경 사항을 반영한 문서 업데이트 PR 생성

꽤 그럴듯합니다. 그럴듯한데, 아직 베타입니다. 잊지 말아야 합니다.

요금은

플랜월 비용일일 실행 횟수
Pro$205회
Max$100~20015회
Team / Enterprise별도25회
Free-불가
  • 루틴 실행은 기존 구독 사용량에 포함됩니다
  • "Extra Usage" 활성화 시 한도 초과분은 추가 과금으로 계속 실행됩니다
  • Free 플랜은 사용할 수 없습니다

하루 5회가 많아 보이지 않을 수 있지만, 잘 설계된 루틴 하나가 수동 작업 30분을 대체한다면 충분할 수도 있습니다.

ChatGPT Tasks랑 뭐가 다른데

이런 류의 기능하면 ChatGPT Tasks가 먼저 떠오를 수 있습니다. 근데 성격이 꽤 다릅니다.

Claude RoutinesChatGPT Tasks
실행 방식자율 코드 실행 (커밋, PR 생성까지)알림/리마인더 전달
트리거스케줄 + API + GitHub 이벤트스케줄만
개발자 연동GitHub, Slack, Linear, MCP없음
실제 작업 수행OX (사용자가 직접)

ChatGPT Tasks는 "내일 아침에 이거 확인해"라고 알려주는 알람 앱입니다. Claude Routines는 "내일 아침에 이거 확인하고 PR까지 만들어놓을게"라고 하는 자동화 에이전트입니다.

방향 자체가 다릅니다.

좋은 점

알림만 보내는 데 그치지 않고 코드 수정, PR 생성, Slack 메시지까지 실제로 수행하는 진짜 자동화입니다. 스케줄, API, GitHub 이벤트를 하나의 루틴에 동시에 설정하는 다중 트리거도 지원합니다. 클라우드 실행이라 로컬 머신에 의존하지 않습니다. 퇴근해도 돌아갑니다. MCP 커넥터에는 Slack, Linear, Google Drive 등 외부 서비스 연동 기능이 내장되어 있습니다.

우려되는 점

여기서부터가 진짜 중요합니다.

리서치 프리뷰라는 것

정식 출시가 아닙니다. API 스펙, 실행 한도, 트리거 동작 방식 전부 바뀔 수 있습니다. Anthropic도 공식 문서에서 이 점을 명시하고 있습니다. 프로덕션 워크플로우에 넣기에는 이릅니다.

개인 계정에 묶인다

루틴은 개인 claude.ai 계정에 귀속됩니다. 팀원과 공유할 수 없고, 루틴이 만든 커밋/PR은 해당 개인 이름으로 찍힙니다. 팀 단위 운영이 어렵습니다.

보안 이슈

자율 실행 중 문서에 숨겨진 악성 지시를 따를 수 있는 프롬프트 인젝션 위험이 있습니다. Anthropic 자체 보고로 공격 성공률은 ~1%입니다. CVE 2건도 보고됐습니다. RCE 취약점(CVE-2025-59536)과 API 키 유출(CVE-2026-21852)입니다. 데이터 학습의 경우 Pro/Max 플랜은 AI 학습을 위한 데이터 사용이 기본 ON이고, Enterprise만 OFF입니다.

벤더 락인

루틴 설정이 Anthropic 클라우드에 저장됩니다. git에 백업되지 않습니다. 나중에 다른 도구로 갈아타고 싶어도 이식할 방법이 없습니다.

사내에서 쓸 수 있을까

솔직히 말하면, 지금 당장 프로덕션에 넣기는 이르다고 봐요.

가능한 부분

  • Team/Enterprise 플랜에서 사용 가능
  • SOC 2 Type 2, ISO 27001 인증 있음
  • Enterprise는 클라우드 세션 감사 로그 지원
  • 네트워크 프록시로 개인 계정 차단 가능 (Enterprise)

아직 안 되는 부분

이슈상세
리서치 프리뷰API 안정성 미보장
감사 로그 공백Cowork 모드 활동은 감사 로그에서 제외
개인 계정 귀속팀 루틴 공유 불가, 변경 추적 곤란
사용자 권한 제어세일즈 별도 문의 필요
PII/금융 데이터규제 대상 코드에 사용 부적합

현실적 접근법

먼저 Team 플랜으로 파일럿을 진행합니다. 비규제, 비프로덕션 환경에서 테스트하는 방식입니다.

MCP 커넥터는 제한해야 합니다. 읽기 전용이면서 관리자가 승인한 것만 허용합니다.

정식 출시를 기다리는 방법도 있습니다. GA 후 Enterprise 세일즈와 감사 로그/권한 제어를 확인합니다.

규제 데이터는 금지합니다. PII, 금융, 의료 데이터에는 절대 사용하지 않습니다.

마무리

Anthropic이 정말 쉬지 않고 무언가를 내놓고 있습니다. Subagents가 나왔나 싶더니 Agent Teams가 나오고, 이제는 Routines까지 나왔습니다. 따라가는 것만으로도 바쁩니다.

Routines의 컨셉 자체는 매력적입니다. "AI가 밤새 일한다"는 말이 과장이 아닌 시대가 정말 오고 있습니다. 하지만 지금은 리서치 프리뷰입니다. 흥미롭게 지켜보되, 프로덕션에 넣는 것은 아직 참아야 합니다.

한 가지 확실한 건, AI 도구의 변화 속도가 이전과는 차원이 다르다는 거예요. 정신 차리고 따라가야 해요. 아니면 어느 날 제 자리에서 루틴이 일하고 있을지도 모르겠어요.

이 글의 내용은 2026년 4월 16일 기준 리서치 프리뷰 상태를 바탕으로 작성되었습니다. 정식 출시 후 기능, 요금, 제한 사항이 달라질 수 있습니다.

참고 자료

Claude Code 필수 단축키

· 약 5분

Claude Code 단축키 도움말 화면

Claude Code에서 ?를 누르면 볼 수 있는 단축키 요약 화면이에요.

Claude Code 단축키 도움말

이 화면에 나오는 것들을 하나씩 풀어서 정리해보겠습니다.

단축키를 왜 알아야 하나

Claude Code를 터미널에서 쓰다 보면, 마우스 없이 모든 걸 해결해야 하는 순간이 옵니다. 긴 프롬프트를 수정하고, 실행을 취소하고, 모델을 바꾸고, 히스토리를 뒤지는 일이 전부 키보드로 가능합니다.

문제는 단축키가 꽤 많다는 점입니다. 전부 외울 필요는 없습니다. 이 글에서는 매일 쓰게 되는 것만 추렸습니다.

이 시리즈는 3편으로 구성됩니다.

  • 1편: 필수 단축키 (이 글)
  • 2편: Vim 모드
  • 3편: 커스터마이징 & 세부 컨텍스트

macOS 터미널 설정부터

시작하기 전에 하나 짚고 가겠습니다. macOS에서 Option(Alt) 키 조합이 안 먹히는 경우가 많습니다. 터미널 설정을 먼저 바꿔야 합니다.

터미널설정 방법
iTerm2Settings → Profiles → Keys → Left/Right Option key → "Esc+"
Terminal.appSettings → Profiles → Keyboard → "Use Option as Meta Key" 체크
VS Code설정에서 "terminal.integrated.macOptionIsMeta": true 추가

이걸 안 하면 Option+P, Option+T 같은 단축키가 특수문자만 입력됩니다. 꼭 먼저 설정해야 합니다.

일반 제어

가장 자주 쓰는 기본 조작입니다.

단축키기능비고
Ctrl+C현재 입력 또는 실행 취소가장 많이 누르게 됨
Ctrl+DClaude Code 종료EOF 시그널
Ctrl+L입력창 내용 지우기대화 기록은 유지
Ctrl+R히스토리 역방향 검색이전 프롬프트를 찾을 때
Ctrl+O트랜스크립트 뷰어 토글도구 실행 상세 내용 확인
Ctrl+B실행 중인 작업 백그라운드로tmux 사용자는 두 번 눌러야 함
Ctrl+T태스크 목록 토글진행 상황 확인
Esc × 2되감기(Rewind) / 요약이전 상태로 복원

히스토리 검색 모드 (Ctrl+R 이후)

히스토리 검색에 진입하면 쓸 수 있는 키가 따로 있습니다.

단축키기능
Ctrl+R다음(이전) 매칭 결과로 이동
Tab 또는 Esc현재 결과 선택 후 편집 계속
Enter현재 결과 선택 후 바로 실행
Ctrl+C검색 취소, 원래 입력 복원

텍스트 편집

프롬프트가 길어질수록 이 단축키들이 빛을 발합니다.

단축키기능비고
Ctrl+K커서부터 줄 끝까지 삭제삭제된 텍스트 저장됨
Ctrl+U커서부터 줄 시작까지 삭제줄 전체 지울 때 유용
Ctrl+Y삭제한 텍스트 붙여넣기Ctrl+K/Ctrl+U로 지운 것
Alt+B한 단어 뒤로 이동macOS: Option 설정 필요
Alt+F한 단어 앞으로 이동macOS: Option 설정 필요
Ctrl+_실행 취소(Undo)Ctrl+Shift+-도 동일
Ctrl+S현재 프롬프트 임시 저장(Stash)나중에 다시 불러올 수 있음

Ctrl+K로 지우고 Ctrl+Y로 붙여넣는 조합은 터미널의 킬 링(kill ring)과 같은 원리입니다. 익숙해지면 마우스 드래그보다 빠릅니다.

멀티라인 입력

Claude Code에서 한 줄짜리 프롬프트만 쓰지는 않습니다. 여러 줄 입력하는 방법을 알아두어야 합니다.

방법단축키비고
이스케이프\ + Enter모든 터미널에서 동작
macOS 기본Option+EntermacOS 기본값
Shift+EnterShift+EnteriTerm2, WezTerm, Ghostty, Kitty
줄바꿈 문자Ctrl+J라인 피드
붙여넣기코드 블록 직접 붙여넣기코드, 로그 등

VS Code, Alacritty, Zed, Warp 터미널에서 Shift+Enter를 쓰려면 /terminal-setup을 실행해서 바인딩을 설치해야 합니다.

또 하나 유용한 단축키가 있습니다.

단축키기능
Ctrl+G 또는 Ctrl+X Ctrl+E외부 에디터에서 프롬프트 편집

프롬프트가 정말 길어지면 터미널에서 편집하는 게 고역입니다. 이 단축키를 누르면 기본 에디터(보통 vim이나 nano)가 열리고, 거기서 편하게 작성할 수 있습니다. 저장하고 나오면 바로 입력됩니다.

모드와 모델 전환

Claude Code를 쓰다가 모델을 바꾸거나 모드를 전환하고 싶을 때는 명령어를 칠 필요가 없습니다.

단축키기능비고
Shift+Tab권한 모드 순환default → acceptEdits → plan → auto → bypassPermissions
Option+P모델 전환프롬프트 유지한 채로 변경
Option+T확장 사고(Extended Thinking) 토글
Option+OFast 모드 토글

Windows/Linux에서는 Option 대신 Alt를 사용합니다.

Shift+Tab은 특히 자주 씁니다. 코드 수정이 맘에 안 들면 plan 모드로 바꿔서 계획을 먼저 세우게 하고, 빠르게 진행하고 싶으면 auto로 전환하는 식입니다.

입력 프리픽스

프롬프트 첫 글자에 따라 동작이 달라집니다.

프리픽스기능예시
/명령/스킬 메뉴 열기/help, /config, /doctor
!셸 명령 직접 실행!git status, !npm test
@파일 경로 자동완성@src/index.ts

!은 Claude에게 시키지 않고 직접 셸 명령을 실행할 때 씁니다. git status 같은 단순 확인을 AI한테 시키면 아깝습니다.

프롬프트 제안

Claude Code가 회색 텍스트로 다음 입력을 제안할 때가 있습니다.

기능
Tab 또는 제안 수락
Enter제안 수락 + 바로 전송
아무 키나 타이핑제안 무시

이미지 붙여넣기

스크린샷이나 이미지를 Claude에게 보여줘야 할 때도 있습니다.

단축키기능
Ctrl+V클립보드 이미지 붙여넣기
Cmd+ViTerm2에서 이미지 붙여넣기

붙여넣으면 [Image #N] 형태로 입력창에 표시됩니다.

확인/권한 다이얼로그

Claude가 파일을 수정하거나 명령을 실행하려 할 때 나오는 확인 창에서 쓸 수 있는 키입니다.

단축키기능
Y 또는 Enter승인
N 또는 Escape거부
/ 옵션 이동
Ctrl+E권한 설명 토글

한눈에 보기

마지막으로 매일 쓰는 것만 골라서 한 장에 정리했습니다.

[일반]
Ctrl+C .......... 취소
Ctrl+D .......... 종료
Ctrl+L .......... 입력 지우기
Ctrl+R .......... 히스토리 검색
Esc × 2 ........ 되감기

[편집]
Ctrl+K .......... 줄 끝까지 삭제
Ctrl+U .......... 줄 시작까지 삭제
Ctrl+Y .......... 붙여넣기 (킬 링)
Alt+B / Alt+F ... 단어 단위 이동
Ctrl+J .......... 줄바꿈

[전환]
Shift+Tab ....... 권한 모드 순환
Option+P ........ 모델 전환
Option+T ........ 사고 모드 토글
Option+O ........ Fast 모드 토글

[입력]
/ ............... 명령 메뉴
! ............... 셸 실행
@ ............... 파일 자동완성

다음 편 예고

2편에서는 Claude Code의 Vim 모드를 다뤄요. /config에서 활성화하면 Normal/Insert 모드 전환, h/j/k/l 내비게이션, 텍스트 오브젝트까지 전부 쓸 수 있어요. Vim 사용자라면 기대해도 좋아요.

이 글은 2026년 4월 기준 Claude Code v2.1.x 기준으로 작성되었습니다. 버전에 따라 단축키가 다를 수 있습니다. ?를 눌러 현재 환경의 단축키를 확인할 수 있습니다.

참고 자료

Claude Code 고급 단축키

· 약 4분

여기까지 왔다면

1편에서 필수 단축키를, 2편에서 Vim 모드를 다뤘어요. 3편에서는 키 바인딩 커스터마이징과 특정 화면에서만 쓰는 세부 컨텍스트 단축키를 정리해요.

이 시리즈는 3편으로 구성됩니다.

키 바인딩 커스터마이징

설정 파일 열기

Claude Code 안에서 /keybindings를 입력하면 ~/.claude/keybindings.json 파일이 열립니다. 없으면 자동 생성됩니다. 변경 사항은 재시작 없이 즉시 적용됩니다.

설정 형식

[
{
"key": "ctrl+enter",
"command": "chat:submit",
"when": "Chat"
},
{
"key": "ctrl+shift+k",
"command": "chat:clearInput",
"when": "Global"
}
]
  • key: 키 조합 (ctrl, alt, shift, meta + 키)
  • command: namespace:action 형식의 액션 이름
  • when: 적용 컨텍스트

바인딩 해제

특정 단축키를 비활성화하려면 commandnull로 설정합니다.

[
{
"key": "ctrl+s",
"command": null,
"when": "Chat"
}
]

사용 가능한 컨텍스트

컨텍스트설명
Global어디서나 동작
Chat채팅 입력 중
Autocomplete자동완성 메뉴
Confirmation확인/권한 다이얼로그
Settings설정 화면
Help도움말 화면
Transcript트랜스크립트 뷰어
HistorySearch히스토리 검색 모드
Tabs탭 내비게이션
Attachments이미지 첨부
Footer하단 바
MessageSelector메시지 선택 (되감기)
DiffDialog디프 뷰어
ModelPicker모델 선택
Scroll스크롤 모드
Plugin플러그인 관리자
Doctor/doctor 화면
ThemePicker테마 선택

바인딩 불가 키

다음 키는 터미널 수준에서 예약되어 있어 변경할 수 없습니다.

이유
Ctrl+C인터럽트 시그널 (하드코딩)
Ctrl+DEOF 시그널 (하드코딩)
Ctrl+MEnter와 동일 (터미널에서 둘 다 CR 전송)

설정 검증

/doctor

키 바인딩 설정에 문제가 있으면 /doctor에서 확인할 수 있습니다.

트랜스크립트 뷰어

Ctrl+O로 트랜스크립트 뷰어를 열면, Claude가 어떤 도구를 실행했는지 상세하게 볼 수 있습니다. MCP 호출 내용도 여기서 확인 가능합니다.

단축키기능
Ctrl+E전체 내용 펼치기/접기
/검색 모드 진입
n다음 검색 결과
N이전 검색 결과
q, Ctrl+C, Esc뷰어 닫기

풀스크린 모드에서 Ctrl+O를 반복하면 normal → transcript → focus view 순서로 전환됩니다.

디프 뷰어

Claude가 파일을 수정했을 때 나오는 디프 화면에서 쓸 수 있는 키입니다.

단축키기능
Esc디프 뷰어 닫기
/ 이전/다음 디프 소스
/ 이전/다음 파일
Enter디프 상세 보기

되감기 / 요약 (메시지 선택)

Esc × 2로 진입하는 메시지 선택 화면의 단축키입니다.

단축키기능
, K, Ctrl+P위로 이동
, J, Ctrl+N아래로 이동
Shift+K, Ctrl+↑맨 위로 점프
Shift+J, Ctrl+↓맨 아래로 점프
Enter메시지 선택

Vim 스타일의 J/K 이동도 지원하는 점이 눈에 띕니다.

스크롤 / 풀스크린 모드

풀스크린 렌더링이 활성화된 상태에서 사용 가능합니다.

단축키기능
PageUp반 화면 위로 스크롤
PageDown반 화면 아래로 스크롤
Ctrl+Home대화 맨 처음으로
Ctrl+End최신 메시지로 (자동 따라가기 재활성화)
Ctrl+Shift+C / Cmd+C선택한 텍스트 클립보드에 복사
마우스 휠한 줄씩 스크롤

이미지 첨부 내비게이션

이미지를 여러 장 붙여넣은 후 관리할 때 씁니다.

단축키기능
다음 첨부
이전 첨부
Backspace / Delete선택한 첨부 삭제
또는 Esc첨부 내비게이션 종료

PR 상태, 태스크 등이 표시되는 하단 바에서 쓸 수 있는 키입니다.

단축키기능
/ 항목 이동
/ 위/아래 탐색
Enter선택한 항목 열기
Esc선택 해제
Cmd+클릭 (Mac)PR 링크를 브라우저에서 열기

설정 화면

/config로 진입하는 설정 화면의 단축키입니다.

단축키기능
/검색 모드
R사용량 데이터 다시 로드
Enter저장 후 닫기
Esc변경사항 버리고 닫기

모델 선택

Option+P로 모델 선택 화면에 진입하면 다음 단축키를 쓸 수 있습니다.

단축키기능
노력 수준(effort) 낮추기
노력 수준 높이기

플러그인 관리자

단축키기능
Space플러그인 선택/해제
I선택한 플러그인 설치

터미널 멀티플렉서 충돌

tmux나 screen을 쓰고 있다면 일부 단축키가 충돌할 수 있습니다.

단축키충돌 대상해결법
Ctrl+Btmux 프리픽스두 번 눌러서 Claude Code로 전달
Ctrl+AGNU screen 프리픽스두 번 눌러서 전달
Ctrl+ZUnix 프로세스 일시정지 (SIGTSTP)의도치 않게 누르지 않도록 주의

tmux 사용자는 Ctrl+B를 백그라운드 전환에 쓸 때 항상 두 번 눌러야 한다는 것만 기억하면 됩니다.

한눈에 보기: 커스터마이징 요약

[키 바인딩]
/keybindings .... 설정 파일 열기
/doctor ......... 설정 검증
재시작 불필요 .... 변경 즉시 적용

[트랜스크립트 뷰어] (Ctrl+O)
/ ............... 검색
n / N ........... 다음/이전 결과
Ctrl+E .......... 전체 펼치기
q ............... 닫기

[디프 뷰어]
← / → .......... 디프 소스 전환
↑ / ↓ .......... 파일 전환
Esc ............. 닫기

[되감기] (Esc × 2)
J / K ........... 위/아래 이동
Enter ........... 선택

[주의: 멀티플렉서]
Ctrl+B .......... tmux와 충돌 (두 번 누르기)
Ctrl+A .......... screen과 충돌 (두 번 누르기)

시리즈를 마치며

3편에 걸쳐 Claude Code의 단축키를 정리했습니다. 솔직히 전부 외울 필요는 없습니다. 1편의 필수 단축키만 익혀도 충분하고, 나머지는 필요할 때 이 글을 찾아보면 됩니다.

한 가지 팁을 남기자면, Claude Code 안에서 ?를 누르면 현재 환경에서 쓸 수 있는 단축키가 바로 나옵니다. 이 글보다 그게 더 빠를 수 있습니다.

이 글은 2026년 4월 기준 Claude Code v2.1.x 기준으로 작성했어요. /keybindings 커스터마이징은 v2.1.18 이상이 필요해요.

참고 자료

Claude Code Vim 단축키

· 약 5분

Claude Code에 Vim이 있다고?

있어요. /config에서 에디터 모드를 Vim으로 바꾸면 돼요. 그 순간부터 Claude Code의 입력창이 Vim처럼 동작해요.

Normal 모드와 Insert 모드가 분리되고, h/j/k/l로 이동하고, dd로 줄을 지우고, ciw로 단어를 바꿀 수 있습니다. Vim 사용자라면 손에 익은 그대로입니다.

이 시리즈는 3편으로 구성됩니다.

  • 1편: 필수 단축키
  • 2편: Vim 모드 (이 글)
  • 3편: 커스터마이징 & 세부 컨텍스트

활성화 방법

Claude Code 실행 후 /config를 입력하고, Editor mode를 Vim으로 변경합니다. 별도 설치나 플러그인은 필요 없습니다.

참고로 Vim 모드와 일반 키 바인딩은 독립적으로 동작합니다. Vim 모드를 켜도 Ctrl+C, Ctrl+R 같은 일반 단축키는 그대로 쓸 수 있습니다.

모드 전환

Vim의 핵심은 모드입니다. Claude Code에서도 동일하게 적용됩니다.

Insert → Normal

동작
EscNormal 모드 진입

Normal → Insert

동작커서 위치
i커서 앞에서 입력 시작현재 위치
I줄 시작에서 입력 시작줄 맨 앞
a커서 뒤에서 입력 시작한 칸 뒤
A줄 끝에서 입력 시작줄 맨 뒤
o아래에 새 줄 열기새 줄
O위에 새 줄 열기새 줄

Vim을 써본 적이 있다면 완전히 같은 동작입니다. 처음이라면 i로 입력하고 Esc로 나온다는 것만 기억하면 됩니다.

내비게이션 (Normal 모드)

기본 이동

동작
h왼쪽
j아래
k
l오른쪽

화살표 키도 동작하지만, Vim을 쓰는 이유는 홈 로우에서 손을 떼지 않는 데 있지 않습니까.

단어 단위 이동

동작
w다음 단어 시작으로
e현재 단어 끝으로
b이전 단어 시작으로

줄 단위 이동

동작
0줄 맨 앞
$줄 맨 뒤
^첫 번째 비공백 문자

전체 이동

동작
gg입력 맨 처음
G입력 맨 끝

문자 점프

동작
f{문자}다음 해당 문자로 이동
F{문자}이전 해당 문자로 이동
t{문자}다음 해당 문자 바로 앞으로
T{문자}이전 해당 문자 바로 뒤로
;마지막 f/F/t/T 반복
,마지막 f/F/t/T 반대 방향

예를 들어 f=을 누르면 커서가 다음 = 문자로 점프합니다. ;을 누르면 그다음 =으로 계속 이동합니다. 긴 프롬프트에서 특정 위치를 빠르게 찾을 때 유용합니다.

히스토리 탐색

동작
j (맨 아래에서)이전 명령어로
k (맨 위에서)다음 명령어로

커서가 더 이상 이동할 수 없는 경계에 도달하면 명령어 히스토리를 탐색합니다.

편집 (Normal 모드)

삭제

동작
x커서 위 문자 삭제
dd줄 전체 삭제
D커서부터 줄 끝까지 삭제
dw다음 단어까지 삭제
de단어 끝까지 삭제
db이전 단어까지 삭제

변경 (삭제 후 Insert 모드 진입)

동작
cc줄 전체 변경
C커서부터 줄 끝까지 변경
cw다음 단어까지 변경
ce단어 끝까지 변경
cb이전 단어까지 변경

d는 삭제만 하고 Normal 모드에 남습니다. c는 삭제 후 바로 Insert 모드로 전환됩니다. 뭔가를 지우고 바로 다시 타이핑하려면 c 계열이 키 입력을 한 번 줄여줍니다.

복사 & 붙여넣기

동작
yy 또는 Y줄 전체 복사(yank)
yw다음 단어까지 복사
ye단어 끝까지 복사
yb이전 단어까지 복사
p커서 뒤에 붙여넣기
P커서 앞에 붙여넣기

기타 편집

동작
>>들여쓰기
<<내어쓰기
J아래 줄과 합치기
.마지막 편집 반복

.은 꽤 강력합니다. cw로 단어를 바꾼 뒤 .을 누르면 같은 동작을 반복하므로, 여러 곳에서 같은 수정을 할 때 시간을 아낄 수 있습니다.

텍스트 오브젝트

Vim의 진짜 힘은 텍스트 오브젝트에 있습니다. d, c, y 같은 오퍼레이터와 조합해 사용합니다.

단어

범위
iw단어 안쪽 (inner word)
aw단어 + 주변 공백 (a word)
iWWORD 안쪽 (공백 기준 단어)
aWWORD + 주변 공백

괄호 / 따옴표

범위
i" / a"큰따옴표 안쪽 / 포함
i' / a'작은따옴표 안쪽 / 포함
i( / a(소괄호 안쪽 / 포함
i[ / a[대괄호 안쪽 / 포함
i{ / a{중괄호 안쪽 / 포함

실전 조합 예시

입력동작
ciw커서 위 단어를 삭제하고 입력 모드
di"큰따옴표 안의 내용 삭제
ya(소괄호 포함해서 복사
ci{중괄호 안의 내용을 바꾸기

예를 들어 프롬프트에 "이전 파일을 수정해줘"라고 적었는데 따옴표 안의 내용만 바꾸고 싶다면, 따옴표 안에 커서를 두고 ci"를 누르면 됩니다. 따옴표 안의 텍스트가 지워지면서 바로 새 내용을 입력할 수 있습니다.

Normal 모드에서 도움말

동작
?도움말 메뉴 표시

Vim 모드에서 Normal 모드일 때 ?를 누르면 현재 환경에서 사용 가능한 단축키 목록을 볼 수 있습니다.

한눈에 보기

[모드 전환]
Esc ............. Normal 모드
i / a ........... Insert 모드 (앞/뒤)
I / A ........... Insert 모드 (줄 시작/끝)
o / O ........... 새 줄 열기 (아래/위)

[이동]
h/j/k/l ........ 좌/하/상/우
w / e / b ...... 단어 (시작/끝/이전)
0 / $ / ^ ...... 줄 (맨앞/맨뒤/첫글자)
gg / G ......... 전체 (처음/끝)
f{c} / t{c} .... 문자 점프

[편집]
x .............. 문자 삭제
dd / D ......... 줄 삭제 / 줄끝까지
cc / C ......... 줄 변경 / 줄끝까지
yy / p / P ..... 복사 / 붙여넣기
. .............. 마지막 편집 반복

[텍스트 오브젝트]
ciw ............ 단어 변경
di" ............ 따옴표 안 삭제
ci( ............ 괄호 안 변경
ya{ ............ 중괄호 포함 복사

다음 편 예고

3편에서는 커스터마이징과 세부 컨텍스트 단축키를 다뤄요. keybindings.json으로 키를 재설정하는 방법, Transcript Viewer, Diff Viewer, 스크롤 모드 등 특정 상황에서만 쓰는 단축키를 정리할게요.

이 글은 2026년 4월 기준 Claude Code v2.1.x 기준으로 작성되었습니다. Vim 모드는 /config → Editor mode에서 활성화할 수 있습니다.

참고 자료

Claude HUD 상태 표시줄

· 약 3분

Claude Code를 쓸 때 궁금한 것들

Claude Code로 작업하다 보면 이런 생각이 들어요:

  • 컨텍스트를 얼마나 썼지? 곧 한계에 도달하나?
  • 지금 무슨 도구를 실행 중이지? 파일을 읽고 있나, 편집 중인가?
  • 서브에이전트가 돌고 있는데 얼마나 걸리고 있지?
  • 할 일 목록에서 몇 번째까지 끝났지?

이 정보들을 터미널 하단에 항상 보여주는 플러그인이 Claude HUD예요. GitHub Stars 18.7k로 Claude Code 플러그인 중 가장 인기가 많아요.

뭘 보여주는가

Claude HUD는 터미널 입력창 바로 아래에 상태 표시줄을 추가합니다.

[Opus] │ my-project git:(main*)
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)

기본 표시 항목

항목설명
모델명현재 사용 중인 모델 (Opus, Sonnet 등)
프로젝트 경로작업 디렉토리 (depth 조절 가능)
Git 브랜치현재 브랜치 + dirty 상태(*), ahead/behind 표시
Context 바컨텍스트 윈도우 사용률 (1M 토큰 기준)
Usage 바구독 사용량 (주간 한도 대비)

선택 표시 항목

설정으로 다음 정보를 추가할 수 있습니다.

도구 활동

◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2

지금 Claude가 어떤 파일을 편집 중인지, 몇 번 읽기/검색을 했는지 실시간으로 보입니다.

에이전트 상태

◐ explore [haiku]: Finding auth code (2m 15s)

서브에이전트가 돌고 있을 때 어떤 에이전트가 뭘 하고 있는지, 얼마나 걸렸는지 표시합니다.

할 일 진행률

▸ Fix authentication bug (2/5)

TaskCreate로 만든 할 일 목록의 진행 상황을 보여줍니다.

왜 유용한가

1. 컨텍스트 관리

Claude Code는 대화가 길어지면 컨텍스트 윈도우가 차오릅니다. 가득 차면 이전 내용이 압축되면서 맥락을 잃을 수 있습니다. Context 바를 보면서 적절한 시점에 새 대화를 시작할 수 있습니다.

2. 대기 시간 활용

Claude가 뭘 하고 있는지 보이면, 기다릴지 다른 일을 할지 판단할 수 있습니다. "에이전트가 탐색 중이니 2분은 걸리겠군" 같은 판단이 가능해집니다.

3. 사용량 추적

구독 사용자라면 주간 사용량 한도가 있습니다. Usage 바를 보면서 속도를 조절할 수 있습니다. 80% 이상이면 경고 표시도 됩니다.

설치

Claude Code 안에서 3줄이면 됩니다.

/plugin marketplace add jarrodwatts/claude-hud
/plugin install claude-hud
/claude-hud:setup

setup에서 프리셋을 선택할 수 있습니다.

프리셋표시 내용
Full도구, 에이전트, 할 일, Git, 사용량 전부 표시
Essential활동 상태 + Git, 적당한 밀도
Minimal모델명 + 컨텍스트 바만

설치 후 Claude Code를 재시작하면 적용됩니다.

설정 커스터마이징

~/.claude/plugins/claude-hud/config.json에서 세부 설정을 조정할 수 있습니다.

{
"language": "en",
"lineLayout": "expanded",
"pathLevels": 1,
"gitStatus": { "enabled": true },
"display": {
"showTools": true,
"showAgents": true,
"showTodos": true,
"showDuration": false,
"showMemoryUsage": false,
"showCost": false
}
}

레이아웃

  • expanded: 여러 줄로 펼쳐서 표시 (정보 밀도 높음)
  • compact: 한 줄로 압축 (화면 절약)

경로 깊이

pathLevels: 1 → my-project
pathLevels: 2 → apps/my-project
pathLevels: 3 → dev/apps/my-project

색상

named color(dim, red, green 등), 256-color 번호(0-255), hex 값(#rrggbb) 모두 지원합니다.

동작 원리

Claude HUD는 Claude Code의 statusline API를 사용합니다.

  • Claude Code가 약 300ms 간격으로 세션 데이터를 JSON으로 전달
  • HUD가 이를 파싱해서 컨텍스트 사용량, 토큰 속도 등을 계산
  • transcript JSONL 파일을 읽어 도구 사용, 에이전트, 할 일 상태를 추출
  • 포맷팅된 텍스트를 터미널 하단에 출력

별도 창이나 tmux 없이, Claude Code 터미널 자체에 통합됩니다.

요구사항

  • Claude Code v1.0.80 이상
  • Node.js 18+ 또는 Bun

마치며

Claude Code를 많이 쓸수록 "지금 뭘 하고 있는지"가 중요해집니다. 특히 서브에이전트를 여러 개 띄우거나, 긴 작업을 시킬 때 HUD가 있으면 체감이 크게 다릅니다.

설치에 1분, 설정에 1분이면 되니까 한번 써보는 걸 추천해요.

GitHub: jarrodwatts/claude-hud

Claude Code 햅틱 알림

· 약 4분

문제: Claude Code는 기다려주지 않는다

Claude Code를 쓰다 보면 이런 상황이 반복돼요.

  1. Claude에게 작업을 시키고 브라우저로 전환
  2. 한참 뒤에 돌아와 보니 "권한 승인 대기 중"에서 멈춰 있습니다
  3. 또는 이미 끝났는데 모르고 한참을 기다립니다

터미널을 계속 쳐다보고 있을 수도 없고, 다른 일을 하자니 Claude가 언제 저를 부르는지 알 수가 없습니다.

그런데 손에 쥐고 있는 마우스가 진동으로 알려준다면?

claude-code-logitech-haptic-plugin

claude-code-logitech-haptic-plugin은 Claude Code의 이벤트를 Logitech MX Master 4의 햅틱 모터와 연결해주는 플러그인입니다.

작동 원리는 단순합니다.

Claude Code 이벤트 → Hook → 쉘 스크립트 → HTTP API → HapticWebPlugin → MX Master 4 진동

Claude Code는 hooks 시스템을 통해 특정 이벤트 발생 시 외부 스크립트를 실행할 수 있습니다. 이 플러그인은 그 hook에 햅틱 API 호출을 연결한 것입니다.

어떤 상황에서 진동하는가

세 가지 이벤트에 각각 다른 진동 패턴이 매핑되어 있습니다.

상황진동 패턴느낌
권한 승인 요청knock톡톡 — 노크하듯 두 번
60초 이상 입력 대기ringing르르르 — 전화 오듯 울림
작업 완료completed뚝 — 깔끔한 완료 펄스

손바닥에 닿아 있는 마우스에서 미세한 진동이 오기 때문에, 다른 모니터를 보거나 문서를 읽고 있어도 바로 알 수 있습니다. 소리 알림과 달리 주변 사람을 방해하지도 않습니다.

MX Master 4 사용자에게 추천하는 이유

MX Master 4는 Logitech 마우스 중 햅틱 스크롤 휠이 탑재된 몇 안 되는 모델입니다. 이 햅틱 모터를 스크롤 피드백 외에도 활용할 수 있게 해주는 것이 HapticWebPlugin이고, 이 플러그인은 그것을 Claude Code와 연결합니다.

이미 MX Master 4를 쓰고 있다면 추가 하드웨어 없이 소프트웨어만으로 완성됩니다.

설치

1단계: HapticWebPlugin 설치

Logi Options+에서 플러그인을 설치합니다.

  1. Logi Options+ 열기 → MX Master 4 선택
  2. HAPTIC FEEDBACK 탭 → 설정(⚙️) 클릭
  3. INSTALL AND UNINSTALL PLUGINS 버튼
  4. 레포의 plugin/HapticWeb.lplug4 파일을 더블클릭
  5. Continue로 설치 완료

설치 확인: haptics.jmw.nz/playground에서 진동 패턴을 테스트해볼 수 있습니다.

2단계: Claude Code 플러그인 설치

git clone https://github.com/ChefJodlak/claude-code-logitech-haptic-plugin.git
cd claude-code-logitech-haptic-plugin
./install.sh

설치 스크립트가 다음 작업을 자동으로 수행합니다.

  • OS 감지
  • HapticWebPlugin 연결 확인
  • ~/.claude/hooks/ 디렉토리에 스크립트 설치
  • ~/.claude/settings.json에 hook 설정 추가
  • 테스트 진동 실행

3단계: Claude Code 재시작

Hook 설정은 시작 시 로드되므로, 실행 중인 Claude Code를 재시작하면 바로 적용됩니다.

진동 패턴 커스터마이징

기본 매핑이 마음에 들지 않으면 ~/.claude/hooks/haptic-trigger.sh에서 변경할 수 있습니다.

WAVEFORM_PERMISSION="knock" # 권한 요청
WAVEFORM_IDLE="ringing" # 입력 대기
WAVEFORM_COMPLETE="completed" # 작업 완료

선택 가능한 진동 패턴은 15가지입니다.

분류패턴
정밀 피드백sharp_collision, damp_collision, subtle_collision, damp_state_change
진행/완료sharp_state_change, completed, firework, happy_alert, wave
긴급 알림angry_alert, mad, square
수신 알림knock, ringing, jingle

작업 완료 시 firework(축하 폭죽 패턴)을 쓰면 기분이 좋아질 수도 있습니다.

진동 강도 조절

Logi Options+ → MX Master 4 → Haptic Feedback → Strength 슬라이더로 조절합니다. Subtle, Low, Medium, High 4단계가 있습니다. API로는 강도 제어가 안 되고 Logi Options+에서만 가능합니다.

동작 확인 및 트러블슈팅

# HapticWebPlugin 동작 확인
curl -s https://local.jmw.nz:41443/

# 수동으로 진동 테스트
curl -X POST -d "" https://local.jmw.nz:41443/haptic/completed

# hook 스크립트 수동 테스트
echo '{"hook_event_name": "Stop"}' | ~/.claude/hooks/haptic-trigger.sh

진동이 안 된다면 다음 사항을 확인합니다.

  • Logi Options+가 실행 중인지 확인
  • MX Master 4가 연결되어 있는지 확인
  • ~/.claude/hooks/haptic-trigger.sh에 실행 권한이 있는지 확인 (chmod +x)

제거

cd claude-code-logitech-haptic-plugin
./uninstall.sh

마치며

이 플러그인의 가치는 기술적 복잡성이 아니라 컨텍스트 스위칭 비용을 줄여준다는 점에 있습니다. Claude Code에게 작업을 시키고 다른 일을 할 수 있게 되면, AI 코딩의 실질적인 생산성이 달라집니다.

MX Master 4 사용자라면 한 번 설치해볼 만해요. 설치에 5분도 안 걸리고, 되돌리기도 쉬워요.

GitHub: ChefJodlak/claude-code-logitech-haptic-plugin