Mac에서 Claude Code의 작업 완료 알림과 확인 요청 알림을 받으세요.

Mac의 어떤 터미널에서든 Claude Code의 작업 완료 알림을 받을 수 있습니다. 작업을 멈추고 승인을 기다릴 때도 알림을 받을 수 있습니다. 필요한 설정은 사용하는 터미널에 따라 다릅니다.

기본적으로 Claude Code는 Ghostty, Kitty, iTerm2에서만 데스크탑 알림을 보냅니다. 작업을 마치거나 권한 승인을 기다리는 상황에서 사용자가 자리를 비운 것으로 보일 때 알립니다. Terminal.app, Warp, VS Code 터미널에는 배너가 표시되지 않습니다. 이 터미널에서는 /config의 Local notifications를 터미널 벨로 설정하거나 훅을 추가하세요. 작업을 마쳤을 때는 Stop, 확인이 필요할 때는 Notification을 사용합니다.

최종 업데이트:

Cowork Island

macOS 14 이상.
Apple Silicon 및 Intel.
무료 요금제는 계정이 필요 없습니다.

무료 다운로드

터미널의 기본 동작을 확인하세요.

Claude Code의 기본 제공 알림은 Claude가 작업을 마치거나 권한 요청으로 일시 정지했을 때, 사용자가 터미널을 떠나 있는 것으로 보이면 발생합니다. 이 알림이 배너로 표시되는지는 터미널 앱에 따라 다릅니다.

Mac 터미널별 Claude Code 기본 알림
터미널별도 설정이 없을 때필요한 설정
Ghostty데스크탑 알림macOS에서 해당 터미널의 알림을 허용하세요.
Kitty데스크탑 알림macOS에서 해당 터미널의 알림을 허용하세요.
iTerm2iTerm2 설정 하나를 변경하면 데스크탑 알림 표시iTerm2에서 이스케이프 시퀀스 알림을 켜세요(다음 절 참고).
Terminal.app배너 없음. 기본 설정에서는 Terminal의 Audible bell이 꺼져 있을 때만 벨이 울립니다.터미널 벨 설정이나 훅을 사용하세요.
Warp배너 없음터미널 벨 설정이나 훅을 사용하세요.
VS Code 터미널배너 없음터미널 벨 설정이나 훅을 사용하세요.
모든 터미널의 tmux알림이 전달되지 않음~/.tmux.conf에 set -g allow-passthrough on을 추가한 다음 tmux source-file ~/.tmux.conf를 실행하세요.

기본 제공 알림을 켜세요.

Claude Code에는 이를 위한 설정인 preferredNotifChannel이 있습니다. Claude Code에서 /config를 입력하고 Local notifications를 여세요. 기본값은 auto입니다. 그 밖에 terminal_bell, iterm2, iterm2_with_bell, kitty, ghostty, notifications_disabled를 선택할 수 있습니다.

터미널 벨은 프로그램이 사용자의 주의를 요청할 때 터미널에서 내는 짧은 소리나 화면 깜박임입니다. Terminal.app, Warp, VS Code에서 사용하려면 ~/.claude/settings.json 같은 Claude Code 설정 파일의 가장 바깥쪽 중괄호 안에 다음 줄을 추가하는 방법도 있습니다.

"preferredNotifChannel": "terminal_bell"

  • iTerm2: Settings > Profiles > Terminal을 열고 Notification Center Alerts를 선택하세요. Filter Alerts를 클릭하고 Send escape sequence-generated alerts를 켜세요.
  • Terminal.app: 벨 알림을 더 쉽게 알아보려면 Settings > Profiles > Advanced를 여세요. Bell에서 Terminal이 백그라운드에 있을 때 Dock 아이콘에 배지를 표시하거나 아이콘을 튀어 오르게 하는 옵션을 선택하세요. Claude Code를 처음 실행할 때 터미널 설정을 수락했다면 Terminal의 Audible bell이 꺼져 있습니다. 소리를 들으려면 같은 곳에서 Audible bell을 선택하세요.
  • 모든 터미널: 시스템 설정 > 알림에서 터미널 앱 자체에 알림 권한을 부여해야 합니다.

이전 글에서는 claude config set을 실행하라고 안내합니다. 이 명령은 더 이상 존재하지 않습니다. /config를 사용하거나 설정 파일을 수정하세요.

작업 완료에는 Stop, 확인 요청에는 Notification을 사용하세요.

훅은 Claude Code가 정해진 시점에 실행하는 셸 명령입니다. 설정 파일에 사용할 훅을 등록합니다. 터미널이 훅 실행에 관여하지 않으므로 모든 터미널에서 작동합니다.

Anthropic의 공식 알림 설정 예제는 Notification 이벤트를 사용합니다. 이 이벤트는 idle_prompt를 통해서만 Claude의 작업 완료를 알립니다. 완료 후 약 60초가 지나야 하며, 그동안 사용자가 아무것도 입력하지 않았을 때만 알립니다. Claude가 멈추는 즉시 알림을 받으려면 Stop을 사용하세요.

