
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.
- Installs
- 122
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/m1heng/clawdbot-feishu --skill feishu-e2e-test- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads feishu-e2e-test automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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-browserCLI 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
- Start browser:
agent-browser --headed --session feishu-test open "https://feishu.cn/next/messenger" - User scans QR to login
- Search for bot:
Cmd+K→ type bot name →Enter - Focus input: press
/thenBackspace - Type message (English only, letter by letter)
- Press
Enterto send - Wait 10-20 seconds for response
- 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
FAQ
What does the feishu-e2e-test skill do?
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.
How do I install feishu-e2e-test?
Run npx skills add https://github.com/m1heng/clawdbot-feishu --skill feishu-e2e-test in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/feishu-e2e-test/ (personal) or .claude/skills/feishu-e2e-test/ (project).
Which AI agents can use feishu-e2e-test?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is feishu-e2e-test safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains feishu-e2e-test?
It is published by m1heng in m1heng/clawdbot-feishu. It has 122 recorded installs.
More from m1heng/clawdbot-feishu
feishu-doc
m1heng/clawdbot-feishu
Feishu document read/write operations + comment management. Activate when user mentions Feishu docs, cloud docs, docx links, or document comments.
feishu-drive
m1heng/clawdbot-feishu
Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.
feishu-wiki
m1heng/clawdbot-feishu
Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.
feishu-perm
m1heng/clawdbot-feishu
Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.
feishu-task
m1heng/clawdbot-feishu
Open the skill to read its SKILL.md instructions.
agent-browser
m1heng/clawdbot-feishu
Open the skill to read its SKILL.md instructions.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work