코딩 에이전트 작업 완료와 승인 요청 알림 받는 방법
코딩 에이전트가 작업을 마치거나, 실패하거나, 승인을 기다릴 때 컴퓨터나 휴대폰으로 알림을 받고, 자리를 뜨기 전에 미리 시험해 보세요.
코딩 에이전트가 작업을 마치거나 승인이 필요할 때 알림을 받으려면 에이전트에 내장된 알림을 켜거나, 그런 이벤트에서 실행되는 훅을 추가하세요. 컴퓨터를 떠나 있을 거라면 알림을 휴대폰으로 보내세요. 승인을 기다리는 에이전트는 답할 때까지 아무것도 하지 않으니, 자리를 뜨기 전에 시험해 보세요.
이 글의 예시는 Claude Code를 기준으로 해요. 컴퓨터가 잠들지 않게 하는 방법은 별도 가이드에서 다뤄요. Reunified의 Mono는 Mono로 실행하는 에이전트에 대해 이런 알림을 보내 주지만, 이 방법은 어떤 환경에서든 쓸 수 있어요.
1. 알림이 필요한 에이전트 이벤트 정하기
중요한 이벤트는 세 가지예요.
| 이벤트 | 다음에 할 일 |
|---|---|
| 권한을 기다리는 중 | 요청을 읽고 허용하거나 거부하기 |
| 작업 완료 | 결과를 확인하고 변경 사항 검토하기 |
| 오류로 중지 | 오류를 읽고 다시 시도할지 정하기 |
알림을 하나만 설정한다면 권한 알림으로 하세요.
2. Claude Code에서 알림 켜기
Claude Code는 작업을 마치거나 권한을 기다리며 멈췄을 때, 사용자가 자리를 비운 것으로 보이면 알림을 보내요. 데스크톱 알림은 기본적으로 Ghostty, Kitty, iTerm2에서만 표시돼요(터미널 설정). 다른 터미널에서는 ~/.claude/settings.json에서 preferredNotifChannel을 "terminal_bell"로 설정하면 터미널 벨이 울려요. tmux에서는 ~/.tmux.conf에 set -g allow-passthrough on을 추가하고 설정을 다시 불러오세요.
원하는 소리나 명령을 쓰려면 같은 파일에 훅을 추가하세요. Notification 이벤트에는 permission_prompt(승인 요청이 약 6초 동안 답을 기다린 경우), idle_prompt(Claude가 약 1분 전에 작업을 마쳤고 그 뒤로 입력이 없는 경우) 같은 매처를 쓸 수 있어요. Mac에서는 다음 설정으로 이벤트마다 다른 소리를 재생해요.
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
},
{
"matcher": "idle_prompt",
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Hero.aiff" }]
}
]
}
}훅 가이드에는 macOS, Linux, Windows용 데스크톱 알림 명령도 나와 있어요. 다른 에이전트는 방식이 다르니 각 에이전트의 문서를 확인하세요.
3. 휴대폰으로 알림 보내기
휴대폰까지 알림을 보내는 방법은 세 가지예요.
- 에이전트 자체 앱. Claude Code의 Remote Control이 켜져 있을 때
/config를 실행하고 Claude가 판단할 때 푸시(“Push when Claude decides”), 조치가 필요할 때 푸시(“Push when actions required”) 중 하나나 둘 다 켜세요. 이 기능을 지원하는 요금제가 필요하고, 휴대폰의 Claude 앱도 같은 계정으로 로그인되어 있고 알림이 허용되어 있어야 해요. - 푸시 메시지를 보내는 훅. 예를 들어 휴대폰에 앱이 설치된 푸시 서비스로
curl요청을 보내는 방식이에요. - 컴패니언 앱. 컴퓨터의 세션 이벤트를 휴대폰으로 전달해 주는 앱이에요.
어느 방법이든 컴퓨터가 켜져 있고, 잠자기 상태가 아니고, 온라인이어야 하며, 에이전트도 계속 실행 중이어야 해요. 훅에 쓰는 토큰은 저장소에 커밋될 수 있는 프로젝트의 .claude/settings.json이 아니라 ~/.claude/settings.json에 보관하세요.
4. 잠금 화면에서 알림 내용 보호하기
잠긴 휴대폰 근처에 있는 사람은 누구나 알림 미리보기를 읽을 수 있어요. 훅 메시지에 비밀 정보, 파일 내용, 로그 줄을 넣지 마세요. 이벤트와 프로젝트 이름만 보내세요. “invoice-export”라는 가상의 프로젝트라면 “invoice-export: 승인 필요”면 충분해요. iPhone에서는 설정 > 알림을 열고 ‘미리보기 표시’를 ‘잠겨있지 않을 때’로 설정하세요. Android도 잠금 화면에서 민감한 콘텐츠를 숨길 수 있지만, 옵션 이름은 휴대폰마다 달라요.
Mono의 완료 알림에는 에이전트의 마지막 메시지가 표시되고, 길면 줄여서 보여 줘요. 권한 알림에는 에이전트가 설명한 요청이 그대로 표시되는데, 대개는 실행할 명령이에요.
5. 자리를 뜨기 전에 무해한 작업으로 시험하기
집 컴퓨터에서 “invoice-export 점검”이라는 세션을 시작하고, 파일은 바꾸지 말고 테스트를 실행해 실패가 있으면 알려 달라고 에이전트에게 요청하세요. 이 에이전트는 명령을 실행하기 전에 묻기 때문에 npm test 실행 권한을 요청해요. 컴퓨터에서는 다른 화면이나 앱을 연 다음, 휴대폰을 잠그고 다른 방으로 가세요.
Mono에서는 다음과 같이 진행돼요.
- 테스트 명령이 적힌 ‘에이전트 권한 요청’ 알림이 와요.
- 알림을 누르면 그 세션이 열리고, 거기서 ‘허용’을 선택해요. 이후에 요청이 또 오면 그때도 따로 알림이 와요.
- 에이전트의 마지막 메시지와 함께 “‘invoice-export 점검’에서 에이전트 실행이 끝났어요” 알림이 와요. 메시지는 예를 들어 “dates.test.ts의 테스트 하나가 시간대 문제로 실패해요. 파일은 바꾸지 않았어요.” 같은 식이에요.
그다음 휴대폰에서 세션을 열어 둔 채로 두 번째 작업을 실행해 보세요. 화면을 보고 있는 동안에는 알림이 오지 않아요. 외출하기 전에는 어느 기기에도 그 세션이 화면에 열려 있지 않은지 확인하세요.
6. 알림이 오지 않을 때 해결하기
| 증상 | 확인할 것 |
|---|---|
| 알림이 전혀 없음 | 시스템 알림 권한, 집중 모드나 방해금지 모드, 앱 자체의 알림 스위치 |
| 컴퓨터에서만 옴 | 다른 기기로 보내기가 켜져 있는지, 휴대폰이 로그인되어 있고 알림이 허용됐는지 |
| 늦게 오거나 한꺼번에 옴 | iPhone의 시간 지정 요약, Android의 배터리 최적화, 잠든 컴퓨터 |
| 보고 있을 때는 안 옴 | 정상 동작: 지금 보고 있는 세션이나 터미널에는 알림을 보내지 않음 |
| 권한 알림 없이 에이전트가 계속 진행함 | Mono의 YOLO 모드 같은 자동 수락 모드 |
Mono에서는 설정 > 알림을 열고 ‘모든 알림’, ‘Code’(완료되거나 중지된 세션), ‘권한 요청’, ‘다른 기기로 보내기’를 확인하세요. 모두 기본으로 켜져 있어요. 알림은 에이전트를 실행하는 컴퓨터에서 보내므로 그 컴퓨터에서 Mono를 계속 실행해 두세요.
휴대폰에서 승인하기 전에 권한 요청에서 확인할 사항을 읽어 보세요. 나머지 설정은 휴대폰으로 코딩 에이전트와 작업하는 방법에서 다뤄요. Mono는 아직 출시 전이지만 대기자 명단에 등록할 수 있어요.