알림에 사용하는 Claude Code 훅 이벤트
이벤트 및 매처발생 시점용도
Stop매 턴이 끝날 때 Claude가 응답을 마치면 발생합니다. 사용자가 도중에 중단한 경우에는 발생하지 않습니다.Claude 작업 완료 알림
Notification + permission_prompt권한 요청이 약 6초 동안 응답을 기다렸을 때 발생합니다. 터미널에 입력하면 알림이 늦춰집니다.Claude가 승인을 기다릴 때 알림
Notification + elicitation_dialogMCP 서버(Claude Code에 연결된 도구)가 입력 양식을 열고, 사용자가 약 6초 동안 아무것도 입력하지 않았을 때 발생합니다.Claude가 입력을 기다릴 때 알림
Notification + elicitation_url_dialogMCP 서버가 웹 페이지를 열도록 요청하고, 사용자가 약 6초 동안 아무것도 입력하지 않았을 때 발생합니다.Claude가 입력을 기다릴 때 알림
Notification + idle_promptClaude가 작업을 마친 뒤 약 60초 후에 발생합니다. 사용자가 아무것도 입력하지 않았고, 백그라운드에서 실행 중인 하위 에이전트가 없어야 합니다.시간이 지난 뒤 다시 알림

요청 한도 초과 같은 API 오류로 턴이 끝나면 Stop 대신 StopFailure가 발생합니다. Notification 훅은 어떤 동작도 차단할 수 없으며, 지정한 명령만 실행합니다.

미리 작성된 훅을 복사하세요.

아래 코드 조각은 모두 ~/.claude/settings.json에 넣습니다. 이 파일은 모든 프로젝트에 적용됩니다. 각 코드 조각은 JSON 및 셸 구문 검증을 마쳤으며, 추가 소프트웨어가 필요하지 않습니다.

덮어쓰지 말고 병합하세요. 파일에 이미 "hooks" 객체가 있다면 그 안의 기존 항목 옆에 "Stop" 또는 "Notification" 키를 추가하세요. 해당 키가 이미 있다면 같은 키를 또 추가하지 마세요. 예를 들어 Cowork Island는 두 키를 모두 추가합니다. 이 경우 코드 조각에서 대괄호 안의 중괄호로 묶인 항목을 복사해 해당 키의 목록에 새 항목으로 추가하세요. 항목 사이는 쉼표로 구분합니다. "hooks" 블록을 하나 더 붙여 넣으면 다른 훅이 사라질 수 있습니다. 파일 전체를 교체하면 다른 설정이 삭제됩니다. 이 파일은 엄격한 JSON 형식이므로 주석이나 마지막 항목 뒤의 쉼표는 허용되지 않습니다.

Claude가 작업을 마치면 Mac 배너로 알립니다.

~/.claude/settings.json에 추가

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title \"Claude Code\" sound name \"Glass\"' -e 'end run' \"Finished in ${PWD##*/}\""
          }
        ]
      }
    ]
  }
}

Claude가 승인을 기다리면 Mac 배너로 알립니다.

~/.claude/settings.json에 추가

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt|elicitation_dialog|elicitation_url_dialog",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'on run argv' -e 'display notification (item 1 of argv) with title \"Claude Code needs you\" sound name \"Ping\"' -e 'end run' \"Waiting for your OK in ${PWD##*/}\""
          }
        ]
      }
    ]
  }
}

두 배너 모두 세션이 실행 중인 폴더 이름을 표시합니다.

스크립트 편집기의 배너 표시를 허용하세요.

Mac에서 osascript 배너는 기본 내장 앱인 스크립트 편집기를 통해 표시됩니다. 스크립트 편집기에 알림을 허용하기 전에는 명령이 아무런 오류 표시 없이 실패하며, macOS도 권한을 요청하지 않습니다.

  1. Terminal에서 다음 명령을 한 번 실행하세요.

osascript -e 'display notification "test"'

  1. 시스템 설정 > 알림을 열고 스크립트 편집기를 찾아 알림 허용을 켜세요.

배너 대신 소리로 알립니다.

~/.claude/settings.json에 추가

{
  "hooks": {
    "Stop": [
      { "hooks": [ { "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" } ] }
    ],
    "Notification": [
      { "matcher": "permission_prompt", "hooks": [ { "type": "command", "command": "afplay /System/Library/Sounds/Ping.aiff" } ] }
    ]
  }
}

음성으로 알립니다.

~/.claude/settings.json에 추가

{
  "hooks": {
    "Stop": [
      { "hooks": [ { "type": "command", "command": "say \"Claude has finished\"", "async": true } ] }
    ],
    "Notification": [
      { "matcher": "permission_prompt", "hooks": [ { "type": "command", "command": "say \"Claude needs your permission\"", "async": true } ] }
    ]
  }
}

