Community라이팅 & 에디팅github.com

guanxiong/VibeSMS

안드로이드 폰을 AI 에이전트용 SMS 및 통화 게이트웨이로 전환합니다.

VibeSMS란 무엇인가요?

VibeSMS는 AI 에이전트가 사용자가 소유한 안드로이드 폰과 SIM 카드를 통해 SMS 및 통화 이벤트에 접근할 수 있도록 하는 기술 도구입니다. 전체 SMS 인박스를 노출하지 않고, 단일 `VIBESMS_KEY`만으로 안드로이드 단말기의 온라인 상태 확인, 이벤트 커서 캡처, 외부 서비스가 메시지를 보내기 전에 커서를 설정하고 그 이후의 4~8자리 인증코드를 기다리는 기능을 제공합니다. 또한 키별로 격리된 SMS와 수신 통화 이벤트를 읽을 수 있습니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, 환경 변수나 시크릿 스토어를 통해 키를 안전하게 구성해야 합니다. 안드로이드 단말기는 별도의 디바이스 자격 증명을 통해 업로드하므로 에이전트 키는 이벤트를 업로드하거나 다른 번호를 읽을 수 없습니다. `scripts/vibesms.py` 스크립트를 통해 결정론적 API 호출을 수행하며, 사용자에게 키를 노출하지 않도록 주의해야 합니다.

지원 대상✓Claude Code~Codex CLI✓Cursor
npx skills add guanxiong/VibeSMS

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

VibeSMS은(는) 무엇을 하나요?

AI 에이전트를 사용자가 소유한 안드로이드 폰 및 SIM에 연결하되, 전체 SMS 인박스를 노출하지 않습니다. 단일 VIBESMS_KEY는 에이전트에게 할당된 전화번호에만 접근 권한을 부여하며, 다음 네 가지 집중된 작업을 지원합니다:

  • 안드로이드 단말기가 바인딩되어 온라인 상태인지 확인합니다.
  • 외부 서비스가 메시지를 보내기 전에 이벤트 커서를 캡처합니다.
  • 해당 커서 이후에 도착한 새로운 4~8자리 인증 코드를 기다립니다.
  • 키별로 격리된 SMS 및 수신 통화 이벤트를 읽습니다.

안드로이드 단말기는 별도의 디바이스 자격 증명을 통해 업로드되므로, 에이전트 키는 이벤트를 업로드하거나 다른 번호를 읽을 수 없습니다. 결정론적 API 호출을 위해 번들 클라이언트를 사용하세요. scripts/vibesms.py는 이 SKILL.md를 기준으로 상대 경로로 해석하세요. 현재 작업 디렉토리에 스킬이 포함되어 있다고 가정하지 마세요.

전제 조건

  • 환경 변수 또는 에이전트 시크릿 스토어에 VIBESMS_KEY가 필요합니다.
  • 자체 호스팅 인스턴스에만 VIBESMS_BASE_URL을 사용하세요. 기본값은 https://sms.shareapi.ai입니다.
  • 사용자에게 키를 채팅, 명령 인수, 소스 코드, 또는 로그에 붙여넣도록 요청하지 마세요.
  • 출력에 키를 절대 노출하지 마세요. 키가 없으면 사용자에게 시크릿을 구성하도록 요청하세요.

인증 코드 수신

  1. 외부 SMS를 트리거하기 직전에 커서를 캡처합니다:

    python3 <skill-directory>/scripts/vibesms.py status
    
  2. JSON 응답에서 cursor 값을 읽습니다.

  3. 사용자가 승인한 SMS를 보내는 작업을 트리거합니다.

  4. 해당 커서 이후에 수신된 첫 번째 4~8자리 코드를 기다립니다:

    python3 <skill-directory>/scripts/vibesms.py wait-otp --after-id <cursor> --timeout 60
    
  5. 코드는 사용자가 승인한 작업에만 사용하고, 완료 후에는 유지하지 마세요.

항상 먼저 커서를 캡처하세요. 그렇지 않으면 이전 메시지가 새 인증 코드로 오인될 수 있습니다.

단말기 상태 확인

다음을 실행하세요:

python3 <skill-directory>/scripts/vibesms.py status

bound가 false이면 키가 안드로이드 SIM과 페어링되지 않았음을 사용자에게 알리세요. online이 false이면 단말기가 재연결되어 오프라인 큐를 재생한 후에도 메시지가 도착할 수 있음을 설명하세요.

수신함 이벤트 읽기

다음 중 하나를 실행하세요:

python3 <skill-directory>/scripts/vibesms.py inbox --after-id <cursor>
python3 <skill-directory>/scripts/vibesms.py inbox --type sms --limit 20
python3 <skill-directory>/scripts/vibesms.py inbox --type call --limit 20

작업별 읽기에는 after-id를 선호하세요. 사용자 작업에 필요한 필드만 반환하고, 관련 없는 메시지 내용이나 전화번호는 반복하지 마세요.

오류

  • 401: 키가 유효하지 않거나, 비활성화되었거나, 교체되었습니다. 사용자에게 시크릿을 업데이트하도록 요청하세요.
  • status=timeout: 일치하는 OTP가 제시간에 도착하지 않았습니다. 단말기 상태를 확인한 후, 사용자가 계속 기다리길 원하는 경우에만 재시도하세요.
  • 네트워크/TLS 오류: 헤더나 키를 출력하지 않고 엔드포인트와 오류 내용을 보고하세요.

원시 엔드포인트 스키마나 자체 호스팅 통합 세부 정보가 필요한 경우에만 references/api.md를 읽으세요.

관련 스킬