Wacli – WhatsApp CLI: 동기화, 검색, 전송
Source: Hacker News
🗃️ wacli — WhatsApp CLI: 동기화, 검색, 전송
WhatsApp CLI는 whatsmeow 위에 구축되었으며 다음에 중점을 둡니다:
- 메시지 기록의 최선 로컬 동기화 + 지속적인 캡처
- 빠른 오프라인 검색
- 메시지 전송
- 연락처 및 그룹 관리
이 도구는 whatsmeow를 통해 WhatsApp Web 프로토콜을 사용하는 서드파티 툴이며 WhatsApp과 제휴 관계가 없습니다.
상태
핵심 구현이 완료되었습니다. 전체 설계 노트는 docs/spec.md를 참고하세요.
최신 업데이트 (0.2.0)
- 메시지: 검색/목록에 반응, 답장, 미디어 유형에 대한 표시 텍스트가 포함됩니다.
- 전송:
wacli send file --filename옵션으로 표시 이름을 재정의할 수 있습니다. - 인증: 선택적
WACLI_DEVICE_LABEL/WACLI_DEVICE_PLATFORM환경 변수로 오버라이드 가능합니다.
설치 / 빌드
다음 옵션 중 하나를 선택하세요.
옵션 A: Homebrew (tap) 로 설치
brew install steipete/tap/wacli
옵션 B: 로컬에서 빌드
go build -tags sqlite_fts5 -o ./dist/wacli ./cmd/wacli
실행 (로컬 빌드만 해당):
./dist/wacli --help
빠른 시작
기본 저장소 디렉터리는 ~/.wacli이며 --store DIR 로 재정의할 수 있습니다.
1️⃣ 인증 (QR 코드 표시) 후 부트스트랩 동기화
pnpm wacli auth
# 또는: ./dist/wacli auth (pnpm 빌드 후)
2️⃣ 지속적인 동기화 (QR 코드 표시 안 함; 사전 인증 필요)
pnpm wacli sync --follow
메시지 전송
pnpm wacli send text --to 1234567890 --message "hello"
파일 전송
pnpm wacli send file --to 1234567890 --file ./pic.jpg --caption "hi"
# 또는 표시 이름 재정의
pnpm wacli send file --to 1234567890 --file /tmp/abc123 --filename report.pdf
그룹 목록 및 참가자 관리
pnpm wacli groups list
pnpm wacli groups rename --jid 123456789@g.us --name "New name"
진단
pnpm wacli doctor
메시지 검색
pnpm wacli messages search "meeting"
채팅의 오래된 메시지 백필 (최선 노력; 기본 기기가 온라인이어야 함)
pnpm wacli history backfill --chat 1234567890@s.whatsapp.net --requests 10 --count 50
메시지의 미디어 다운로드 (동기화 후)
./wacli media download --chat 1234567890@s.whatsapp.net --id
선행 작업 / 크레딧
이 프로젝트는 Vicente Reig가 만든 훌륭한 whatsapp-cli에 크게 영감을 받았습니다.
고수준 UX
wacli auth: 인터랙티브 로그인 (QR 코드 표시) 후 즉시 초기 데이터 동기화를 수행합니다.wacli sync: 비인터랙티브 동기화 루프 (QR 코드 표시 안 함; 인증되지 않으면 오류 발생).- 출력은 기본적으로 사람이 읽기 쉬운 형태이며, 기계가 읽을 수 있는 JSON 형태는
--json옵션을 사용합니다.
저장소
기본값은 ~/.wacli이며 --store DIR 로 재정의할 수 있습니다.
환경 변수 오버라이드
WACLI_DEVICE_LABEL: WhatsApp에 표시되는 연결된 기기 라벨을 설정합니다.WACLI_DEVICE_PLATFORM: 연결된 기기 플랫폼을 오버라이드합니다 (CHROME이 기본값이며, 설정되지 않거나 유효하지 않을 경우 사용됩니다).
오래된 기록 백필
wacli sync는 WhatsApp Web이 제공하는 데이터를 기회적으로 저장합니다. 오래된 메시지를 가져오려면 기본 기기(휴대폰)에 대한 온디맨드 기록 동기화 요청을 사용하세요.
중요 사항
- 이는 최선 노력이며, WhatsApp이 전체 기록을 반환하지 않을 수 있습니다.
- 기본 기기가 온라인이어야 합니다.
- 요청은 채팅당(1:1 또는 그룹) 수행됩니다.
wacli는 해당 채팅에서 가장 오래된 로컬 메시지를 기준점으로 사용합니다. - 권장
--count값은 요청당50입니다.
단일 채팅 백필
pnpm wacli history backfill --chat 1234567890@s.whatsapp.net --requests 10 --count 50
모든 채팅 백필 (스크립트)
pnpm -s wacli -- --json chats list --limit 100000 \
| jq -r '.[].JID' \
| while read -r jid; do
pnpm -s wacli -- history backfill --chat "$jid" --requests 3 --count 50
done
라이선스
LICENSE 파일을 확인하세요.