Skip to content
Letta Code Letta Code Letta Docs
Sign up
Features
Channels

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.

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-stories

Keep 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.

letta channels configure signal

The 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.

letta server --channels signal

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 B5ZR5H

For 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.