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
)
- Clone this repository.
- Run
pnpm install
to install dependencies. - Run
pnpm build
to build the nodes. - Copy the
dist
folder andpackage.json
to your n8n custom nodes directory (usually~/.n8n/custom/nodes/n8n-nodes-signal-cli
).
- 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 dev
to start the TypeScript compiler in watch mode. - Run
pnpm lint
to check for linting errors. - Run
pnpm test
to 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 release
to 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