⚠️ CRITICAL : Always use profile:"openclaw" (isolated browser) for all browser actions. Never use Chrome relay. Keep the same targetId across operations to avoid losing the tab.
SKILL.md
LINE Official Account Manager
⚠️ CRITICAL: Always use profile:"openclaw" (isolated browser) for all browser actions. Never use Chrome relay. Keep the same targetId across operations to avoid losing the tab.
⚠️ CONTEXT Management:
Snapshot results are large. Do NOT repeat them in thinking.
Extract needed info and process immediately. Do not re-describe the entire snapshot.
Preferred approach: Use snapshot refs:"aria" compact:true to find element refs, then act + click/type with ref.
Avoid: Hard-coded evaluate with textContent.includes() — unreliable due to DOM timing and structure variations.
⚠️ AUTO-LOGIN SCRIPTS:
auto-login.mjs is a reference implementation (not directly executable by agents)
login-flow.md is the agent-executable version (use this for automation)
Why separate? Agents use browser tool calls, not Node module imports
Configuration
Before first use, check if config.json exists:
text
read file_path:"skills/line-oa/config.json"
⚠️ PATH RULE: Always use workspace-relative paths starting from skills/line-oa/. Never use ../ or absolute paths starting with /.
If missing, help the user run the following command to start the setup wizard:
bash
cd skills/line-oa
node scripts/setup.js
Enter LINE OA Manager
This is the first step for all operations below.
Check and start browser service:
text
browser action:"status"
If "running": false, start the browser service:
text
browser action:"start" profile:"openclaw"
Wait 2-3 seconds for the service to initialize.
Read config to get chatUrl:
text
read file_path:"skills/line-oa/config.json"
Extract chatUrl from the JSON (e.g., https://chat.line.biz/U1234567890abcdef1234567890abcdef/).
Important: Always clean up tabs after all operations to prevent resource accumulation. The blank tab keeps the browser service running for faster next use.
Quick Check (for cron / automated checks)
Complete flow: login → list chats → report. Follow these steps exactly.
Read config: read file_path:"skills/line-oa/config.json" → get chatUrl
Open browser: browser action:"open" profile:"openclaw" targetUrl:<chatUrl> → get targetId
⚠️ CHECKPOINT: Did you actually call the browser tool above? If you only thought about it but didn't call it, STOP and call it NOW. You MUST see a tool result before continuing.
Report: take the first 5 items, format each as: <name> (<time>) <lastMsg> [未讀] or [已讀] based on unread field. If empty array, say "目前沒有聊天記錄".
Clean up: open about:blank, list all tabs, close everything except about:blank.
Check LINE Messages
Extracts all chats from the left-side chat list with unread status. Does NOT require clicking into each chat.
Prerequisites: You must be logged in and on the chat list page (see Login section Step 5 for verification).
Result: Store the chat URL (e.g., https://chat.line.biz/U1234567890abcdef1234567890abcdef/chat/U803dc04f...) alongside the chat info for faster access later.
How to Report Results
If unread: true exists: List each unread chat with name, time, preview, and URL (if obtained)
If no unread: Say "No unread messages at this time"
Notes
Unread indicator: span.badge.badge-pin inside each chat list item (green dot)
Limitation: lastMsg shows the last message in the thread, which may be an auto-response rather than the customer's original message
Chat URLs: Getting URLs requires clicking each chat. Do this for unread chats to enable faster replies later.
To read full messages: See "View Specific Messages" section below
View Specific Messages
Opens any chat (read or unread) and displays its messages. Works for viewing message history, checking context, or preparing to reply.
Prerequisites: You must be logged in and on the chat list page. You should know the customer name (from list-chats.js or user request).
Steps
Find and click the chat item to open messages:
Use evaluate to find the chat item by name (more reliable than snapshot for dynamic chat list):
The snapshot will show a list of accounts you have access to. Look for generic items in the listbox (each account will have a name and "Administrator" or role label).
Click the desired account item (e.g., ref:"e589"):
text
Limited provenance information — review the source before installing.
Freshness11/15
Updated within the last 6 months.
Scored automatically from popularity, completeness, trust, and freshness — computed only from data in our catalog, never fabricated.
Proud of your score? Add this badge to your README.
Paste a snippet into your GitHub README. The badge updates automatically and links back to this page.
Score badge
Markdown
[](https://www.remoteopenclaw.com/skills/picseeinc/line-oa)
HTML
<a href="https://www.remoteopenclaw.com/skills/picseeinc/line-oa"><img src="https://www.remoteopenclaw.com/skills/picseeinc/line-oa/badges/score.svg" alt="Line Oa skill"/></a>
Line Oa FAQ
How do I install the Line Oa skill?
Run “clawhub install picseeinc/line-oa” in your terminal. The skill is added to your agent's skills directory and picked up automatically on the next run — no restart or extra configuration needed.
What does the Line Oa skill do?
⚠️ CRITICAL : Always use profile:"openclaw" (isolated browser) for all browser actions. Never use Chrome relay. Keep the same targetId across operations to avoid losing the tab. The SKILL.md section on this page shows the exact instructions the skill gives your agent.
Is the Line Oa skill free?
Yes. Line Oa is a free, open-source skill by picseeinc. As with any third-party skill, review the source repository before installing it into an agent with sensitive access.
Does Line Oa work with Claude Code and OpenClaw?
Yes. Skills use the portable SKILL.md format, so Line Oa works with Claude Code, OpenClaw, Codex, Hermes, and any other agent that reads SKILL.md skills.