모드는 Claude Code의 동작 방식을 바꿔 주는 작은 TypeScript 함수입니다. 프롬프트를 고쳐 쓰고, 위험한 명령어를 차단하고, 원하는 UI를 추가하거나 기본 기능을 다른 것으로 바꿀 수 있습니다. 직접 작성해도 되고 Claude Code에 작성을 맡겨도 되며, 완성한 모드는 플러그인으로 공유할 수 있습니다.
오늘 Claude Code의 동작 방식을 바꿔 주는 작은 TypeScript 함수, 모드(mod)를 선보입니다. 모드를 사용하면 프롬프트를 고쳐 쓰고, 새로운 UI를 추가하고, 기본 기능을 다른 것으로 바꾸고, 아예 새로운 기능을 만들 수도 있습니다. 직접 작성해도 되고, Claude Code에 작성을 맡겨도 됩니다. 모드는 플러그인에 담겨 배포되므로 다른 플러그인과 똑같이 설치하고 공유할 수 있습니다. Claude Code CLI와 데스크톱 앱에서 모두 사용할 수 있습니다.
모드는 Claude Code와 동일한 권한으로 사용자의 컴퓨터에 접근합니다. 샌드박스로 격리되지 않으므로, 컴퓨터에 코드를 설치할 때와 마찬가지로 신뢰할 수 있는 출처의 모드만 설치하세요.
모드로 무엇을 할 수 있는지 궁금하다면 첫 모드 만들기 가이드를 읽어 보세요.
개발자들은 새 기능이 나오기를 기다리지 않고도 Claude Code의 동작을 더 세밀하게 제어하고 싶다는 요청을 꾸준히 해 왔습니다. 훅(hook)이 이런 요구를 어느 정도 충족해 주었지만, 훅으로는 이벤트를 고쳐 쓰거나 새 UI를 그리거나 기능을 교체할 수 없습니다. 모드라면 가능합니다.
저희는 Claude Code를 각자의 작업 방식에 맞게 다듬어 내 도구처럼 쓸 수 있기를 바랍니다. 그래서 출시 전에 모드의 설계를 GitHub에 공개하고 개발자들의 의견을 들었습니다. 의견을 주신 모든 분께 감사드립니다.
Claude Code는 도구를 호출하거나, 권한을 요청하거나, 화면의 일부를 그릴 때처럼 무언가를 할 때마다 이벤트를 발생시킵니다. 모드는 이런 이벤트에 연결되는 함수입니다. 이벤트 전이나 후에 실행할 수도 있고, 이벤트를 대신해 실행할 수도 있으며, 이벤트를 감싸서 전후 모두에 코드를 실행할 수도 있습니다. 함수 하나로 모드는 다음과 같은 일을 할 수 있습니다.
모드는 화면에 보이는 내용도 바꿀 수 있습니다. 도구 실행 결과나 Claude의 질문처럼 Claude Code가 그리는 인터페이스의 일부를 수정하거나 교체할 수 있고, 버튼과 입력창을 추가해 사용자가 누르면 다른 모드가 반응하게 할 수도 있습니다. 현재 모드는 터미널, 데스크톱 앱, 또는 둘 모두를 대상으로 만들 수 있습니다.
여러 모드가 같은 이벤트에 연결되어 있으면 로드된 순서대로 실행됩니다. 가장 먼저 로드된 모드가 이벤트를 가장 먼저 받고, 결과는 가장 마지막에 확인합니다. 덕분에 서로 다른 작성자가 만든 모드를 겹쳐 쓸 수 있습니다.
Claude Code로 Claude Code를 직접 개조할 수도 있습니다. Claude에게 모드를 만들어 달라고 하면 TypeScript 코드를 작성하고, 설치하고, 현재 세션에 핫 리로드까지 해 줍니다.
Claude Code의 기본 기능 중 일부는 이제 모드로 제공됩니다. 예를 들어 기본 /diff 기능이 모드로 바뀌었기 때문에 (/plugin에서) 끄거나 직접 만든 버전으로 교체할 수 있습니다. 앞으로 더 많은 기본 기능을 모드로 옮길 계획입니다. 그러면 Claude Code를 작은 핵심만 남기고 덜어낸 뒤, 필요한 기능만 골라 다시 추가할 수 있습니다.
모드는 플러그인에 담겨 배포되므로 기존 플러그인 제어 방식이 그대로 적용됩니다. 관리자는 플러그인 마켓플레이스를 허용하거나 차단할 수 있습니다. Team 및 Enterprise 플랜에서는 소유자가 관리자 콘솔에서 설정하고, Claude API 및 서드파티 API 플랜에서는 관리자가 사용자 컴퓨터에 관리형 설정(managed settings)을 배포합니다.
Team 및 Enterprise 플랜, 그리고 관리형 설정이 적용된 모든 컴퓨터에서는 sec-default(“보안 기본값”)라는 기본 모드가 가장 먼저 로드됩니다. 이 모드는 사용자가 설치한 모드가 권한 거부 규칙을 덮어쓰는 등 위험한 동작을 하지 못하도록 막습니다. 어떤 것을 제한하는지는 소스 코드에서 확인할 수 있습니다. 관리자가 자체 모드를 먼저 로드하도록 설정할 수도 있으며, 이 경우 제한 사항을 유지하려면 목록에 sec-default를 추가하세요.
팀은 모드로 자체 제어 기능과 새로운 기능을 만들 수도 있습니다. 예를 들면 다음과 같습니다.
모드는 지금 바로 Claude Code CLI와 데스크톱 앱에서 사용할 수 있습니다. Claude 디렉터리에서 모드가 포함된 플러그인을 설치하거나 CLI에서 /plugin를 실행해 설치하세요. 모드를 공유하려면 플러그인으로 패키징한 뒤 디렉터리에 제출하면 됩니다.