Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
Status: external CLI integration. Gateway talks to
signal-clisignal-clisignalcaptchas.orgsignal-clisignal-cli link -n "OpenClaw"openclaw pairing approve signal <CODE>Minimal config:
json5{ channels: { signal: { enabled: true, account: "+15551234567", cliPath: "signal-cli", dmPolicy: "pairing", allowFrom: ["+15557654321"], }, }, }
Field reference:
| Field | Description |
|---|---|
text account | Bot phone number in E.164 format ( text +15551234567 |
text cliPath | Path to text signal-clitext signal-clitext PATH |
text dmPolicy | DM access policy ( text pairing |
text allowFrom | Phone numbers or text uuid:<id> |
signal-cliagent:<agentId>:signal:group:<groupId>By default, Signal is allowed to write config updates triggered by
/config set|unsetcommands.config: trueDisable with:
json5{ channels: { signal: { configWrites: false } }, }
signal-clisignal-clisignal-cli link -n "OpenClaw"Example:
json5{ channels: { signal: { enabled: true, account: "+15551234567", cliPath: "signal-cli", dmPolicy: "pairing", allowFrom: ["+15557654321"], }, }, }
Multi-account support: use
channels.signal.accountsnamegateway/configurationUse this when you want a dedicated bot number instead of linking an existing Signal app account.
signal-clibashVERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/AsamK/signal-cli/releases/latest | sed -e 's/^.*\/v//') curl -L -O "https://github.com/AsamK/signal-cli/releases/download/v${VERSION}/signal-cli-${VERSION}-Linux-native.tar.gz" sudo tar xf "signal-cli-${VERSION}-Linux-native.tar.gz" -C /opt sudo ln -sf /opt/signal-cli /usr/local/bin/ signal-cli --version
If you use the JVM build (
signal-cli-${VERSION}.tar.gzsignal-clibashsignal-cli -a +<BOT_PHONE_NUMBER> register
If captcha is required:
https://signalcaptchas.org/registration/generate.htmlsignalcaptcha://...bashsignal-cli -a +<BOT_PHONE_NUMBER> register --captcha '<SIGNALCAPTCHA_URL>' signal-cli -a +<BOT_PHONE_NUMBER> verify <VERIFICATION_CODE>
bash# If you run the gateway as a user systemd service: systemctl --user restart openclaw-gateway.service # Then verify: openclaw doctor openclaw channels status --probe
openclaw pairing approve signal <PAIRING_CODE>Upstream references:
signal-clihttps://github.com/AsamK/signal-clihttps://github.com/AsamK/signal-cli/wiki/Registration-with-captchahttps://github.com/AsamK/signal-cli/wiki/Linking-other-devices-(Provisioning)If you want to manage
signal-clijson5{ channels: { signal: { httpUrl: "http://127.0.0.1:8080", autoStart: false, }, }, }
This skips auto-spawn and the startup wait inside OpenClaw. For slow starts when auto-spawning, set
channels.signal.startupTimeoutMsDMs:
channels.signal.dmPolicy = "pairing"openclaw pairing list signalopenclaw pairing approve signal <CODE>sourceUuiduuid:<id>channels.signal.allowFromGroups:
channels.signal.groupPolicy = open | allowlist | disabledchannels.signal.groupAllowFromallowlistgroup:<id>signal:group:<id>uuid:<id>*channels.signal.groups["<group-id>" | "*"]requireMentiontoolstoolsBySenderchannels.signal.accounts.<id>.groupsgroupAllowFromchannels.signal.groups["<group-id>"]requireMention=truechannels.signalgroupPolicy="allowlist"channels.defaults.groupPolicysignal-clichannels.signal.textChunkLimitchannels.signal.chunkMode="newline"signal-clisignal-clicontentTypechannels.signal.mediaMaxMbchannels.signal.ignoreAttachmentschannels.signal.historyLimitchannels.signal.accounts.*.historyLimitmessages.groupChat.historyLimit0signal-cli sendTypingchannels.signal.sendReadReceiptsmessage action=reactchannel=signaluuid:<id>messageIdtargetAuthortargetAuthorUuidExamples:
textmessage action=react channel=signal target=uuid:123e4567-e89b-12d3-a456-426614174000 messageId=1737630212345 emoji=🔥 message action=react channel=signal target=+15551234567 messageId=1737630212345 emoji=🔥 remove=true message action=react channel=signal target=signal:group:<groupId> targetAuthor=uuid:<sender-uuid> messageId=1737630212345 emoji=✅
Config:
channels.signal.actions.reactionschannels.signal.reactionLeveloff | ack | minimal | extensiveoffackreactminimalextensivechannels.signal.accounts.<id>.actions.reactionschannels.signal.accounts.<id>.reactionLevelsignal:+15551234567uuid:<id>signal:group:<groupId>username:<name>Run this ladder first:
bashopenclaw status openclaw gateway status openclaw logs --follow openclaw doctor openclaw channels status --probe
Then confirm DM pairing state if needed:
bashopenclaw pairing list signal
Common failures:
httpUrlaccountopenclaw doctor --fixchannels.signal.enabled: trueExtra checks:
bashopenclaw pairing list signal pgrep -af signal-cli grep -i "signal" "/tmp/openclaw/openclaw-$(date +%Y-%m-%d).log" | tail -20
For triage flow: /channels/troubleshooting.
signal-cli~/.local/share/signal-cli/data/channels.signal.dmPolicy: "pairing"Full configuration: Configuration
Provider options:
channels.signal.enabledchannels.signal.accountchannels.signal.cliPathsignal-clichannels.signal.httpUrlchannels.signal.httpHostchannels.signal.httpPortchannels.signal.autoStarthttpUrlchannels.signal.startupTimeoutMschannels.signal.receiveModeon-start | manualchannels.signal.ignoreAttachmentschannels.signal.ignoreStorieschannels.signal.sendReadReceiptschannels.signal.dmPolicypairing | allowlist | open | disabledchannels.signal.allowFromuuid:<id>open"*"channels.signal.groupPolicyopen | allowlist | disabledchannels.signal.groupAllowFromgroup:<id>signal:group:<id>uuid:<id>channels.signal.groups"*"requireMentiontoolstoolsBySenderchannels.signal.accounts.<id>.groupschannels.signal.groupschannels.signal.historyLimitchannels.signal.dmHistoryLimitchannels.signal.dms["<phone_or_uuid>"].historyLimitchannels.signal.textChunkLimitchannels.signal.chunkModelengthnewlinechannels.signal.mediaMaxMbRelated global options:
agents.list[].groupChat.mentionPatternsmessages.groupChat.mentionPatternsmessages.responsePrefix© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine