> ## Documentation Index
> Fetch the complete documentation index at: https://docs.loongclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# LINE

> Configure the LINE channel surface in Loong.

# LINE

This is a shipped standalone native-serve surface: direct sends are implemented, the signed webhook reply loop is implemented, and the runtime stays on `channels serve line` instead of `gateway run` today.

## At A Glance

| Field                    | Value                |
| ------------------------ | -------------------- |
| Catalog id               | `line`               |
| Config key               | `line`               |
| Implementation status    | `runtime_backed`     |
| Transport                | `line_messaging_api` |
| Aliases                  | `line-bot`           |
| Default send target kind | `address`            |

## Minimal Config

```toml theme={null}
[line]
enabled = true
channel_access_token_env = "LINE_CHANNEL_ACCESS_TOKEN"
channel_secret_env = "LINE_CHANNEL_SECRET"
```

## Smoke Test

```bash theme={null}
loong channels send line --target "U4af4980629..." --text "hello from loong"
loong channels serve line --bind 127.0.0.1:6401
```

## Command Surface

| Operation          | Command               | Usage or status                                                              |
| ------------------ | --------------------- | ---------------------------------------------------------------------------- |
| push send          | `channels send line`  | Usage: loong channels send line \[OPTIONS] --target \<TARGET> --text \<TEXT> |
| webhook reply loop | `channels serve line` | Usage: loong channels serve line --bind \<HOST:PORT> \[--path \<PATH>]       |

## Required Fields For Send

| Requirement          | Config paths                                                                    | Env pointer paths                                                                       | Default env                 |
| -------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------- |
| channel enabled      | `line.enabled`<br />`line.accounts.<account>.enabled`                           | none                                                                                    | none                        |
| channel access token | `line.channel_access_token`<br />`line.accounts.<account>.channel_access_token` | `line.channel_access_token_env`<br />`line.accounts.<account>.channel_access_token_env` | `LINE_CHANNEL_ACCESS_TOKEN` |

## Required Fields For Serve

| Requirement          | Config paths                                                                    | Env pointer paths                                                                       | Default env                 |
| -------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------- |
| channel enabled      | `line.enabled`<br />`line.accounts.<account>.enabled`                           | none                                                                                    | none                        |
| channel access token | `line.channel_access_token`<br />`line.accounts.<account>.channel_access_token` | `line.channel_access_token_env`<br />`line.accounts.<account>.channel_access_token_env` | `LINE_CHANNEL_ACCESS_TOKEN` |
| channel secret       | `line.channel_secret`<br />`line.accounts.<account>.channel_secret`             | `line.channel_secret_env`<br />`line.accounts.<account>.channel_secret_env`             | `LINE_CHANNEL_SECRET`       |

## Gateway And Ownership

This surface ships a real built-in serve loop, but it remains a standalone native-serve lane today. Use `channels serve line` directly; it does not join `gateway run` or the gateway-owned reply-loop contract yet.

## Operator Notes

* `channels serve line` requires `--bind` because the local listener address stays an explicit operator decision.
* `--path` is optional when the default webhook path already matches the LINE console setup.
* Treat this as a native serve lane, not as an outbound-only sink.

## Related Docs

* Continue to [Channel Guides](/use-loong/channel-guides/index) for the full shipped channel matrix.
* Continue to [Channels](/use-loong/channels) for the conceptual surface model.
* Continue to [Channel Setup](/use-loong/channel-setup) for the shared public setup contract.
