Signal
Connect Signal to your Letta Code agent
Signal support uses a local signal-cli bridge. Use a dedicated Signal number
when possible. If you connect a personal number, enable self_chat_mode and
talk to the agent through Signal’s Note to Self / self-chat.
1. Start a Signal bridge
Section titled “1. Start a Signal bridge”The recommended runtime is native signal-cli daemon:
signal-cli -c ~/.local/share/signal-cli-letta daemon \ --http 127.0.0.1:8080 \ --receive-mode on-connection \ --ignore-storiesKeep the daemon running while Letta is running. The Signal channel expects the
runtime JSON-RPC/SSE endpoints at /api/v1/check, /api/v1/rpc, and
/api/v1/events.
2. Configure
Section titled “2. Configure”letta channels configure signalThe wizard can use native signal-cli commands for QR/device linking or
SMS/voice registration. If Signal requires captcha, it will ask for the
signalcaptcha://... URL from signalcaptchas.org.
Config is written to ~/.letta/channels/signal/accounts.json.
3. Start the server with Signal enabled
Section titled “3. Start the server with Signal enabled”letta server --channels signal4. Pair or route a chat
Section titled “4. Pair or route a chat”With the recommended pairing DM policy, the first inbound Signal DM receives a
one-time pairing code. Complete pairing from the CLI:
letta channels pair \ --channel signal \ --code B5ZR5H \ --agent <your-agent-id> \ --conversation <your-conversation-id>You can also pair from an active Letta Code session:
/channels signal pair B5ZR5HFor personal-number setups, keep self_chat_mode enabled. In self-chat mode,
Letta only routes Note to Self/self-chat messages and rejects outbound sends to
other recipients.