Use Notification (abc-notify)
Codex CLI에서 abc-notify를 연결해 작업 완료와 승인 요청을 macOS 알림으로 받는 설정 가이드
소개
Codex CLI를 오래 돌려두면 응답 완료나 승인 요청 타이밍을 놓치기 쉽습니다.
abc-notify는 Codex의 notify hook에 연결되어 agent-turn-complete, agent-turn-paused 이벤트를 데스크톱 알림으로 보여줍니다.
핵심은 ~/.codex/config.toml의 notify 배열에 abc-notify를 연결하는 것입니다.
언제 쓰면 좋은가
- Codex 작업을 백그라운드처럼 돌려두고 다른 창에서 일할 때
- 승인 요청이 뜨는 시점을 바로 알고 싶을 때
- 저장소마다 알림 강도나 터미널 앱 우선순위를 다르게 쓰고 싶을 때
준비물
- macOS
- Codex CLI
terminal-notifierjq
기본 의존성 설치:
brew install terminal-notifier jq포커스 복귀 참고
Codex에서 abc-notify는 알림 클릭 시 현재 Codex 세션이 돌고 있던 앱을 다시 활성화합니다. Claude
Code처럼 "정확한 창" 복귀는 아니고 앱 포커스 복귀 기준입니다.
1. abc-notify 설치
가장 쉬운 방법은 Homebrew입니다.
brew tap JHSeo-git/tap
brew install abc-notify직접 저장소 기준으로 설치하고 싶다면:
cd ~/Projects
git clone https://github.com/JHSeo-git/abc-notify.git
cd abc-notify
bash scripts/manual-install.sh수동 설치 스크립트는 abc-notify, abc-notify-native를 설치한 뒤 setup all, doctor까지 실행합니다.
2. Codex에 notify hook 연결
자동 설정:
abc-notify setup codex이 명령은 ~/.codex/config.toml의 notify 배열에 abc-notify를 추가합니다.
직접 보면 최소 형태는 아래와 같습니다.
notify = ["abc-notify"]이미 notify 항목이 있다면 전체를 덮어쓰지 말고 기존 배열에 "abc-notify"만 추가합니다.
3. 수동으로 설정할 때
자동 설정 대신 직접 넣고 싶다면 ~/.codex/config.toml을 아래처럼 맞춥니다.
model = "gpt-5.4"
model_reasoning_effort = "high"
notify = ["abc-notify"]4. 프로젝트별로 알림 동작 바꾸기
abc-notify는 전역 ~/.abc-notify.env, 프로젝트별 ./.abc-notify.env를 읽습니다.
이 저장소에서만 알림 스로틀과 터미널 앱 우선순위를 다르게 두고 싶다면:
TERMINAL_APP=iTerm2,Terminal,WezTerm
NOTIFY_THROTTLE=5
NOTIFY_TITLE_CODEX="Codex · blog.seonest.net"자주 쓰는 값:
TERMINAL_APP: 포커스 복귀와 활성화에 사용할 터미널 앱 목록NOTIFY_SOUND: macOS 시스템 사운드 이름NOTIFY_THROTTLE: 중복 알림 최소 간격(초)NOTIFY_DISABLED=true: 알림 완전 비활성화NOTIFY_TITLE_CODEX: Codex 알림 제목 변경
5. 동작 확인
설정 후 검사는 이 명령 하나로 충분합니다.
abc-notify doctor그 다음 Codex를 재시작하고, 시간이 조금 걸리는 작업 하나를 실행해 봅니다.
정상이라면:
- 작업 완료 시 완료 알림이 옵니다.
- 승인 요청이 필요할 때 별도 알림이 옵니다.
- 알림 클릭 시 Codex를 실행 중이던 터미널 앱이 다시 앞으로 옵니다.
중요
notify 설정을 바꾼 뒤에는 실행 중인 Codex 세션을 재시작해야 반영됩니다.
트러블슈팅
알림이 안 올 때
abc-notify doctor출력 확인~/.codex/config.toml의notify배열 확인- Codex 재시작 여부 확인
terminal-notifier,jq설치 여부 확인- macOS 알림 권한 확인
NOTIFY_DISABLED=true가 켜져 있지 않은지 확인
클릭 복귀가 기대와 다를 때
Codex 쪽 abc-notify는 앱 활성화 기준입니다. 정확한 창 복귀는 Claude Code + abc-notify-native 조합이 더 강합니다.
현재 터미널이 감지되지 않는 것 같으면 TERMINAL_APP을 명시적으로 넣어 보세요.
TERMINAL_APP=iTerm2,Terminal,WezTerm저장소마다 다르게 동작시키고 싶을 때
프로젝트 루트에 .abc-notify.env를 두면 됩니다. 전역 ~/.abc-notify.env보다 프로젝트 설정이 우선합니다.