asamk/signal-cli

signal-cli provides an unofficial commandline, JSON-RPC and dbus interface for the Signal messenger.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 52 minutes ago
Added to GitGenius on September 14th, 2026
Created on May 11th, 2015
Open Issues & Pull Requests: 108 (+0)
GitHub issues: Enabled
Number of forks: 457
Total Stargazers: 4,925 (+0)
Total Subscribers: 68 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 10.5 hours
Mean response time: 10.6 days
90th percentile: 18.0 days
Tracked items: 368

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 7% of issues opened in the past year have never received a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "bug" is answered fastest, typically in about 17 hours, while "enhancement" waits about 2 weeks. 82% of issues opened in the past year have been closed, leaving a working backlog. Three people close 76% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 69
New in 7 days: 6
Closed in 7 days: 7
Avg open age: 449 days
Stale 30+ days: 60
Stale 90+ days: 52

Recent activity

Opened in 7 days: 5
Closed in 7 days: 7
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (34)
  • enhancement (16)
  • dbus (6)
  • graalvm (3)
  • documentation (2)
  • help wanted (1)
  • libsignal issue (1)

Most active issues this week

Detailed Description

signal-cli is a commandline and daemon interface for the Signal messenger that provides unofficial access to Signal's messaging capabilities through multiple protocols.

The tool solves the problem of integrating Signal messaging into server environments and automation workflows. It works by using a patched version of libsignal-service-java extracted from Signal-Android source code, allowing registration with a phone number via SMS or voice verification, and supporting message sending and receiving. The tool operates in multiple modes: as a direct commandline interface, as a JSON-RPC daemon for programmatic access, and as a D-BUS service for system integration. A Rust example client is provided for the JSON-RPC interface.

The tool is primarily intended for server-side notification use cases where administrators need to send alerts via Signal. It supports linking to existing Signal accounts or registering new ones. Developers should be aware that signal-cli requires regular updates to maintain compatibility with Signal servers, as the official Signal clients expire after three months and the server can make incompatible changes after that point. The tool requires Java Runtime Environment 25 or later and the bundled native libsignal-client library. Binary distributions are available for Linux, macOS, and Windows, with community-provided Docker images and Linux packages also available.

Development activity shows consistent maintenance focused on compatibility. The project regularly releases updates to track Signal server changes and maintain client functionality. The maintainer actively addresses compatibility issues and provides documentation through man pages and wiki resources. The tool receives updates driven by the requirement to stay synchronized with Signal protocol changes rather than by feature expansion.