Gathering detailed insights and metrics for signal-sdk
Gathering detailed insights and metrics for signal-sdk
Gathering detailed insights and metrics for signal-sdk
Gathering detailed insights and metrics for signal-sdk
@signal-conso/signalconso-api-sdk-js
SignalConso API SDK for JavaScript/TypeScript
@djack-sdk/signal
DJack, previous known as Jackmail was a serverless browser application which was capable of delivering the emails straight to your browser tab without any storage in between. Closing your browser would act as if the email never existed.
signalwire-node-sdk
Signal Wire Node SDK
signalwire-browser-sdk
Signal Wire Browser SDK
A comprehensive TypeScript SDK for interacting with signal messenger, providing JSON-RPC communication and a powerful bot framework.
npm install signal-sdk
Typescript
Module System
Min. Node Version
Node Version
NPM Version
TypeScript (92.09%)
JavaScript (7.91%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
1 Stars
14 Commits
1 Branches
1 Contributors
Updated on Jul 12, 2025
Latest Version
0.0.5
Package Id
signal-sdk@0.0.5
Unpacked Size
140.21 kB
Size
32.57 kB
File Count
18
NPM Version
10.9.2
Node Version
22.17.0
Published on
Jul 12, 2025
Cumulative downloads
Total Downloads
A comprehensive TypeScript SDK for interacting with
signal-cli
providing JSON-RPC communication and a powerful bot framework.
1npm install signal-sdk
Note: signal-cli binaries are included with the SDK - no separate installation required.
The SDK includes a command-line interface for common operations:
1# View all available commands 2npx signal-sdk --help 3 4# Link a new device to your Signal account 5npx signal-sdk connect 6 7# Link with a custom device name 8npx signal-sdk connect "My Custom Device Name"
Before using the SDK, you need to link a device to your Signal account:
1# Using npx (recommended) 2npx signal-sdk connect 3 4# Or with a custom device name 5npx signal-sdk connect "My Bot Device" 6 7# Get help for the CLI 8npx signal-sdk --help
This command will:
Note: You only need to do this once per device. After linking, your device will be permanently connected to your Signal account.
1const { SignalCli } = require("signal-sdk"); 2 3// Initialize SignalCli with phone number 4const signal = new SignalCli("+1234567890"); 5 6// Connect to signal-cli daemon 7await signal.connect(); 8 9// Send a message 10await signal.sendMessage("+0987654321", "Hello from Signal CLI SDK!"); 11 12// Listen for incoming messages 13signal.on("message", (message) => { 14 console.log("Received message:", message.envelope.dataMessage.message); 15}); 16 17// Graceful shutdown 18await signal.gracefulShutdown();
1const { SignalBot } = require("signal-sdk"); 2 3// Initialize bot with configuration 4const bot = new SignalBot({ 5 phoneNumber: "+1234567890", 6 admins: ["+0987654321"], 7 group: { 8 name: "My Bot Group", 9 description: "A group managed by my bot", 10 createIfNotExists: true, 11 }, 12}); 13 14// Add custom commands 15bot.addCommand({ 16 name: "hello", 17 description: "Greet the user", 18 handler: async (message, args) => { 19 const name = args.join(" ") || "friend"; 20 return `Hello ${name}! How can I help you today?`; 21 }, 22}); 23 24// Handle events 25bot.on("ready", () => { 26 console.log("Bot is ready and listening for messages!"); 27}); 28 29bot.on("message", (message) => { 30 console.log(`Received: ${message.text} from ${message.sender}`); 31}); 32 33// Start the bot 34await bot.start();
Your bot will automatically:
/
)/help
, /ping
)1const { SignalCli } = require("signal-sdk"); 2const signal = new SignalCli("+1234567890"); 3 4await signal.connect(); 5await signal.sendMessage("+0987654321", "Hello World!"); 6await signal.gracefulShutdown();
1// Send file with message 2await signal.sendMessage("+0987654321", "Here's the document:", { 3 attachments: ["./path/to/document.pdf"], 4}); 5 6// Send multiple files 7await signal.sendMessage("+0987654321", "Photos from today:", { 8 attachments: ["./photo1.jpg", "./photo2.jpg"], 9});
1// Create a new group 2const group = await signal.createGroup("My Group", [ 3 "+0987654321", 4 "+1122334455", 5]); 6console.log("Group ID:", group.groupId); 7 8// Send message to group 9await signal.sendMessage(group.groupId, "Welcome to the group!"); 10 11// Update group info 12await signal.updateGroup(group.groupId, { 13 title: "Updated Group Name", 14 description: "This is our group chat", 15});
1const { SignalBot } = require("signal-sdk"); 2 3const bot = new SignalBot({ 4 phoneNumber: "+1234567890", 5 admins: ["+0987654321"], 6}); 7 8// Add weather command 9bot.addCommand({ 10 name: "weather", 11 description: "Get weather information", 12 handler: async (message, args) => { 13 const city = args.join(" ") || "New York"; 14 // Integrate with weather API 15 return `Weather in ${city}: 22°C, sunny`; 16 }, 17}); 18 19// Add custom event handler 20bot.on("groupMemberJoined", async (event) => { 21 await bot.sendMessage(event.groupId, `Welcome ${event.member.name}!`); 22}); 23 24await bot.start();
1# Run all tests 2npm test 3 4# Run specific test suite 5npm test -- --testNamePattern="SignalCli" 6 7# Run with coverage 8npm run test:coverage
1# Clone the repository 2git clone https://github.com/your-username/signal-cli-sdk.git 3cd signal-cli-sdk 4 5# Install dependencies 6npm install 7 8# Build the project 9npm run build 10 11# Run examples 12npm run build && node examples/sdk/01-basic-usage.js 13 14# Run tests 15npm test
Create a .env
file in your project root:
1SIGNAL_PHONE_NUMBER="+1234567890" 2SIGNAL_ADMIN_NUMBER="+0987654321" 3SIGNAL_RECIPIENT_NUMBER="+1122334455" 4SIGNAL_GROUP_NAME="My Bot Group"
1const { SignalCli } = require("signal-sdk"); 2 3// Basic configuration 4const signal = new SignalCli(configPath, phoneNumber); 5// configPath: Path to signal-cli config directory (optional) 6// phoneNumber: Your registered Signal phone number (required) 7 8// Example with custom config path 9const signal = new SignalCli("/custom/signal-cli/config", "+1234567890");
1const { SignalBot } = require("signal-sdk"); 2 3const bot = new SignalBot({ 4 phoneNumber: "+1234567890", // Required: Your Signal phone number 5 admins: ["+0987654321"], // Required: Admin phone numbers 6 group: { 7 name: "My Bot Group", // Group name 8 description: "Managed by my bot", // Group description 9 createIfNotExists: true, // Create group if it doesn't exist 10 avatar: "./group-avatar.jpg", // Group avatar image 11 }, 12 settings: { 13 commandPrefix: "/", // Command prefix (default: "/") 14 logMessages: true, // Log incoming messages (default: false) 15 welcomeNewMembers: true, // Welcome message for new members 16 cooldownSeconds: 2, // Command cooldown in seconds 17 }, 18});
signal-cli not found
1# Make sure signal-cli is installed and in your PATH 2# Download from: https://github.com/AsamK/signal-cli/releases 3signal-cli --version
Java not installed
1# Install Java (required by signal-cli) 2# Ubuntu/Debian 3sudo apt update && sudo apt install default-jre 4 5# macOS with Homebrew 6brew install openjdk 7 8# Windows: Download from Oracle or use package manager
Phone number not registered
1# Register your phone number with Signal first 2signal-cli -a +1234567890 register 3signal-cli -a +1234567890 verify CODE_FROM_SMS
Connection timeout
1# Test signal-cli directly 2signal-cli -a +1234567890 send +0987654321 "Test message"
Permission denied on config directory
1# Fix permissions on signal-cli config directory 2chmod -R 755 ~/.local/share/signal-cli/
Complete troubleshooting guide
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with TypeScript for the Signal community
Compatible with signal-cli v0.13.17 - 100% Feature Coverage
Category | Method | Description | Status |
---|---|---|---|
Messaging | send | Send text messages and attachments | ✅ |
sendReaction | React to messages with emoji | ✅ | |
sendTyping | Send typing indicators | ✅ | |
sendReceipt | Send read receipts | ✅ | |
sendPaymentNotification | Send payment notifications | ✅ | |
Groups | createGroup | Create new groups | ✅ |
updateGroup | Update group settings | ✅ | |
listGroups | List all groups | ✅ | |
quitGroup | Leave a group | ✅ | |
Contacts | listContacts | List all contacts | ✅ |
updateContact | Update contact information | ✅ | |
removeContact | Remove contacts with options | ✅ | |
block / unblock | Block/unblock contacts | ✅ | |
getUserStatus | Check registration status | ✅ | |
Stickers | listStickerPacks | List sticker packs | ✅ |
addStickerPack | Install sticker packs | ✅ | |
uploadStickerPack | Upload custom sticker packs | ✅ | |
Advanced | submitRateLimitChallenge | Handle rate limiting | ✅ |
startChangeNumber | Start phone number change | ✅ | |
finishChangeNumber | Complete phone number change | ✅ | |
sendMessageWithProgress | Enhanced messaging with progress | ✅ |
If you find signal sdk useful, consider supporting its development:
Your support helps maintain and improve signal-sdk
Made with ❤️ for the Signal community
No vulnerabilities found.
No security vulnerabilities found.
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year