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