signal-cli는 Signal 메신저용 명령줄 인터페이스입니다. 메시지 등록, 확인, 보내기 및 받기를 지원합니다. signal-cli는 Signal-Android 소스 코드에서 추출된 패치된 libsignal-service-java를 사용합니다. 등록을 위해서는 SMS나 수신 전화를 받을 수 있는 전화번호가 필요합니다.
signal-cli는 주로 서버에서 관리자에게 중요한 이벤트를 알리는 데 사용됩니다. 이 사용 사례의 경우 JSON-RPC 인터페이스(man 페이지) 및 D-BUS 인터페이스(man 페이지)가 있는 데몬 모드가 있습니다. JSON-RPC 인터페이스의 경우 Rust로 작성된 간단한 예제 클라이언트도 있습니다.
signal-cli를 직접 구축하거나 제공된 바이너리 파일을 사용할 수 있으며 이는 Linux, macOS 및 Windows에서 작동합니다. 커뮤니티에서 제공하는 Docker 이미지와 일부 Linux 패키지도 있습니다.
시스템 요구 사항:
JRE(Java Runtime Environment) 21 이상
네이티브 라이브러리: libsignal-client
기본 라이브러리는 x86_64 Linux(최신 glibc 포함), Windows 및 MacOS용으로 번들로 제공됩니다. 다른 시스템/아키텍처의 경우 libsignal에 대한 기본 lib 제공을 참조하세요.
최신 버전을 참조하세요.
export VERSION= < latest version, format " x.y.z " >
wget https://github.com/AsamK/signal-cli/releases/download/v " ${VERSION} " /signal-cli- " ${VERSION} " .tar.gz
sudo tar xf signal-cli- " ${VERSION} " .tar.gz -C /opt
sudo ln -sf /opt/signal-cli- " ${VERSION} " /bin/signal-cli /usr/local/bin/
Wiki에서 추가 지침을 찾을 수 있습니다.
전체 사용법 개요를 보려면 매뉴얼 페이지와 위키를 읽어보세요.
중요: 계정은 국제 형식의 전화번호이며 국가 전화 코드를 포함해야 합니다. 따라서 "+" 기호로 시작해야 합니다. (모든 국가 코드 목록은 Wikipedia를 참조하세요.)
번호 등록(SMS 인증 포함)
signal-cli -a ACCOUNT register
유선전화 번호를 사용하여 Signal을 등록할 수 있습니다. 이 경우 위의 등록 명령 끝에 --voice
스위치를 추가하여 SMS 확인 프로세스를 건너뛰고 바로 음성 통화 확인으로 이동할 수 있습니다.
등록하려면 CAPTCHA 문제를 해결해야 할 수 있습니다. 보안 문자로 등록
SMS 또는 음성을 통해 받은 코드를 사용하여 번호를 확인하세요. 계정에 PIN 코드를 추가한 경우 선택적으로 --pin PIN_CODE
추가하세요.
signal-cli -a ACCOUNT verify CODE
메시지 보내기
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
다른 프로세스에서 메시지 콘텐츠를 파이프합니다.
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
메시지 받기
signal-cli -a ACCOUNT receive
힌트 : Signal 프로토콜은 들어오는 메시지가 정기적으로 수신될 것으로 예상합니다( daemon
또는 receive
명령 사용). 이는 암호화가 효율적으로 작동하고 그룹, 만료 타이머 및 기타 기능을 업데이트하는 데 필요합니다.
비밀번호와 암호화 키는 등록 시 생성되어 현재 사용자 홈 디렉터리에 저장됩니다.
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
이 프로젝트에서는 종속성을 구축하고 유지하기 위해 Gradle을 사용합니다. 최신 Gradle 버전이 설치되어 있는 경우 다음 단계에 따라 ./gradlew
gradle
로 바꿀 수 있습니다.
다음을 사용하여 파일 시스템 어딘가에서 소스를 확인하세요.
git clone https://github.com/AsamK/signal-cli.git
Gradle을 실행합니다.
./gradlew build
2a. build/install/signal-cli/bin 에서 셸 래퍼를 만듭니다.
./gradlew installDist
2b. 빌드/배포판 에 tar 파일을 만듭니다.
./gradlew distTar
2c. build/libs/signal-cli-fat 에 fat tar 파일을 만듭니다.
./gradlew fatJar
2d. signal-cli를 컴파일하고 실행합니다.
./gradlew run --args= " --help "
GraalVM을 사용하여 기본 바이너리를 빌드할 수 있습니다. 이는 아직 실험적이므로 모든 상황에서 작동하지는 않습니다.
GraalVM 설치 및 환경 설정
Gradle을 실행합니다.
./gradlew nativeCompile
바이너리는 build/native/nativeCompile/signal-cli 에서 사용할 수 있습니다.
자주 묻는 질문과 문제는 위키를 참조하세요.
이 프로젝트는 Open Whisper Systems의 libsignal-service-java를 사용합니다.
https://github.com/WhisperSystems/libsignal-service-java
GPLv3에 따라 라이센스가 부여되었습니다: http://www.gnu.org/licenses/gpl-3.0.html