Install
openclaw skills install @mosluce/line-oa-chat-sendSend explicitly authorized LINE Official Account Chat messages through a persistent Chromium session; user-operated LINE login or reauthentication may use a temporary remote noVNC handoff that grants interactive browser control.
openclaw skills install @mosluce/line-oa-chat-sendA user provides or has already opened a LINE OA Chat URL and asks to send a specific message to a named chat recipient.
Revoking a handoff removes external reachability only; the browser session keeps running. That narrows the cost of revoking promptly — it does not narrow what the handoff grants while it is armed.
# 1. Check the environment. Exit 0 = ready; 3 = usable but not logged in; 1 = blocked.
bash scripts/doctor.sh
# 2. Start the browser session if one is not running.
# Owns the display, Chromium, and a loopback-only screen-sharing stack.
# Nothing is externally reachable.
bash scripts/start_line_oa_chromium.sh
# 3. ONLY when the user explicitly asks to log in or re-authenticate.
# Prints one URL, already verified reachable, or fails non-zero.
export LINE_OA_SEND_CHAT_HANDOFF_PURPOSE=line-login
export LINE_OA_SEND_CHAT_HANDOFF_TTL_SECONDS=900 # 60-3600, default 900
bash scripts/start_line_oa_vnc_handoff.sh
# 4. Revoke as soon as the user says login is done. Session keeps running.
bash scripts/stop_line_oa_vnc_handoff.sh
# 5. Find and open the chat without sending. This is the safe default.
bash scripts/run_line_oa_chat.sh --recipient "<exact recipient>" --message "<message>"
# 6. Send, only after the user authorized this exact recipient and message.
bash scripts/run_line_oa_chat.sh --recipient "<exact recipient>" --message "<message>" --send
# 7. Stop the session when the work is finished. The profile is preserved.
bash scripts/stop_line_oa_chromium.sh
Provision a Python runtime only if doctor.sh reports one missing:
bash scripts/setup_line_oa_runtime.sh --runtime-dir <private-dir> --skip-browser-install
export LINE_OA_PYTHON=<private-dir>/venv/bin/python
You do not need to re-check these by hand.
--send for the
external side effect, and verifies the message landed before reporting success.doctor.sh reports a blocker. Report the exact missing pieces and its
remediation. Do not invoke sudo or a package manager, and never weaken a
network binding to work around a failure.Read these when you need depth; they are not needed for a normal send.
| File | Read it when |
|---|---|
| references/line-oa-ui-selectors.md | The send flow fails to find the search box, the chat, or the composer |
| references/handoff-operations.md | Changing the session or handoff scripts, or diagnosing a handoff that will not verify |
| references/public-repository-checklist.md | Making the repository public |
| CONTRIBUTING.md | Changing this repository |
| containers/README.md | Running the scripts in the Linux test environment |
scripts/send_line_oa_chat.py is the only implementation of the send flow. Do
not write a second one.