You don’t need to understand the technical details to use this feature. The configuration examples below are copy-paste ready.
Prerequisites
- Comis installed and running (Quickstart)
- A phone number to register with Signal
- signal-cli installed and running (see Step 1)
Setup
1
Install and register signal-cli
Install signal-cli from the
official repository. Follow the
installation instructions for your platform.Register your phone number:Verify with the code sent to your phone:Start the signal-cli HTTP daemon:The Comis Signal adapter talks to signal-cli over HTTP at this address.
If you prefer a containerised setup, the
signal-cli-rest-api
Docker image exposes a compatible HTTP endpoint on port 8080.Verify the daemon is running:You should get a JSON response with version information.
2
Configure Comis
Add the Signal channel to your Comis configuration file (Replace
~/.comis/config.yaml):+1234567890 with the phone number you registered in Step 1.3
Restart and verify
Restart the Comis daemon to pick up the new configuration:Check the logs for a successful connection:Look for a line containing “Signal adapter connected” or
“channel-signal activated”. If you see this, the adapter is online.Send a Signal message to the registered phone number from another device
to confirm the agent responds.
4
Keep signal-cli running
The signal-cli daemon must stay running alongside Comis. If signal-cli
stops, the Signal adapter will log connection errors and be unable to
send or receive messages.For a production setup, consider running signal-cli as a systemd service
or in a screen/tmux session to ensure it survives terminal closures and
restarts automatically.
Configuration
These options go underchannels.signal in your config.yaml:
What your agent can do
Once connected to Signal, your agent can:- Send and delete messages (Signal supports remote-delete; edit is not available in the Signal protocol)
- React to messages with Unicode emoji
- Send file attachments up to 100 MB
- Send native voice messages (audio attachments uploaded as Signal voice notes via signal-cli)
- Receive native Signal read receipts — the agent sees when its messages have been read on the recipient’s device
- Use signal-text-styles formatting (bold, italic, monospace, strikethrough, spoiler)
- Stream responses as separate message blocks (updates every 500 ms)
Platform limits
Troubleshooting
Connection refused to localhost:8080
Connection refused to localhost:8080
What happened: The signal-cli daemon is not running or is listening on
a different port.How to fix it: Start signal-cli with
signal-cli -u YOUR_NUMBER daemon --http :8080 and verify it responds at
http://127.0.0.1:8080/v1/about. If you changed the port, update baseUrl
in your Comis config to match.Signal adapter connects but no messages arrive
Signal adapter connects but no messages arrive
What happened: The
account in your config does not match the phone
number registered with signal-cli.How to fix it: Make sure the account field includes the country code
with + (e.g. "+1234567890") and matches exactly what you used during
signal-cli register.Registration failed
Registration failed
What happened: Signal may require CAPTCHA verification for new
registrations, especially from servers or cloud instances.How to fix it: Follow the
signal-cli CAPTCHA documentation
for CAPTCHA-assisted registration. You may need to solve a CAPTCHA challenge
in a browser and pass the token to signal-cli.
Delivery Infrastructure
How streaming, typing indicators, and retry logic work under the hood.
Multiple users & teams
Run one install for a whole team - private per person, isolated per agent.
All Channels
Compare all 10 supported platforms side by side.
Agent Configuration
Set up your agent’s personality, tools, and behavior.
Secret Management
Learn how to manage API keys and tokens securely.
