LINE (plugin)
LINE connects to OpenClaw via the LINE Messaging API. The plugin runs as a webhook receiver on the gateway and uses your channel access token + channel secret for authentication. Status: supported via plugin. Direct messages, group chats, media, locations, Flex messages, template messages, and quick replies are supported. Reactions and threads are not supported.Plugin required
Install the LINE plugin:Setup
- Create a LINE Developers account and open the Console: https://developers.line.biz/console/
- Create (or pick) a Provider and add a Messaging API channel.
- Copy the Channel access token and Channel secret from the channel settings.
- Enable Use webhook in the Messaging API settings.
- Set the webhook URL to your gateway endpoint (HTTPS required):
channels.line.webhookPath or
channels.line.accounts.<id>.webhookPath and update the URL accordingly.
Security note:
- LINE signature verification is body-dependent (HMAC over the raw body), so OpenClaw applies strict pre-auth body limits and timeout before verification.
- OpenClaw processes webhook events from the verified raw request bytes. Upstream middleware-transformed
req.bodyvalues are ignored for signature-integrity safety.
Configure
Minimal config:LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET
tokenFile and secretFile must point to regular files. Symlinks are rejected.
Multiple accounts:
Access control
Direct messages default to pairing. Unknown senders get a pairing code and their messages are ignored until approved.channels.line.dmPolicy:pairing | allowlist | open | disabledchannels.line.allowFrom: allowlisted LINE user IDs for DMschannels.line.groupPolicy:allowlist | open | disabledchannels.line.groupAllowFrom: allowlisted LINE user IDs for groups- Per-group overrides:
channels.line.groups.<groupId>.allowFrom - Runtime note: if
channels.lineis completely missing, runtime falls back togroupPolicy="allowlist"for group checks (even ifchannels.defaults.groupPolicyis set).
- User:
U+ 32 hex chars - Group:
C+ 32 hex chars - Room:
R+ 32 hex chars
Message behavior
- Text is chunked at 5000 characters.
- Markdown formatting is stripped; code blocks and tables are converted into Flex cards when possible.
- Streaming responses are buffered; LINE receives full chunks with a loading animation while the agent works.
- Media downloads are capped by
channels.line.mediaMaxMb(default 10).
Channel data (rich messages)
UsechannelData.line to send quick replies, locations, Flex cards, or template
messages.
/card command for Flex message presets:
ACP support
LINE supports ACP (Agent Communication Protocol) conversation bindings:/acp spawn <agent> --bind herebinds the current LINE chat to an ACP session without creating a child thread.- Configured ACP bindings and active conversation-bound ACP sessions work on LINE like other conversation channels.
Outbound media
The LINE plugin supports sending images, videos, and audio files through the agent message tool. Media is sent via the LINE-specific delivery path with appropriate preview and tracking handling:- Images: sent as LINE image messages with automatic preview generation.
- Videos: sent with explicit preview and content-type handling.
- Audio: sent as LINE audio messages.
Troubleshooting
- Webhook verification fails: ensure the webhook URL is HTTPS and the
channelSecretmatches the LINE console. - No inbound events: confirm the webhook path matches
channels.line.webhookPathand that the gateway is reachable from LINE. - Media download errors: raise
channels.line.mediaMaxMbif media exceeds the default limit.
Related
- Channels Overview — all supported channels
- Pairing — DM authentication and pairing flow
- Groups — group chat behavior and mention gating
- Channel Routing — session routing for messages
- Security — access model and hardening