VibeShell Hook
에이전트가 끝나면
폰이 울립니다.
개발 머신에 스크립트 하나를 깔면 Claude Code 가 작업을 마칠 때 VibeShell 앱으로 푸시가 옵니다. 알림에는 마지막에 보낸 프롬프트가 들어 있어 무엇이 끝났는지 바로 압니다.
curl -fsSL https://www.wevesolutions.co.kr/downloads/hook/install.sh | bash -s -- --install무료 · 토픽당 하루 5회 · Claude Code 자동, 4개 도구 수동
긴 작업을 맡겨 두고 자리를 뜹니다.
| 터미널 앞에서 기다리기 | VibeShell Hook | |
|---|---|---|
| 알림 | 없음. 터미널을 보고 있어야 안다 | 작업이 끝나면 폰으로 푸시 |
| 내용 | 터미널에 그대로 있다 | 프로젝트 이름과 마지막에 보낸 프롬프트 100자 |
| 등록 | 없음 | 한 줄 설치가 Claude Code Stop hook 에 넣는다 |
| 비용 | 없음 | 무료. 토픽당 하루 5회 |
설치가 만드는 파일 그대로입니다.
스크립트는 파일 둘을 만들고 설정 하나를 고칩니다. ~/.vibeshell/hook.sh, ~/.vibeshell/push-config.json, 그리고 ~/.claude/settings.json 의 Stop hook. 아래는 그 원문입니다.
install.sh 를 인자 없이 실행했을 때 (관리 메뉴)
=== VibeShell Push Hook 관리 ===
메뉴:
[1] 프로젝트 추가
[2] 프로젝트 삭제
[3] 프로젝트 활성화/비활성화
[4] 토픽 ID 관리
[5] 서버 URL 변경
[6] 인증 토큰 갱신
[7] 훅 스크립트 업데이트
[0] 종료
선택:~/.vibeshell/push-config.json (config.example.json 원문)
{
"server_url": "https://push.vibeshell.io",
"enabled": true,
"topic_ids": [
"vbs_your_topic_id_here"
],
"topic_tokens": {},
"projects": {
"my-project": {
"paths": ["/Users/username/projects/my-project"],
"enabled": true,
"cli_tool": "claude-code"
}
}
}~/.claude/settings.json 에 들어가는 Stop hook
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "/Users/username/.vibeshell/hook.sh",
"timeout": 30
}
]
}
]
}
}설치는 다섯 가지를 묻습니다.
- 1프로젝트명 — 알림에 표시될 이름
- 2프로젝트 경로 — AI 코딩 도구를 실행하는 디렉터리. 기본은 현재 디렉터리
- 3AI 코딩 도구 — Claude Code, Codex CLI, Gemini CLI, Aider, OpenCode 중 하나
- 4토픽 ID — VibeShell 앱 설정 › 푸시 알림에서 복사. vbs_ 로 시작
- 5Push 서버 URL — 기본값 https://push.vibeshell.io
알림은 네 가지를 통과해야 갑니다.
| 조건 | 아니면 | |
|---|---|---|
| 경로 | 현재 디렉터리가 projects.*.paths 중 하나 아래일 때만 | 아니면 조용히 종료 |
| 켜짐 | 전역 enabled 와 그 프로젝트의 enabled 둘 다 true | 하나라도 false 면 종료 |
| 내용 | cli_tool 의 대화 기록에서 마지막 유저 프롬프트 100자 | 못 찾으면 최근 git commit 메시지 |
| 보내기 | 프로젝트 토픽, 없으면 전역 토픽. 토픽마다 서버가 준 토큰으로 | 토픽당 하루 5회, 분당 10회 |
하지 않는 것을 적어 둡니다.
- 자동으로 걸리는 건 Claude Code 뿐입니다. Codex CLI, Gemini CLI, Aider, OpenCode 는 프롬프트를 읽을 줄은 알지만, 그 도구의 hook 에 hook.sh 를 거는 건 직접 해야 합니다.
- 토픽 하나에 하루 5번까지 갑니다. 넘으면 서버가 429 로 거절하고 hook 은 조용히 끝납니다.
- 서버를 지나는 건 프로젝트 이름과 프롬프트 100자입니다. 코드나 출력은 보내지 않습니다. 누가 보냈는지도 없습니다.
- 폰에서 답하지 않습니다. 알림을 누르면 앱이 열리고, 그다음은 SSH 로 들어가서 합니다.
가격
무료입니다. 푸시 서버는 우리가 운영하고, 토픽당 하루 5회까지 보냅니다.
같이 쓰는 것
| 무엇 | |
|---|---|
| VibeShell | 알림을 받는 앱. 토픽 ID 가 여기 있고, 알림을 누르면 열립니다 |
| VibeShell Gateway | 사설망 서버에 폰으로 들어갈 때 |
| 가이드 | 설정 구조, 여러 프로젝트, 관리 메뉴, 업데이트, 문제 해결 |
사양
| 파일 | hook.sh 10.6 KB, install.sh 21.7 KB, config.example.json 298 B |
| 설치 위치 | ~/.vibeshell/hook.sh, ~/.vibeshell/push-config.json |
| 필요한 것 | jq (install.sh), hook.sh 는 jq 또는 python3. OpenCode 는 sqlite3 |
| 읽는 도구 | Claude Code, Codex CLI, Gemini CLI, Aider, OpenCode |
| 서버 | https://push.vibeshell.io (Go, FCM). 토픽별 HMAC 토큰은 install.sh 가 서버에서 받아 저장 |
| 제한 | 토픽당 하루 5회, 분당 10회. IP 당 분당 30회 |
| 앱 | VibeShell iOS, Android. 토픽 ID 는 앱 설정 › 푸시 알림 |
자주 받는 질문 셋
알림이 안 옵니다.
순서대로 봅니다. cat ~/.vibeshell/push-config.json 에서 enabled 와 paths, pwd 가 paths 아래인지, cat ~/.claude/settings.json | jq '.hooks.Stop' 에 hook.sh 가 있는지, ls -la ~/.vibeshell/hook.sh 실행 권한. 그래도 안 오면 가이드의 수동 테스트 curl 로 서버까지 가는지 봅니다.
401 이 납니다.
토픽 토큰이 없거나 낡은 겁니다. install.sh 를 인자 없이 실행해 메뉴 6 인증 토큰 갱신을 누르면 서버에서 다시 받아 push-config.json 에 넣습니다.
Codex 나 Gemini 로 쓰려면요?
push-config.json 의 그 프로젝트에 cli_tool 을 codex-cli, gemini-cli, aider, opencode 로 적으면 hook.sh 가 그 도구의 기록에서 프롬프트를 읽습니다. 다만 작업이 끝날 때 hook.sh 를 부르는 건 그 도구의 hook 설정에 직접 넣어야 합니다.
파일 셋
- hook.shStop hook 이 부르는 스크립트
- install.sh설치와 관리 메뉴
- config.example.json설정 예시