Back to Blog
Tutorial

EP04 · Let Lobster Take Over Your Feishu

Yuki & Claw
·
2026-03-06T17:39:00

15 minutes to turn your AI lobster into the most capable colleague in Feishu/Lark — replying to messages, managing calendars, reading docs, sending images.

📖 Why Feishu/Lark?

In EP01-03, your lobster got a home, a brain, and skills. But it lives in the terminal — you need to open your computer and type commands to talk to it.

Connect it to Feishu/Lark, and your lobster becomes a Feishu colleague. @it from your phone anytime, and it gets to work. That's how our team uses it every day: just say "Claw, look something up for me" in a group chat, and it's on it.

What Can It Do After Connecting?

Here's what our team's lobster "Claw" does in Feishu/Lark every day:

Capability Description
💬 DMs & Group Chats Chat directly in Feishu/Lark, @it in groups — handles multiple people simultaneously
📅 Schedule Management "Book a meeting tomorrow at 3 PM" — writes it into Feishu/Lark calendar, checks availability
📄 Read & Write Docs Reads Feishu/Lark docs, fills Bitable spreadsheets, drafts meeting summaries
🔍 Search Knowledge Base "Find last week's competitor analysis" — pulls it from Feishu/Lark wiki
🎨 AI Creation "Draw me a picture" or "Generate a video" — creates and sends it right to chat
📎 Send Files Images, PDFs, spreadsheets — generated files sent directly, no download-and-forward
📰 Scheduled Pushes Daily AI news, project reminders — automated, no babysitting required
🤖 Task Management Integrates with Feishu/Lark Tasks — create, track, and remind on to-dos

Step 1: Create a Feishu/Lark App

① Open the Feishu Developer Platform

Go to open.feishu.cn/app (or open.larksuite.com/app for Lark) and log in with your account.

Click "Create Custom App", give it a name (like "My Lobster" 🦞), and upload an avatar.

② Get App ID and App Secret

After creation, on the "Credentials & Basic Info" page, you'll see:

App ID:     cli_xxxxxxxxxx
App Secret: xxxxxxxxxxxxxxxxxxxxxx

Save these two values — you'll need them in the next step.

③ Enable Bot Capability

Find "App Capabilities" → "Bot" in the left menu and enable it. This lets your app send and receive messages in Feishu/Lark chats.

💡 Stop here for now — don't configure permissions or event subscriptions yet. First, give the ID and Secret to OpenClaw and get it running, then come back to finish the setup.

Step 2: Configure OpenClaw

Give your lobster the App ID and App Secret you just got:

① Edit Configuration

openclaw config edit

Add the Feishu/Lark config under channels:

channels:
  feishu:
    appId: "your-app-id"
    appSecret: "your-app-secret"

② Restart OpenClaw

openclaw gateway restart
# ✓ Gateway restarted
# Feishu channel listening on :3121

When you see Feishu channel listening, your lobster is online and ready to receive messages.

💡 Tip: If using Webhook mode, set up Nginx to reverse-proxy https://your-domain/webhook/feishu to localhost:3121 for HTTPS. Long connection mode doesn't need this.

Step 3: Go Back to Feishu and Finish Setup

With OpenClaw running, return to the Feishu Developer Platform to complete the remaining steps.

① Configure Event Subscriptions

Go to "Events & Callbacks" in the left menu:

Recommended: Long Connection (WebSocket)

  1. Click the "Long Connection" tab and enable it
  2. Feishu/Lark pushes messages to your lobster automatically — no public IP required

Alternative: Webhook

If long connection isn't available:

  1. Set the Request URL to: https://your-domain/webhook/feishu
  2. Feishu/Lark sends a verification request — OpenClaw handles it automatically since it's already running

Add Events:

Search for im in the event list and enable all IM-related events. The corresponding IM permissions (messaging, group chat, reactions, etc.) will be automatically granted — no need to add them separately in Permission Management.

Key events include:

  • im.message.receive_v1 — Receive messages (required)
  • im.message.reaction.created_v1 — Message reactions added
  • im.message.reaction.deleted_v1 — Message reactions removed
  • im.chat.member.bot.added_v1 — Bot added to group
  • im.chat.member.bot.deleted_v1 — Bot removed from group

⚠️ Why configure OpenClaw before event subscriptions? Feishu/Lark sends a verification request when you set up events. If OpenClaw isn't running, verification fails. Long connection mode also needs the app to establish the connection first.

② Configure Permissions

Go to "Permission Management" and add permissions not covered by event subscriptions:

🔵 Resources (Required):

  • im:resource — Send images and files (not auto-granted by event subscriptions)

🔵 Card Messages (Recommended):

  • cardkit:card:write — Send rich card messages (buttons, colors, columns)
  • cardkit:card:read — Read card messages

⚠️ Without Card permissions, your lobster can only send plain text. Add these two for nice-looking card messages.

