Claude Code 연결 방법

응답이 끝날 때 짧은 완료 알림을 보냅니다. 대화 원문이나 프로젝트 파일은 전송하지 않습니다.

1. 받을 주소부터 준비하세요.

훅 무전기에서 가입과 이메일 인증을 마치세요. 새 채팅 → 새 주소 만들기에서 이름을 정하고, 개인 알림은 비공개로 만드세요.

만든 대화를 열어 + → 전송 설정 보기를 누르세요. 발송 키가 포함된 GET 전송 주소를 복사합니다. 이름에 적힌 주소 공유 비밀번호는 프로그램에 넣지 않습니다.

대화의 전송 설정 보기에서 GET URL 확인크게 보기
대화의 전송 설정 보기에서 GET URL 확인 · 실제 앱, 예시 데이터

2. 전송 파일을 두 개 만드세요.

실행 환경에 Node.js 18 이상이 필요합니다. 프로젝트 안에 scripts 폴더를 만들고 아래 파일을 넣으세요. Windows, macOS, Linux에서 같은 전송 파일을 사용합니다.

공개 주소
https://ohook.app/[내 주소]?auth=[사용자 발송 키]&txt=[전달 내용]
비공개 주소
https://ohook.app/[내 주소]?auth=[사용자 발송 키]&key=[채팅방 발송 키]&txt=[전달 내용]

주소 종류에 맞는 실제 URL 한 줄을 scripts/hook-radio.url에 넣으세요. txt 값은 실행할 때 짧은 완료 문구로 바뀝니다.

scripts/hook-radio.cjs
const fs = require('node:fs');
const path = require('node:path');
const tool = process.argv[2] || 'tool';
async function main() {
  // Read the local URL; never upload the prompt, transcript or hook payload.
  const endpoint = fs.readFileSync(path.join(__dirname, 'hook-radio.url'), 'utf8').trim();
  const url = new URL(endpoint);
  if (!['https:', 'http:'].includes(url.protocol) || url.username || url.password) {
    throw new Error('Invalid endpoint');
  }
  url.searchParams.set('txt', `${tool}: response completed`);
  const response = await fetch(url, {redirect: 'error', signal: AbortSignal.timeout(5000)});
  if (response.status !== 201) throw new Error(`HTTP ${response.status}`);
}
main().catch(() => {
  // Do not print the private URL or retry a request that may already be stored.
  process.stderr.write('Hook Radio notification could not be confirmed. Check the chat before retrying.\n');
}).finally(() => process.stdout.write('{}\n'));
.gitignore에 추가
scripts/hook-radio.url

이 URL은 비밀값입니다. 저장소에 올리거나 AI 프롬프트에 붙이지 마세요. hook-radio.cjs는 훅의 입력이나 대화 기록을 읽어 보내지 않습니다.

3. Claude Code에 훅을 등록하세요.

.claude/settings.local.json 파일에 아래 설정을 합쳐 주세요. 파일이 있다면 다른 설정을 덮어쓰지 마세요.

.claude/settings.local.json
{
    "hooks": {
        "Stop": [
            {
                "hooks": [
                    {
                        "type": "command",
                        "command": "node scripts/hook-radio.cjs claude",
                        "timeout": 10
                    }
                ]
            }
        ]
    }
}

기존 hooks 설정에 Stop 항목을 합쳐 주세요. Stop은 응답이 끝났을 때 실행됩니다. 중단이나 API 오류 알림과는 다릅니다.

이 예시는 프로젝트 루트에서 실행합니다. 경로에 공백이 있거나 실행 위치가 다르면 scripts/hook-radio.cjs를 따옴표로 감싼 절대 경로로 바꾸세요. 훅은 로컬 명령을 실행하므로 내용을 확인하고 신뢰한 파일만 사용하세요.

4. 직접 전송한 뒤, 도구에서도 확인하세요.

먼저 프로젝트 루트의 터미널에서 다음 명령을 실행하세요. 이 명령은 알림 한 건을 실제로 보냅니다.

터미널
node scripts/hook-radio.cjs claude

대화에 claude: response completed가 보이면 연결된 것입니다. 다음으로 도구를 다시 열어 짧은 요청을 해보세요. 응답이 끝난 뒤 두 번째 소식이 도착하는지 확인합니다. 이 소식은 응답 종료 알림이며, 코드 검사나 배포 성공을 뜻하지 않습니다.

직접 실행도 도착하지 않아요.
URL이 https://ohook.app/으로 시작하는지, 알림 주소와 발송 키가 올바른지 확인하세요. 실행하는 컴퓨터나 클라우드 도구에서 ohook.app에 접속할 수 있어야 합니다.
직접 실행은 되는데 도구에서는 안 와요.
설정 파일 위치, 훅 신뢰 여부, Node.js 실행 경로를 확인하세요. 원격 실행 환경은 파일과 네트워크 접근이 따로 필요합니다.
401·403 또는 429가 나와요.
401·403은 키나 접근 권한을, 429는 요청 제한을 확인하세요. 키를 재발급했다면 URL 파일도 바꿔야 합니다. 자동 재시도는 하지 않습니다.
대화에는 왔는데 휴대폰 알림은 없어요.
설정에서 해당 기기에 알림을 연결하세요. 기기 알림 허용과 대화 주소 연결은 별개입니다.

공식 문서 확인: 2026-10-18 · Claude Code 훅 문서. 훅 스키마는 버전에 따라 달라질 수 있습니다. 설치한 도구에서 이벤트와 설정을 한 번 더 확인하세요.