10월 1일에 Anthropic이 Claude Code Mods를 발표했습니다. TypeScript 함수로 Claude Code 자체를 개조하는 기능입니다. 프롬프트를 재작성하고, tool call을 막거나 retry하고, 새 command나 panel을 추가할 수 있습니다.

하네스 글에서 "AI를 잘 쓰는 것 다음"을 이야기했는데, Mods는 그 다음이 제품 기능으로 들어온 사례입니다. 코딩 에이전트의 경쟁력이 Model + Prompt에서 Model + Harness + Plugins + UI + Permission Layer로 이동하고 있습니다.

Mods가 뭔가: 에이전트 미들웨어

구조는 단순합니다. Claude Code가 뭔가 할 때마다 이벤트를 냅니다. 도구 호출, 권한 요청, 화면 그리기 같은 것들입니다. Mod는 그 이벤트에 걸리는 함수입니다.

이벤트 발생 (도구 호출·권한 요청·화면 그리기 등)
  → Mod 실행: 이전에 / 이후에 / 대신에 / 감싸서
  → 결과 반영

한 함수로 할 수 있는 일들입니다.

- 모델에 닿기 전 프롬프트 재작성
- tool call 차단·재작성·retry
- 권한 요청 승인·거부
- 모델이 읽기 전 도구 출력에서 비밀 redaction
- 화면 수정: 도구 결과 행·질문 다이얼로그 교체, 버튼·입력 추가
- 자기 command·tool 등록, 세션 간 상태 공유, 모델 호출

기존 shell hooks와의 차이가 핵심입니다. shell hook은 별도 프로세스가 JSON을 읽고 exit code로 답합니다. Mod는 프로세스 안에서 typed event로 돌고 그릴 수 있습니다. 순서도 정해져 있어 여러 Mod를 겹쳐 쓸 수 있습니다. 먼저 로드된 Mod가 이벤트를 먼저 보고 결과를 마지막에 봅니다.

배포 단위도 정해져 있습니다. Mod는 plugin 안에 들어갑니다. /plugin으로 설치·공유하고, 디렉터리에서 찾습니다. 심지어 Claude Code에게 "Mod 만들어줘"라고 시키면 TypeScript를 짜서 설치하고 hot reload까지 합니다. 내장 /diff도 Mod라서 끌 수 있습니다. 앞으로 내장 기능을 Mod로 빼서 작은 코어만 남기는 방향이라고 합니다.

중요한 단서: Mods는 sandbox가 아니다

Anthropic이 명시한 문장을 그대로 옮기면 이렇습니다. Mods는 Claude Code와 동일한 사용자 권한으로 실행됩니다. sandbox가 아닙니다. 파일 읽기·쓰기, 프로세스 실행, 네트워크 요청이 가능합니다. 신뢰할 수 있는 source만 설치하라는 이유입니다.

Mods 권한 모델:
- Claude Code = 당신의 권한
- Mods = Claude Code와 같은 권한
→ Mod 1개 = 당신 컴퓨터에서 도는 코드 1개와 같음

팀·엔터프라이즈용 장치도 있습니다. sec-default라는 내장 Mod가 먼저 로드돼 사용자 설치 Mod의 위험 행동(deny 규칙 무력화 등)을 막습니다. CI/CD 상태 패널, production 명령 확인, audit logging 같은 팀용 Mod 예시도 공식이 듭니다. 관리자는 marketplace 허용·차단과 자체 Mod 선행 로드로 통제합니다.

그리고 10월 3일 v2.1.289에서는 nested shell command나 symlink를 통한 permission-rule 우회 문제가 추가 수정됐습니다. MCP 재인증 글의 step-up과 같은 방향입니다. 권한 경계를 넓히는 기능이 나오면, 우회로를 막는 수정이 따라옵니다.

첫 Mod는 작게: 로깅 또는 승인 gate

브리프의 액션을 그대로 가져옵니다. 거창한 자동화보다 2종 중 1개입니다.

후보 A: tool call logging Mod
- 모든 tool call의 이름·인자·결과를 파일에 기록
- Claude Code GUI의 Activity Trail 같은 것을 내 손으로 만드는 셈
- 효과: agent가 뭘 했는지 audit 가능

후보 B: production command 승인 gate
- production config를 건드리는 명령 전에 확인 요구
- 공식 예시 그대로, deny 규칙과 함께 둔다
- 효과: 밤새 도는 agent의 안전선

이미 생태계에는 75개 Mod 디렉터리가 있습니다. budget-guard(비용 상한 초과 시 tool call 거부), harness-mods(워크플로우 그래프), autotel(OpenTelemetry traces) 같은 것들입니다. 만들지 말고 먼저 깔아보고, 없으면 만드세요.

CodeBridge Mini Lab: logging Mod 1개 설치·관찰하기

① Mod 1개를 설치한다 (/plugin 또는 디렉터리):
   - 추천: tool call logging 계열
② 긴 작업 1개를 돌린다 (테스트 있는 작업)
③ 로그를 읽는다:
   [ ] tool call 순서가 예상과 같은가
   [ ] 불필요한 반복 호출이 있는가
   [ ] 권한 요청이 어디서 나왔는가
④ 다음 Mod를 정한다:
   - 반복이 보이면: 해당 호출의 승인 gate
   - 비밀이 보이면: 출력 redaction
   - 비용이 보이면: budget-guard류 상한

하네스 글의 검증 루프와 옵저버빌리티 글의 execution 묶기가 Mod 1개로 손에 잡힙니다. 측정이 먼저, 자동화가 다음입니다.

결론: 개조할 수 있는 도구가 이긴다

한 줄로 정리합니다.

모델이 같으면 하네스가 가르고, 하네스가 같으면 개조 가능성이 가른다.

Mods는 Claude Code를 "쓰는 도구"에서 "고치는 도구"로 바꿉니다. 단 조건이 있습니다. sandbox가 아니라는 것. 신뢰할 수 있는 것만 깔고, deny 규칙은 sec-default와 함께 지키고, 첫 Mod는 로깅부터. 개조 가능성과 권한 경계는 한 세트입니다.

함께 읽으면 좋은 글

참고 자료

이 주제를 직접 따라가며 배우고 싶다면

하네스를 직접 고치고 검증 게이트를 쌓는 연습이 필요하다면, CLAUDE.md·Skills·Hooks·서브에이전트·MCP를 실제 프로젝트에 쌓는 과정이 이 글의 첫 Mod와 바로 이어집니다.