⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
feishu-skills-installer
|
Use with your AI agent
Open your project in any AI assistant that can read your files. Works with ChatGPT, Claude, Claude Code, Codex, Cursor, Hermes Agent, OpenClaw, Grok Bot, and more.
Your agent needs access to this page’s linked instructions and your project files. Copying does not install or execute anything.
// RATINGS
Not yet listed on ClawHub or SkillsMP
// README
中文 | English
feishu-skills
A complete set of Feishu (Lark / 飞书) integration skills for OpenClaw and EnClaws.
Enables AI agents to read/write Feishu documents, send messages, manage calendars, tasks, and multi-dimensional tables — all authenticated with per-user OAuth tokens (not bot-owner tokens).
30-Second Feishu Setup
No more manual app creation. Scan a QR code with Feishu, and your bot is ready.
After installation, just tell your agent:
Help me set up the Feishu plugin
The agent will generate a QR code link → you scan it with the Feishu app → bot credentials are automatically saved to your OpenClaw config. Done.
See feishu-quick-setup for details.
Installation
git clone https://github.com/hashSTACS-Global/feishu-skills.git
cd feishu-skills
node install.js
Skills Included
| Skill | Description |
|---|---|
| feishu-quick-setup | One-click Feishu bot creation via QR code scan. Automatically writes credentials to OpenClaw config. |
| feishu-auth | OAuth Device Flow auth hub. Shared by all other skills. |
| feishu-create-doc | Create Feishu Docs with Markdown content |
| feishu-fetch-doc | Read Feishu Docs / Wiki pages |
| feishu-search-doc | Search cloud docs, wiki spaces/nodes, and filter drive folder entries by name |
| feishu-update-doc | Update Feishu Docs (append or overwrite blocks) |
| feishu-im-read | Read Feishu IM chat history |
| feishu-chat | Search group chats, get chat details, list members |
| feishu-calendar | Create / query / update calendar events |
| feishu-task | Create / query / update tasks and task lists |
| feishu-bitable | Full CRUD on Bitable apps, tables, fields, records, and views |
| feishu-docx-download | Download file attachments from Feishu Wiki and extract text content (docx/pdf/pptx/xlsx/xls/html/rtf/epub/txt/csv, etc.) |
| feishu-drive | Feishu Drive folder operations (currently: list folder items, create folder) |
| feishu-image-ocr | Image OCR via Feishu API. Chinese/English, pure Node.js, zero extra deps. |
| feishu-search-user | Search users by keyword, get current user profile, or look up a user by user_id / union_id |
| feishu-sheet | Read/write Feishu Spreadsheets (Sheets) — info, read, write, append, find, create, export |
| feishu-wiki | Feishu Wiki space and node management — list/get/create spaces; list/get/create/move/copy nodes |
Requirements
- Node.js ≥ 18 (uses built-in
fetch) - OpenClaw or EnClaws installed
- A Feishu app with the following permissions (see Configuration):
docs:doc,wiki:wiki:readonly,drive:driveim:message,im:message:readonlycalendar:calendartask:taskbitable:app
Configuration
OpenClaw
Your ~/.openclaw/openclaw.json must have a channels.feishu section with your app credentials:
{
"channels": {
"feishu": {
"appId": "cli_xxxxxxxxxxxxxxxx",
"appSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
},
"tools": {
"deny": [
"feishu_doc",
"feishu_create_doc",
"feishu_fetch_doc",
"feishu_update_doc",
"feishu_wiki",
"feishu_wiki_*",
"feishu_drive_*",
"feishu_search_doc_wiki",
"feishu_chat",
"feishu_chat_members",
"feishu_im_*",
"feishu_bitable_*",
"feishu_calendar_*",
"feishu_task_*",
"feishu_pre_auth"
],
"exec": {
"security": "full",
"ask": "off"
}
}
}
⚠️ IMPORTANT:
toolsmust be at the top level, NOT insidechannels.feishu. OpenClaw'schannels.feishu.toolsuses a different schema (boolean flags only) — placingdenythere will be silently ignored and the built-in plugin tools will remain active, causing the agent to bypass these skills entirely.
Why
tools.deny? OpenClaw has built-in Feishu plugin tools (feishu_doc, etc.). These skills replace them with richer, per-user OAuth versions. Denying the built-in tools ensures the agent uses these skills instead.
Why
tools.exec? These skills rely on theexectool to run Node.js scripts. Without"security": "full"and"ask": "off", the exec tool may be restricted or require manual confirmation for each invocation.
EnClaws
Credentials are injected automatically via environment variables (FEISHU_APP_ID, FEISHU_APP_SECRET). No manual configuration needed.
How Authentication Works
These skills use Feishu OAuth Device Flow — each user authorizes once via a link, and their token is stored locally in feishu-auth/.tokens/<open_id>/.
First use flow:
- User asks the agent to do something (e.g., create a doc)
- Script returns
{"error": "auth_required"}with an auth URL - Agent presents an authorization card/link to the user
- User clicks and authorizes in Feishu
- Agent automatically retries the original operation
- Token is saved; future calls are transparent
Token lifecycle:
- Access tokens auto-refresh via refresh token (no re-auth needed)
- Tokens are stored per user (
open_id) per app (appId) - Re-auth only needed if refresh token expires (~30 days of inactivity)
Credential Resolution Order
Scripts resolve app credentials in this order:
- Environment variables
FEISHU_APP_ID+FEISHU_APP_SECRET← EnClaws injects these feishu-auth/config.json← manual single-app setup~/.openclaw/openclaw.json→channels.feishu.appId/appSecret← OpenClaw standard
Usage Examples
Once installed, just talk to your agent naturally:
Create a Feishu doc titled "Q1 OKR" with the following content...
Read this Feishu doc: https://xxx.feishu.cn/docx/...
Show me my calendar events for today
Create a task: submit the report by 3 PM tomorrow
Add a new record to this Bitable: ...
Project Structure
feishu-skills/
├── feishu-auth/ # Auth hub (shared by all skills)
│ ├── SKILL.md
│ ├── auth.js # Device Flow initiation + polling
│ └── token-utils.js # Token read/write/refresh utilities
├── feishu-create-doc/
│ ├── SKILL.md
│ └── create-doc.js
├── feishu-fetch-doc/
│ ├── SKILL.md
│ └── fetch-doc.js
├── feishu-search-doc/
│ ├── SKILL.md
│ └── search-doc.js
├── feishu-update-doc/
│ ├── SKILL.md
│ └── update-doc.js
├── feishu-im-read/
│ ├── SKILL.md
│ └── im-read.js
├── feishu-chat/
│ ├── SKILL.md
│ └── chat.js
├── feishu-calendar/
│ ├── SKILL.md
│ └── calendar.js
├── feishu-task/
│ ├── SKILL.md
│ └── task.js
├── feishu-bitable/
│ ├── SKILL.md
│ └── bitables.js
├── feishu-docx-download/
│ ├── SKILL.md
│ ├── download-doc.js
│ └── extract.js
├── feishu-drive/
│ ├── SKILL.md
│ └── drive.js
├── feishu-image-ocr/
│ ├── SKILL.md
│ └── ocr.js # Feishu OCR API caller
├── feishu-search-user/
│ ├── SKILL.md
│ └── search-user.js # Search Feishu users by name
├── feishu-sheet/
│ ├── SKILL.md
│ └── sheet.js # Spreadsheet read/write/find/create/export
├── feishu-wiki/
│ ├── SKILL.md
│ └── wiki.js # Wiki space & node management
└── install.js # Cross-platform installer
Compatibility
// HOW IT'S BUILT
KEY FILES