This repository contains n8n nodes for interacting with Signal CLI. It includes a trigger node for receiving messages and an action node for various Signal operations.
- 📋 Prerequisites
- 🚀 Usage
- 📥 Installation
- 🤖 Nodes
- 💻 Development
- 🚀 Release
- 🤝 Contributing
- ⚠️ Known Limitations
- 📄 License
- Node.js (>=18.10) and pnpm (>=9.1)
- n8n installed globally using pnpm install n8n -g
- Signal CLI set up and running in daemon mode with HTTP JSON-RPC endpoint exposed (--http)
🐳 Docker command to run signal-cli locally
docker run -d \
    --name signal-cli \
    --restart=always \
    -p 7583:7583 \
    -p 8085:8085 \
    -v "$(pwd)/signal-cli:/var/lib/signal-cli" \
    --tmpfs /tmp:exec \
    --shm-size=64m \
    registry.gitlab.com/packaging/signal-cli/signal-cli-native:latest \
    daemon --http=0.0.0.0:8085- Clone this repository.
- Run pnpm installto install dependencies.
- Run pnpm buildto build the nodes.
- Run npm i n8n-nodes-signal-cliin~/.n8n/custom/nodes
- Triggers when a new message is received via Signal CLI.
- Requires Signal CLI API credential.
- Parameters:
- account: Signal account to listen for incoming messages.
 
- Interact with Signal CLI API for various operations.
- Requires Signal CLI API credential.
- Supports the following resources and operations:
- Message:
- Send: Send a message to a recipient or group.
- Parameters: account,recipient,message
 
- Parameters: 
 
- Send: Send a message to a recipient or group.
- Group:
- Create: Create a new group.
- Parameters: account,name,members
 
- Parameters: 
- List: List all groups.
- Parameters: account
 
- Parameters: 
 
- Create: Create a new group.
- Contact:
- Update: Update a contact's name.
- Parameters: account,recipient,name
 
- Parameters: 
- List: List all contacts.
- Parameters: account
 
- Parameters: 
 
- Update: Update a contact's name.
- Reaction:
- Send: Send a reaction to a message.
- Parameters: account,recipient,reaction,targetAuthor,timestamp
 
- Parameters: 
- Remove: Remove a reaction from a message.
- Parameters: account,recipient,reaction,targetAuthor,timestamp
 
- Parameters: 
 
- Send: Send a reaction to a message.
- Receipt:
- Send: Send a receipt (read or viewed) for a message.
- Parameters: account,recipient,receiptType,timestamp
 
- Parameters: 
 
- Send: Send a receipt (read or viewed) for a message.
 
- Message:
- Run pnpm devto start the TypeScript compiler in watch mode.
- Run pnpm lintto check for linting errors.
- Run pnpm testto run integration tests.
Before running the tests, set the ENDPOINT environment variable to the Signal CLI API URL (e.g., "http://127.0.0.1:8085").
For example, you can run the following command in your terminal:
export ENDPOINT="http://127.0.0.1:8085" # signal-cli endpoint
export ACCOUNT_NUMBER="±33620382719" # your phone number in international format- Run pnpm releaseto release a new version of the package.
Contributions are welcome! Please follow these steps to contribute:
- Fork this repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request with a clear description of your changes.
- Ensure that your code adheres to the existing coding standards and passes all tests.
- This implementation relies on the Signal CLI API, which may have its own limitations and constraints.
- Ensure that the Signal CLI is properly configured and running before using these nodes.
- Some operations may require specific permissions or settings within Signal CLI.
MIT