"async": true를 사용하면 Mac이 음성으로 알리는 동안에도 Claude Code가 계속 작업할 수 있습니다.

한 이벤트는 배너로, 다른 이벤트는 소리로 알리려면 알림 훅 생성기를 두 번 사용하세요. 매번 이벤트 하나와 알림 방식을 선택한 다음, 병합 입력란에서 두 결과를 모두 파일에 추가하세요. 생성기는 각 코드 조각을 어느 파일에 넣어야 하는지 알려 주며, 모든 처리는 브라우저 안에서 이루어집니다.

알림이 오지 않으면 다음을 확인하세요.

  • 폴더를 신뢰하도록 허용하세요. 해당 폴더의 작업 공간 신뢰 대화상자에서 동의하기 전까지 Claude Code는 모든 훅의 실행을 보류합니다. ~/.claude/settings.json에 있는 훅도 포함됩니다.
  • 불러온 훅을 확인하세요. Claude Code에서 /hooks를 입력하세요. 훅 목록과 각 훅이 정의된 파일을 보여 주지만, 여기서 훅을 추가할 수는 없습니다. Claude Code는 보통 수정 사항을 자동으로 반영합니다. 반영되지 않으면 세션을 다시 시작하세요.
  • 업무용 Mac을 사용한다면. 조직에서 직접 관리하는 훅만 허용할 수 있습니다. 이 경우 /hooks에 ‘Only hooks from managed settings run here’가 표시되며, 개인 훅은 실행되지 않습니다.
  • 알림이 두 개씩 온다면. 모든 설정 수준의 훅이 함께 적용됩니다. 따라서 프로젝트 파일의 알림 훅과 사용자 파일의 다른 알림 훅이 모두 실행됩니다. 여러 파일에 완전히 동일한 훅이 있으면 한 번만 실행됩니다. 훅은 기본 제공 알림과도 함께 작동합니다. 두 알림을 모두 받는다면 Local notifications를 notifications_disabled로 설정하고 훅은 유지하세요.
  • 알림이 너무 자주 온다면. Stop은 전체 작업이 완료됐을 때뿐 아니라 매 턴이 끝날 때마다 발생합니다.
  • Cowork Island도 사용한다면. 위 코드 조각처럼 직접 추가한 훅은 각각 별도 항목으로 두고, ~/.perch/ 밖에 보관하세요. 앱은 /.perch/가 포함된 명령만 자체 명령으로 간주하며, 항목 전체를 교체합니다. 따라서 앱의 항목 안에 넣은 명령은 그 항목과 함께 제거됩니다.

별도 설정 없이 사용하는 방법도 있습니다.

Cowork Island는 이 가이드를 만든 사람이 개발한 Mac 앱입니다. AI 에이전트 세션을 노치 패널에 모아 두고 각 세션의 상태를 보여 주므로, 어떤 세션에 확인이 필요한지 한눈에 볼 수 있습니다. 노치가 있든 없든 작동합니다.

  • Claude Code는 자동으로 연결됩니다. 앱이 자체 훅 항목을 추가하며, 이 항목은 기존 훅과 공존합니다.
  • 각 세션은 실행 중, 보류 중 또는 ‘확인 필요’ 상태로 표시됩니다. 기본적으로 세션이 확인 필요 상태가 되면 아일랜드가 자동으로 펼쳐집니다. 단, 해당 세션의 터미널이 이미 맨 앞에 있으면 펼쳐지지 않습니다.
  • 세션이 작업을 마치면 기본적으로 아일랜드가 5초 동안 펼쳐집니다. 아일랜드에 점만 표시하거나 아무 표시도 하지 않도록 바꿀 수 있습니다.
  • Claude Code에서는 아일랜드에서 동작을 허용하거나 거부하고, 객관식 질문에 답할 수 있습니다. 아일랜드에서 응답하는 기능은 무료입니다.
  • 소리는 직접 켜기 전까지 꺼져 있습니다. ‘승인 필요’ 알림음은 무료이며, ‘세션 완료’ 알림음은 Pro 기능입니다.
  • 앱 자체의 macOS 배너는 표시하지 않습니다. 아일랜드가 펼쳐지는 방식으로 알리며, 소리를 켰다면 알림음도 울립니다.

무료 요금제는 세션 카드를 한 번에 하나씩 보여 줍니다. Pro는 모든 세션을 보여 주며, 세션의 윈도우, 탭 또는 분할 창으로 ‘바로 이동’하는 기능도 Pro에 포함됩니다. 결제 정보 없이 Pro 7일 체험이 자동으로 시작되며, Mac마다 한 번만 제공됩니다. 요금제와 설치 가이드를 확인하세요.

무료 다운로드

출처.

나중에 사용할 수 있도록 다운로드 링크를 받아 두세요.