All integrations

Lark / Feishu

ChannelProvider official

Lark and Feishu chats with native card streaming via the Chat SDK.

Read the full channel docs

Install

Install eve, Chat SDK, the Lark / Feishu adapter, and a state adapter:

bash
npm install eve@latest chat @larksuite/vercel-chat-adapter @chat-adapter/state-memory

The in-memory state store is for local development. Use Redis or PostgreSQL in production. The adapter is vendor-official.

Quick start

Create agent/channels/lark.ts:

ts
// agent/channels/lark.tsimport { createLarkAdapter } from "@larksuite/vercel-chat-adapter";import { createMemoryState } from "@chat-adapter/state-memory";import { chatSdkChannel } from "eve/channels/chat-sdk";
export const { bot, channel, send } = chatSdkChannel({  userName: "My Agent",  adapters: {    lark: createLarkAdapter(),  },  state: createMemoryState(),});
bot.onNewMention(async (thread, message) => {  await thread.subscribe();  await send(message.text, { thread });});
bot.onSubscribedMessage(async (thread, message) => {  await send(message.text, { thread });});
await bot.initialize();
export default channel;

See the Lark / Feishu adapter documentation for all supported events and credentials.

Configure

Create a Lark or Feishu app and set LARK_APP_ID and LARK_APP_SECRET. The adapter uses Lark’s WebSocket long connection rather than an HTTP webhook, so call bot.initialize() and run eve in a long-lived Node.js process. This is a vendor-official Chat SDK adapter built on the official Lark Node SDK. See the Chat SDK channel docs for eve session dispatch, state, streaming, and human-in-the-loop behavior.