🔵 Contacts (Recommended):

  • contact:user.base:readonly — User info
  • contact:user.email:readonly — Email
  • contact:user.phone:readonly — Phone number
  • contact:user.department:readonly — User's department
  • contact:user.employee_id:readonly — Employee ID
  • contact:contact.base:readonly — Directory
  • contact:department.base:readonly — Department info

💡 Enable all contacts permissions — otherwise your lobster may not be able to read colleagues' full info.

🟢 Docs & Drive (Optional):

  • docx:document — Read and write docs
  • docx:document:readonly — Read-only docs
  • docx:document:create — Create docs
  • docx:document:write_only — Write docs
  • docx:document.block:convert — Block conversion
  • drive:drive — Cloud drive operations
  • drive:drive:readonly — Read-only drive
  • drive:drive.metadata:readonly — Read file info
  • drive:drive.search:readonly — Search drive

🟢 Bitable (Optional):

  • bitable:app — Read and write Bitable
  • bitable:app:readonly — Read-only Bitable

💡 For fine-grained Bitable permissions (base:record, base:field, base:table, etc.), search base in Permission Management and enable all to ensure full access.

🟢 Calendar (Optional):

  • calendar:calendar — Manage calendars
  • calendar:calendar.event:read — Read events
  • calendar:calendar.event:create — Create events
  • calendar:calendar.event:update — Update events
  • calendar:calendar.event:delete — Delete events
  • calendar:calendar.free_busy:read — Check availability

💡 Enable all calendar permissions including calendar:calendar:read, calendar:calendar.acl, etc. for full calendar functionality.

🟢 Wiki (Optional):

  • wiki:wiki — Search and read knowledge base
  • wiki:wiki:readonly — Read-only wiki

🟢 Tasks (Optional):

  • task:task — Manage tasks
  • task:task:read — Read tasks
  • task:task:write — Write tasks
  • task:tasklist:read — Read task lists
  • task:tasklist:write — Write task lists

💡 For task-related permissions (task:comment, task:section, task:attachment, etc.), search task and enable all.

💡 Recommendation: Messaging + Cards + Contacts are the basics — always enable them. Docs, Calendar, Tasks, etc. can be added later as needed.

③ Publish the App

Click "Version Management & Publishing" → "Create Version", add release notes, and submit for review. For internal enterprise use, it's ready once your admin approves.

⚠️ Note: Except for review-exempt permissions, every change to permissions or event subscriptions requires submitting a new version for review. Recommended: add all needed permissions at once to avoid repeated reviews.

Step 4: Test It Out!

Find your bot in Feishu/Lark and start chatting:

You: Hey! Who are you?
🦞: Hi! I'm your AI lobster assistant, just moved into Feishu 🏠 What can I help with?

You: Draw me a surfing lobster
🦞: 🎨 On it! Generating... [image sent directly to chat]

You: What's on my calendar tomorrow?
🦞: 📅 Tomorrow you have 2 events:
  10:00 Product Weekly
  15:00 Client Meeting

Advanced: Using in Group Chats

Your lobster isn't just for DMs — add it to groups as an "AI colleague":

  1. In group settings, add a bot and search for your app name
  2. @your lobster's name in the group to chat with it
  3. The lobster only responds when @mentioned — no spam

💡 Real example: Our team's lobster "Claw" does this in Feishu every day: manages the boss's calendar, generates images and videos for colleagues, auto-pushes AI industry news, answers all kinds of questions. Today it helped 6 people simultaneously — zero complaints.

FAQ

💥 Added contacts permission but still can't read colleague info?

  • This is a contacts scope restriction in the Feishu/Lark admin console. Ask your company's Feishu admin to go to Admin Console → App Permissions and set "Contacts Access Scope" to "All Employees". Otherwise the bot can only see a limited subset of users.

💥 Not receiving messages?

  • Event subscription not verified → Is OpenClaw running? Re-save event config on the platform
  • Permissions not approved → Admin needs to approve in Feishu management console
  • Changed permissions/events but didn't republish → Create a new version and publish

💥 Lobster can only send plain text, not cards?

  • Missing cardkit:card:write permission → Add it in Permission Management and republish

💥 Lobster says "no permission"?

  • Required permission not requested or approved → Add it in Permission Management, get admin approval

💥 Can't send images?

  • Missing im:resource permission, or image is too large (Feishu limits ~20MB)

📌 Key Takeaways

  • Step 1 Create app on Feishu Developer Platform → Get App ID + Secret → Enable bot
  • Step 2 Configure OpenClaw with ID/Secret → Start the lobster
  • Step 3 Go back to Feishu → Set up event subscriptions + permissions → Publish
  • Step 4 Test: DM directly, @lobster in groups

Next Episode: EP05 · Teaching Your Lobster to Remember You — Give your lobster memory of who you are, your preferences, and habits — making it a true "personal assistant."

Share

💬 Join Our Community

Connect with developers, get updates and technical support

Join Discord