Signal gives you a private, encrypted channel to your Curia instance. Because Signal uses strong phone-number-based identity, messages you send via Signal carry the highest trust level in Curia’s security model — enabling actions that lower-trust channels like email cannot authorize. If you want to send financial instructions, approve sensitive actions, or interact with Curia when you’re away from a terminal, Signal is the right channel.Documentation Index
Fetch the complete documentation index at: https://curia.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Docker and Docker Compose (Curia’s
docker-compose.ymlincludes thesignal-clicontainer) - A phone number to register with Signal — this will be the number you message from to reach Curia, and the number Curia’s Signal identity is registered under
Step 1 — Bootstrap signal-cli
Before Curia can use Signal, you need to register a phone number withsignal-cli and seed the signal-data Docker volume with the resulting credentials.
Register your phone number
Run the registration command inside the Signal will send a verification code to your phone via SMS or voice call.
signal-cli container. Replace +12223334444 with your number in E.164 format:Verify the code
Once you receive the code, submit it:On success,
signal-cli writes account credentials to the volume.Step 2 — Set the environment variable
Open your.env file and uncomment or add:
Step 3 — Restart Curia
SIGNAL_PHONE_NUMBER is set and the signal-data volume is populated. You should see the Signal adapter initialize in the startup logs.
Sending your first message
Open Signal on your phone and send a message to the number you registered. Curia will respond via the same Signal conversation. Because Signal carrieshigh trust, you can use it to:
- Approve sensitive or financial actions that email cannot authorize
- Get urgent notifications when Curia flags something in your inbox
- Send instructions to Curia securely when away from your desk
Trust levels determine which actions Curia can take on a sender’s behalf. Signal’s
high trust level is equivalent to CLI access — Curia treats Signal messages with the same confidence it treats local terminal sessions.Troubleshooting
Signal adapter not starting
Signal adapter not starting
Check that:
SIGNAL_PHONE_NUMBERis set in.env- The
signal-dataDocker volume is populated (see Step 1, Step 3 above) - The
signal-clicontainer is running:docker compose ps
Messages not delivered
Messages not delivered
Confirm the If you see connection errors, the Signal registration may have expired or the credentials in the volume may be stale. Re-run the bootstrap steps to re-register.
signal-cli container is healthy and connected to Signal’s infrastructure:Curia doesn't recognize me as a trusted sender
Curia doesn't recognize me as a trusted sender
The Signal adapter assigns Curia will confirm your number as a verified identity and grant appropriate access.
high trust to all messages by phone number. However, Curia also checks whether you’re a known contact. If your number hasn’t been confirmed as the CEO’s number, your messages may be held for review.From the CLI, tell Curia who you are: