← VibeShell Hook

설정 파일 하나가 전부입니다.

~/.vibeshell/push-config.json 에 프로젝트와 토픽이 있고, hook.sh 는 그것만 읽습니다. 아래는 그 키 아홉 개와 자주 하는 일입니다.

push-config.json 의 키

server_url푸시 서버 주소. 기본 https://push.vibeshell.io
enabled전체 켜고 끄기
topic_ids전역 토픽 ID 배열. 프로젝트에 토픽이 없으면 여기로 보냅니다
topic_tokens토픽별 인증 토큰. install.sh 가 서버에서 받아 넣습니다. 손으로 쓰지 않습니다
projects프로젝트 이름 → 설정
projects.*.paths이 프로젝트로 볼 디렉터리 경로 목록. 현재 디렉터리가 이 아래일 때만 알림
projects.*.enabled프로젝트만 켜고 끄기
projects.*.cli_toolclaude-code, codex-cli, gemini-cli, aider, opencode. 비우면 claude-code
projects.*.topic_ids프로젝트 토픽. 있으면 전역 대신 이걸로

프로젝트마다 다른 도구, 다른 토픽

my-api 는 Codex CLI 로 별도 토픽에, weekend-project 는 꺼 둔 예입니다. topic_tokens 는 install.sh 가 채웁니다.

~/.vibeshell/push-config.json

{
  "server_url": "https://push.vibeshell.io",
  "enabled": true,
  "topic_ids": ["vbs_9b585155aaf8"],
  "topic_tokens": {
    "vbs_9b585155aaf8": "auto-generated...",
    "vbs_separate_topic": "auto-generated..."
  },
  "projects": {
    "vibe-shell": {
      "paths": ["/Users/dev/projects/vibe-shell"],
      "enabled": true,
      "cli_tool": "claude-code"
    },
    "my-api": {
      "paths": ["/Users/dev/projects/my-api"],
      "enabled": true,
      "cli_tool": "codex-cli",
      "topic_ids": ["vbs_separate_topic"]
    },
    "data-pipeline": {
      "paths": ["/Users/dev/projects/data-pipeline"],
      "enabled": true,
      "cli_tool": "aider"
    },
    "weekend-project": {
      "paths": ["/Users/dev/weekend/app"],
      "enabled": false,
      "cli_tool": "gemini-cli"
    }
  }
}

관리 메뉴

install.sh 를 인자 없이 실행하면 메뉴가 뜹니다. 자주 쓰면 ~/.vibeshell/manage.sh 로 받아 두는 편이 편합니다.

curl -fsSL -o ~/.vibeshell/manage.sh https://www.wevesolutions.co.kr/downloads/hook/install.sh
chmod +x ~/.vibeshell/manage.sh
~/.vibeshell/manage.sh
메뉴하는 일
1프로젝트 추가이름, 경로, 도구, 토픽을 묻고 토픽 토큰을 서버에서 받습니다
2프로젝트 삭제
3프로젝트 활성화/비활성화projects.*.enabled 를 뒤집습니다
4토픽 ID 관리추가, 전체 교체, 삭제. 토픽은 vbs_ 로 시작해야 합니다
5서버 URL 변경
6인증 토큰 갱신등록된 모든 토픽의 토큰을 서버에서 다시 받습니다. 401 이 나면 여기
7훅 스크립트 업데이트hook.sh 를 다시 받습니다

손으로 설치하려면

파일 둘을 받고, Stop hook 을 ~/.claude/settings.json 에 직접 넣고, 토픽 토큰을 서버에서 받습니다. 이미 settings.json 이 있으면 hooks.Stop 배열에 항목을 추가합니다.

파일

mkdir -p ~/.vibeshell
curl -fsSL -o ~/.vibeshell/hook.sh https://www.wevesolutions.co.kr/downloads/hook/hook.sh
chmod +x ~/.vibeshell/hook.sh
curl -fsSL -o ~/.vibeshell/push-config.json https://www.wevesolutions.co.kr/downloads/hook/config.example.json

토픽 토큰 발급 (install.sh 가 대신 해 주는 일)

curl -s -X POST https://push.vibeshell.io/api/v1/token \
  -H "Content-Type: application/json" \
  -d '{"topic":"vbs_your_topic_id"}'
# 응답의 token 을 push-config.json 의 topic_tokens["vbs_your_topic_id"] 에 넣습니다

업데이트

hook.sh 만 다시 받으면 됩니다. 관리 메뉴 7 과 같은 일입니다. 설정 파일은 그대로 둡니다.

curl -fsSL -o ~/.vibeshell/hook.sh https://www.wevesolutions.co.kr/downloads/hook/hook.sh
chmod +x ~/.vibeshell/hook.sh

알림이 안 올 때 보는 순서

명령봐야 할 것
설정cat ~/.vibeshell/push-config.jsonenabled 가 true 인지, paths 가 맞는지
경로pwd이 경로가 그 프로젝트의 paths 중 하나 아래여야 합니다
등록cat ~/.claude/settings.json | jq '.hooks.Stop'hook.sh 경로가 보여야 합니다
권한ls -la ~/.vibeshell/hook.sh실행 권한(x)이 있어야 합니다
도구jq '.projects | to_entries[] | {name: .key, cli_tool: .value.cli_tool}' ~/.vibeshell/push-config.json알림 내용이 프롬프트가 아니면 cli_tool 이 틀린 겁니다
OpenCodecommand -v sqlite3OpenCode 기록은 sqlite 라 sqlite3 가 있어야 읽습니다
서버curl -X POST https://push.vibeshell.io/api/v1/push -H "Content-Type: application/json" -H "Authorization: Bearer <토큰>" -d '{"topic":"vbs_...","project":"test","summary":"hello"}'여기서 401 이면 토큰, 429 면 하루 5회 초과

한 프로젝트만 끄기

~/.vibeshell/manage.sh
# 메뉴 3 → 프로젝트 선택

전부 끄기

jq '.enabled = false' ~/.vibeshell/push-config.json > /tmp/c && mv /tmp/c ~/.vibeshell/push-config.json