npx claudepluginhub phxwang/feishuchannel-for-claudecodeFeishu (Lark) channel for Claude Code — messaging bridge with built-in access control. Manage pairing, allowlists, and policy via /feishu:access.
A Feishu (Lark) channel plugin for Claude Code, built on Claude Code's native Channel interface. Send messages to a Feishu bot and interact with Claude — right in your chat.
Uses the MCP Channel protocol to integrate Feishu as a first-class messaging channel for Claude Code, with WebSocket persistent connection mode requiring no public HTTPS endpoint.
Go to Feishu Open Platform (or Lark Open Platform for international)
Create a Custom App (enterprise internal app)
Note the App ID (cli_...) and App Secret
Under Events & Callbacks, configure two separate tabs:
Event Configuration tab:
im.message.receive_v1Callback Configuration tab:
card.action.trigger (Card interaction callback) — required for confirm card buttons to workUnder Permissions & Scopes, add:
| Permission | Purpose |
|---|---|
im:message | Send messages |
im:message.receive_v1 | Receive messages |
im:message.p2p_msg:readonly | Read DM messages |
im:message.group_at_msg:readonly | Read group @mentions |
im:chat:readonly | Read chat metadata |
im:resource | Download attachments |
Publish the app version so permissions take effect
Clone the repository:
git clone git@github.com:phxwang/feishuclaudecode.git
Register the local directory as a plugin marketplace, then install the plugin:
claude plugin marketplace add ./feishuclaudecode
claude plugin install feishu@feishu-local
The Feishu channel is a development channel plugin. Launch Claude Code with:
claude --dangerously-load-development-channels plugin:feishu@feishu-local
Note: The
--dangerously-load-development-channelsflag is required because this is a local development channel plugin.
In your Claude Code terminal:
/feishu:auth cli_YOUR_APP_ID YOUR_APP_SECRET
Credentials are stored in ~/.claude/channels/feishu/.env (mode 600).
Open Feishu and search for your bot by app name
Send any message to the bot
The bot replies with a pairing code
In Claude Code, run:
/feishu:access pair <code>
The bot confirms: "Paired! Say hi to Claude."
You're ready — send messages to the bot and Claude will respond.
All access commands are run in your Claude Code terminal via /feishu:access.
/feishu:access
| Policy | Behavior |
|---|---|
pairing (default) | Unknown users get a pairing code to approve |
allowlist | Unknown users are silently dropped |
disabled | All messages dropped |
/feishu:access policy allowlist
Tip: Once all your users are paired, switch to
allowlistto prevent unsolicited pairing requests.
# Approve a pairing
/feishu:access pair <code>
# Deny a pairing
/feishu:access deny <code>
# Manually allow a user by open_id
/feishu:access allow ou_xxxxxxxxxxxxxxxxxxxx
# Remove a user
/feishu:access remove ou_xxxxxxxxxxxxxxxxxxxx
Groups are off by default. The bot must be added to the group by a group admin first.
# Enable a group (responds on @mention only)
/feishu:access group add oc_xxxxxxxxxxxxxxxxxxxx
# Respond to all messages (no @mention needed)
/feishu:access group add oc_xxxxxxxxxxxxxxxxxxxx --no-mention
# Restrict to specific users within the group
/feishu:access group add oc_xxxxxxxxxxxxxxxxxxxx --allow ou_id1,ou_id2
# Remove a group
/feishu:access group rm oc_xxxxxxxxxxxxxxxxxxxx
# React to received messages with an emoji (default: Get)
/feishu:access set ackReaction Get
# Set max characters per message chunk
/feishu:access set textChunkLimit 4096