Skip to content
v0.2 · 한국어 지원완전 로컬 음성자가 호스팅MIT

전화를 받으세요.
홈랩에 말을 거세요.

Papercup은 여러분의 컴퓨터에서 실행되는 Claude Code 세션에 전화를 거는 Discord 음성 봇입니다. /pickup을 누르고, 전화 통화하듯 말하고, 음성으로 답을 받으세요. 클라우드 STT/TTS 없음. 음성은 여러분의 네트워크를 벗어나지 않습니다.

$Papercup을 홈랩에 설치
bash <(curl -fsSL https://raw.githubusercontent.com/powder-nomad/papercup/main/install.sh)
다른 엔진 / 에이전트 백엔드가 필요한가요? 마법사 사용 ↓

무엇이 다른가

세 가지, 모두 핵심.

01완전 로컬 음성 스택

Silero VAD → faster-whisper STT → Kokoro/MeloTTS TTS, 모두 여러분의 하드웨어에서 Python 사이드카로 실행됩니다. 오디오는 LAN을 벗어나지 않습니다.

4코어에서 ~3–8초 루프

02전화 통화 UX

말하고, 잠깐 멈추고, 음성으로 답을 받습니다. 끊었다가 이름으로 다시 이어갈 수 있습니다. 다국어 자동 라우팅 (영어, 한국어, 일본어, 중국어, 스페인어, 프랑스어 등).

9개 언어 지원

03서브에이전트가 실제 작업 수행

스피커는 내장 MCP 서버를 통해 샌드박스화된 백그라운드 Claude Code 인스턴스에 작업을 위임합니다. 전화를 끊어도 그들은 코딩을 계속합니다.

spawn → check → list

원라이너 설정

Agent backend
Speech-to-text (Whisper)
Text-to-speech

The Korean engine pre-warms at startup so the first KR call doesn't pause. Pick MeloTTS for lighter, XTTS for voice variety.

Install location
Your one-liner
bash <(curl -fsSL https://raw.githubusercontent.com/powder-nomad/papercup/main/install.sh)

Paste into your homelab terminal. Discord token / client ID / guild ID will be prompted interactively. Re-run with different flags any time to reconfigure.

통화 흐름

┌─ Discord (휴대폰 / 데스크톱) ─┐         ┌─────────── 홈랩 ────────────┐
│                              │  음성   │                              │
│  /pickup → 말하기 → /hangup  │ ──────► │  Silero VAD → Whisper STT    │
│                              │         │       ↓                      │
│  봇이 답변                    │ ◄────── │  스피커 에이전트 (Haiku)      │
│                              │ Kokoro  │       ↓                      │
└──────────────────────────────┘         │  Kokoro / MeloTTS → 오디오    │
                                         │                              │
                                         │  spawn_extension(작업) ───►  │
                                         │       Claude Code 서브에이전트│
                                         │       (샌드박스 디렉터리)     │
                                         └──────────────────────────────┘

스피커는 통화를 직접 처리합니다. 빠른 파일 읽기를 넘는 작업은 백그라운드 확장 — 자체 디렉터리에서 실행되는 전체 Claude Code 인스턴스 — 을 생성하고 진행 상황을 음성으로 알려줍니다. 전화를 끊어도 됩니다. 나중에 이름으로 세션을 이어갈 수 있습니다 (/resume name:foo).

시스템 요구사항

4코어 Linux 홈랩에서 테스트되었습니다. macOS는 기본 경로에서 동작합니다. MeloTTS (한국어) 경로는 Linux에서만 테스트되었습니다.

최소권장
OSLinux x86_64, macOS (Intel 또는 Apple Silicon)Ubuntu 22.04+
Python3.103.12
Node2020+
디스크 (영어 전용, Kokoro)2 GB 여유4 GB 여유
디스크 (한국어 / MeloTTS 포함)4 GB 여유8 GB 여유
RAM2 GB 여유4 GB 여유
CPU2 코어4코어 이상 (실시간 STT/TTS)
네트워크모델 다운로드용 HTTPS 송신

apt (Linux)

sh
# 기본 설치 (Kokoro TTS만)
sudo apt-get install -y espeak-ng python3-venv

# + 한국어 / MeloTTS 경로
sudo apt-get install -y libmecab-dev mecab-ipadic-utf8 libssl-dev pkg-config

brew (macOS)

sh
brew install espeak-ng node python@3.12
# 한국어 경로에는 추가로 필요:
brew install mecab mecab-ipadic openssl pkg-config

추가로 필요한 것들

  • Discord 봇 — 토큰, 클라이언트 ID, 길드 (서버) ID. Discord 개발자 포털 → New Application → Bot. "Privileged Gateway Intents"에서 MESSAGE CONTENT INTENTVOICE STATE를 활성화하세요.
  • 에이전트 백엔드 하나: 로그인된 claude CLI (Claude Code), codex CLI (ChatGPT), 또는 Anthropic API 키. 위의 마법사에서 선택할 수 있습니다.

첫 실행 시 다운로드되는 것

  • Whisper 모델 (base 기준 ~140 MB)
  • Kokoro 보이스 + voices.bin (~100 MB)
  • Silero VAD (~1.7 MB)
  • 한국어 활성화 시: 설치 시 PyTorch CPU (~700 MB); 첫 한국어 발화 시 한국어 BERT (~440 MB) 지연 로드

기능 매트릭스

구성요소현재비고
VADSilero유일한 옵션
STTWhisperbase (다국어, 기본) — 99개 언어 자동 감지; base.en / small / small.en 사용 가능
TTSKokoro + MeloTTS (auto)Kokoro: en/ja/zh/es/fr/hi/it/pt. MeloTTS: ko (한국어 자동 라우팅 → MeloTTS, 그 외 → Kokoro)
에이전트10개 백엔드 (7개 CLI + 3개 HTTP API)claude-code · codex · aider · gemini-cli · opencode · crush · amp · anthropic-api · openai-compat · gemini-api. 런타임에서 /backend로 전환.
실시간 진행sticky 메시지, 선택적 이벤트 로그텍스트 모드 + /streaming summary|full. 안티-스팸: 편집 throttle, 짧은 턴 자동 건너뜀
예산 추적일별 USD + 토큰, 일일 캡BOT_DAILY_BUDGET_USD 또는 /budget set_usd:<n>; 봇의 rich-presence에 현재 비율 실시간
프로세스 관리detached spawn, 그룹 kill 취소, 부팅 리퍼각 에이전트 턴은 data/process-registry.json에서 추적; 재시작 시 고아 프로세스 정리
멀티봇루프 캡, 반응성 모드, 인-밴드 roster여러 운영자가 한 채널에서 봇을 공동 호스팅; 캡이 봇-봇 루프 방지
전송Discord 음성 + 텍스트/bind로 단일 채널 바인딩 또는 어디서든 @멘션

자세한 내용은 구성요소 참조.

MIT 라이선스로 배포됨