GithubHelp home page GithubHelp logo

inculi / signal-cli Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kbin76/signal-cli

0.0 4.0 0.0 858 KB

signal-cli (formerly textsecure-cli) provides a commandline and dbus interface for WhisperSystems/libsignal-service-java

License: GNU General Public License v3.0

Perl 9.52% Java 90.48%

signal-cli's Introduction

signal-cli

signal-cli is a commandline interface for libsignal-service-java. It supports registering, verifying, sending and receiving messages. To be able to link to an existing Signal-Android/signal-cli instance, signal-cli uses a patched libsignal-service-java, because libsignal-service-java does not yet support provisioning as a slave device. For registering you need a phone number where you can receive SMS or incoming calls. signal-cli is primarily intended to be used on servers to notify admins of important events. For this use-case, it has a dbus interface, that can be used to send messages from any programming language that has dbus bindings.

Installation

You can build signal-cli yourself, or use the provided binary files, which should work on Linux, macOS and Windows. For Arch Linux there is also a package in AUR. You need to have at least JRE 7 installed, to run signal-cli.

Install system-wide on Linux

See latest version.

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/

Usage

Important: The USERNAME (your phone number) must include the country calling code, i.e. the number must start with a "+" sign. (See Wikipedia for a list of all country codes.

  • Register a number (with SMS verification)

      signal-cli -u USERNAME register
    
  • Verify the number using the code received via SMS or voice

      signal-cli -u USERNAME verify CODE
    
  • Send a message

      signal-cli -u USERNAME send -m "This is a message" RECIPIENT
    
  • Pipe the message content from another process.

      uname -a | signal-cli -u USERNAME send RECIPIENT
    
  • Receive messages

      signal-cli -u USERNAME receive
    

For more information read the man page and the wiki.

Storage

The password and cryptographic keys are created when registering and stored in the current users home directory:

    $HOME/.config/signal/data/

For legacy users, the old config directory is used as a fallback:

    $HOME/.config/textsecure/data/

Building

This project uses Gradle for building and maintaining dependencies. If you have a recent gradle version installed, you can replace ./gradlew with gradle in the following steps.

  1. Checkout the source somewhere on your filesystem with

     git clone https://github.com/AsamK/signal-cli.git
    
  2. Execute Gradle:

     ./gradlew build
    
  3. Create shell wrapper in build/install/signal-cli/bin:

     ./gradlew installDist
    
  4. Create tar file in build/distributions:

     ./gradlew distTar
    

Troubleshooting

If you use a version of the Oracle JRE and get an InvalidKeyException you need to enable unlimited strength crypto. See https://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters for instructions.

License

This project uses libsignal-service-java from Open Whisper Systems:

https://github.com/WhisperSystems/libsignal-service-java

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

signal-cli's People

Contributors

asamk avatar kbin76 avatar pimotte avatar chr1shaefn3r avatar thefinn93 avatar trolldemorted avatar individual-it avatar jooray avatar larsborn avatar

Watchers

James Cloos avatar Robert avatar James avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.