/feishu-e2e-test
Local E2E debug and test framework for clawd-feishu plugin development. Use when debugging message flow, testing bot responses, verifying Feishu web UI interactions, or performing end-to-end validation of the OpenClaw-Feishu integration during development.
$ npx -y skills add m1heng/clawdbot-feishu --skill feishu-e2e-test --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/feishu-e2e-test
Context preview
The summary Claude sees to decide when to auto-load this skill.
Local E2E debug and test framework for clawd-feishu plugin development. Use when debugging message flow, testing bot responses, verifying Feishu web UI interactions, or performing end-to-end validation of the OpenClaw-Feishu integration during development.
SKILL.md
feishu-e2e-test.SKILL.mdname: feishu-e2e-test
description: Local E2E debug and test framework for clawd-feishu plugin development. Use when debugging message flow, testing bot responses, verifying Feishu web UI interactions, or performing end-to-end validation of the OpenClaw-Feishu integration during development.
allowed-tools: Bash(agent-browser:*)
Feishu E2E Test Framework
Local development testing using `agent-browser` CLI to interact with Feishu web app.
Prerequisites
- Feishu web logged in at `https://feishu.cn/next/messenger`
- `agent-browser` CLI available
- OpenClaw locally installed
- Feishu bot appid/secret given in chat or in .env
- User given bot name which will display in Feishu web UI
Important Notes
**Every time you modify extension code, you MUST restart OpenClaw Gateway for changes to take effect.**
# Restart gateway (required after code changes)
openclaw gateway restart
# Check if gateway is running
ps aux | grep openclaw
# View gateway logs
tail -f ~/.openclaw/logs/gateway.log
agent-browser Usage
Always use `--headed` mode so user can see the browser and help with login:
agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"
Feishu Web UI Tips
Feishu web has complex UI that makes direct clicking unreliable. Use these strategies:
1. Use Search (Cmd+K) Instead of Clicking
Clicking on chat list items often misses or selects wrong item. Use global search:
# Open search
agent-browser --session feishu-test press "Meta+k"
# Type bot name letter by letter
agent-browser --session feishu-test press "o"
agent-browser --session feishu-test press "p"
agent-browser --session feishu-test press "e"
agent-browser --session feishu-test press "n"
# Select first result
agent-browser --session feishu-test press "Enter"
2. Focus Input with "/" Key
After entering a chat, press "/" to focus the message input:
agent-browser --session feishu-test press "/"
agent-browser --session feishu-test press "Backspace" # Remove the "/"
# Then type your message
3. Type Characters One by One
The `type` command often fails with special characters. Use `press` for each character:
# Instead of: agent-browser type "ping"
agent-browser --session feishu-test press "p"
agent-browser --session feishu-test press "i"
agent-browser --session feishu-test press "n"
agent-browser --session feishu-test press "g"
4. Chinese Characters Do NOT Work
**Chinese characters cannot be typed with `press` command.** Use English only:
# BAD - Chinese won't render
for char in $(echo "读取文档" | grep -o .); do
agent-browser --session feishu-test press "$char" # Will fail silently
done
# GOOD - Use English
for char in r e a d " " d o c; do
agent-browser --session feishu-test press "$char"
done
5. Typing Spaces
Spaces must be quoted as `" "`:
# Type "read doc"
for char in r e a d " " d o c; do
agent-browser --session feishu-test press "$char"
done
6. Typing Long Strings Efficiently
Use a for loop to type URLs or long text:
# Type a full URL
url="https://feishu.cn/docx/YOUR_DOC_TOKEN"
for char in $(echo "$url" | grep -o .); do
agent-browser --session feishu-test press "$char" 2>/dev/null || true
done
7. Avoid JS eval on Feishu
Do NOT use `eval` to set input values - it can break the page:
# BAD - will corrupt page
agent-browser eval "document.activeElement.innerText = 'text'"
# GOOD - use keyboard input
agent-browser press "t" && agent-browser press "e" ...
8. Full URLs Work Better Than IDs
When testing document tools, send full URLs rather than just document IDs:
# Better - bot recognizes as document link
"https://feishu.cn/docx/YOUR_DOC_TOKEN"
# Less reliable - may not trigger tool
"read YOUR_DOC_TOKEN"
Verifying Tool Calls
Log Patterns
Monitor gateway logs to verify tool execution:
tail -f ~/.openclaw/logs/gateway.log
Key log entries:
- `[feishu] received message from ...` - incoming message
- `[feishu] dispatching to agent` - sent to agent
- `[feishu] added typing indicator reaction` - bot is processing
- `[feishu] deliver called: text=...` - agent response
- `[feishu] dispatch complete` - response sent
Verify Tool Usage
Ask bot explicitly to confirm tool usage:
use feishu_doc tool to read YOUR_DOC_TOKEN
Look for confirmation in response like: > "我已经用 **Feishu Doc Tool** 读过了这个文档"
Common Errors
Permission Error (99991672)
Access denied. One of the following scopes is required: [contact:contact.base:readonly...]
This means bot lacks contact permission. Doesn't affect core messaging but prevents resolving sender names.
Other Log Locations
# Error logs
tail -f ~/.openclaw/logs/gateway.err.log
# All log files
ls -la ~/.openclaw/logs/
# Raw agent session records (tool calls, responses, etc.)
ls ~/.openclaw/agents/main/sessions/
# View specific session
cat ~/.openclaw/agents/main/sessions/<session-id>.json
Test Workflow
1. Start browser: `agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"` 2. User scans QR to login 3. Search for bot: `Cmd+K` → type bot name → `Enter` 4. Focus input: press `/` then `Backspace` 5. Type message (English only, letter by letter) 6. Press `Enter` to send 7. Wait 10-20 seconds for response 8. Take screenshot and check logs to verify
Testing feishu_doc Tool
# 1. Focus input
agent-browser --session feishu-test press "/" && \
agent-browser --session feishu-test press "Backspace"
# 2. Type full doc URL
url="https://feishu.cn/docx/YOUR_DOC_ID"
for char in $(echo "$url" | grep -o .); do
agent-browser --session feishu-test press "$char" 2>/dev/null || true
done
# 3. Send
agent-browser --session feishu-test press "Enter"
# 4. Wait and check logs
sleep 15 && tail -30 ~/.openclaw/logs/gateway.log
Read more
name: feishu-e2e-test description: Local E2E debug and test framework for clawd-feishu plugin development. Use when debugging message flow, testing bot responses, verifying Feishu web UI interactions, or performing end-to-end validation of the OpenClaw-Feishu integration during development. allowed-tools: Bash(agent-browser:*)
Feishu E2E Test Framework
Local development testing using `agent-browser` CLI to interact with Feishu web app.
Prerequisites
- Feishu web logged in at `https://feishu.cn/next/messenger`
- `agent-browser` CLI available
- OpenClaw locally installed
- Feishu bot appid/secret given in chat or in .env
- User given bot name which will display in Feishu web UI
Important Notes
**Every time you modify extension code, you MUST restart OpenClaw Gateway for changes to take effect.**
# Restart gateway (required after code changes) openclaw gateway restart # Check if gateway is running ps aux | grep openclaw # View gateway logs tail -f ~/.openclaw/logs/gateway.log
agent-browser Usage
Always use `--headed` mode so user can see the browser and help with login:
agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"
Feishu Web UI Tips
Feishu web has complex UI that makes direct clicking unreliable. Use these strategies:
1. Use Search (Cmd+K) Instead of Clicking
Clicking on chat list items often misses or selects wrong item. Use global search:
# Open search agent-browser --session feishu-test press "Meta+k" # Type bot name letter by letter agent-browser --session feishu-test press "o" agent-browser --session feishu-test press "p" agent-browser --session feishu-test press "e" agent-browser --session feishu-test press "n" # Select first result agent-browser --session feishu-test press "Enter"
2. Focus Input with "/" Key
After entering a chat, press "/" to focus the message input:
agent-browser --session feishu-test press "/" agent-browser --session feishu-test press "Backspace" # Remove the "/" # Then type your message
3. Type Characters One by One
The `type` command often fails with special characters. Use `press` for each character:
# Instead of: agent-browser type "ping" agent-browser --session feishu-test press "p" agent-browser --session feishu-test press "i" agent-browser --session feishu-test press "n" agent-browser --session feishu-test press "g"
4. Chinese Characters Do NOT Work
**Chinese characters cannot be typed with `press` command.** Use English only:
# BAD - Chinese won't render for char in $(echo "读取文档" | grep -o .); do agent-browser --session feishu-test press "$char" # Will fail silently done # GOOD - Use English for char in r e a d " " d o c; do agent-browser --session feishu-test press "$char" done
5. Typing Spaces
Spaces must be quoted as `" "`:
# Type "read doc" for char in r e a d " " d o c; do agent-browser --session feishu-test press "$char" done
6. Typing Long Strings Efficiently
Use a for loop to type URLs or long text:
# Type a full URL url="https://feishu.cn/docx/YOUR_DOC_TOKEN" for char in $(echo "$url" | grep -o .); do agent-browser --session feishu-test press "$char" 2>/dev/null || true done
7. Avoid JS eval on Feishu
Do NOT use `eval` to set input values - it can break the page:
# BAD - will corrupt page agent-browser eval "document.activeElement.innerText = 'text'" # GOOD - use keyboard input agent-browser press "t" && agent-browser press "e" ...
8. Full URLs Work Better Than IDs
When testing document tools, send full URLs rather than just document IDs:
# Better - bot recognizes as document link "https://feishu.cn/docx/YOUR_DOC_TOKEN" # Less reliable - may not trigger tool "read YOUR_DOC_TOKEN"
Verifying Tool Calls
Log Patterns
Monitor gateway logs to verify tool execution:
tail -f ~/.openclaw/logs/gateway.log
Key log entries:
- `[feishu] received message from ...` - incoming message
- `[feishu] dispatching to agent` - sent to agent
- `[feishu] added typing indicator reaction` - bot is processing
- `[feishu] deliver called: text=...` - agent response
- `[feishu] dispatch complete` - response sent
Verify Tool Usage
Ask bot explicitly to confirm tool usage:
use feishu_doc tool to read YOUR_DOC_TOKEN
Look for confirmation in response like: > "我已经用 **Feishu Doc Tool** 读过了这个文档"
Common Errors
Permission Error (99991672)
Access denied. One of the following scopes is required: [contact:contact.base:readonly...]
This means bot lacks contact permission. Doesn't affect core messaging but prevents resolving sender names.
Other Log Locations
# Error logs tail -f ~/.openclaw/logs/gateway.err.log # All log files ls -la ~/.openclaw/logs/ # Raw agent session records (tool calls, responses, etc.) ls ~/.openclaw/agents/main/sessions/ # View specific session cat ~/.openclaw/agents/main/sessions/<session-id>.json
Test Workflow
1. Start browser: `agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger"` 2. User scans QR to login 3. Search for bot: `Cmd+K` → type bot name → `Enter` 4. Focus input: press `/` then `Backspace` 5. Type message (English only, letter by letter) 6. Press `Enter` to send 7. Wait 10-20 seconds for response 8. Take screenshot and check logs to verify
Testing feishu_doc Tool
# 1. Focus input agent-browser --session feishu-test press "/" && \ agent-browser --session feishu-test press "Backspace" # 2. Type full doc URL url="https://feishu.cn/docx/YOUR_DOC_ID" for char in $(echo "$url" | grep -o .); do agent-browser --session feishu-test press "$char" 2>/dev/null || true done # 3. Send agent-browser --session feishu-test press "Enter" # 4. Wait and check logs sleep 15 && tail -30 ~/.openclaw/logs/gateway.log
Feishu/Lark (飞书) channel plugin for OpenClaw. 中文社区资料 - 配置教程、常见问题、使用技巧:Wiki Contributing / 贡献指南: CONTRIBUTING.md Issue Reporting / 问题反馈: Please check Discussions first for common solutions, then open a structured Issue Form if needed.
Repo: m1heng/clawdbot-feishu
Other skills on clawdbot-feishu.
- /release
Publish a new release of the Feishu plugin. Use when the user asks to release, publish, or cut a new version.
Open skill - /feishu-chat
Feishu chat operations including group announcement reading/writing and group chat management.
Open skill - /feishu-doc
Feishu document read/write operations + comment management. Activate when user mentions Feishu docs, cloud docs, docx links, or document comments.
Open skill - /feishu-drive
Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.
Open skill - /feishu-message
Feishu message reading. Activate when user mentions reading messages, chat history, message lookup, or finding previous messages.
Open skill - /feishu-perm
Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.
Open skill

