Skip to content

Configuration Guide

This document details all configuration options for the Feishu plugin.

Basic Configuration

Required

json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "cli_xxxxx",
      "appSecret": "xxxxx"
    }
  }
}

Optional

json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "cli_xxxxx",
      "appSecret": "xxxxx",
      "domain": "feishu",
      "requireMention": true,
      "connectionMode": "websocket"
    }
  }
}

Configuration Options

OptionTypeDefaultDescription
enabledbooleanfalseEnable Feishu channel
appIdstring-Feishu app ID
appSecretstring-Feishu app secret
domainstring"feishu"Domain: feishu or lark
requireMentionbooleantrueRequire @ mention to reply
connectionModestring"websocket"Connection: websocket or webhook
historyLimitnumber50Private message history limit

Group Configuration

Configure different behavior for each group:

json
{
  "channels": {
    "feishu": {
      "requireMention": true,
      "groupPolicy": "open",
      "groups": {
        "oc_xxxxx": {
          "requireMention": false,
          "groupPolicy": "open",
          "systemPrompt": "You are a professional assistant"
        }
      }
    }
  }
}

Group Policy (groupPolicy)

ValueDescription
openOpen, all group members can interact
allowlistOnly whitelisted users can interact
disabledDisable the group

requireMention

  • true (default): Need to @ the bot to get a response
  • false: Any message in the group triggers a response

Tool Switches

You can disable unused tool groups to reduce context overhead:

json
{
  "channels": {
    "feishu": {
      "tools": {
        "doc": true,
        "wiki": true,
        "bitable": true,
        "calendar": true,
        "task": true,
        "drive": false
      }
    }
  }
}

Message Configuration

Reply Mode

json
{
  "channels": {
    "feishu": {
      "replyMode": "auto"
    }
  }
}
ValueDescription
autoAutomatically select best mode
staticStatic message (send at once)
streamingStreaming message (real-time typing effect)
json
{
  "channels": {
    "feishu": {
      "footer": {
        "status": true,
        "elapsed": true
      }
    }
  }
}

Heartbeat Configuration

json
{
  "channels": {
    "feishu": {
      "heartbeat": {
        "every": "30m",
        "activeHours": {
          "start": "08:00",
          "end": "22:00",
          "timezone": "Asia/Shanghai"
        }
      }
    }
  }
}

Complete Example

json
{
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "cli_xxxxx",
      "appSecret": "xxxxx",
      "domain": "feishu",
      "requireMention": true,
      "groupPolicy": "open",
      "connectionMode": "websocket",
      "historyLimit": 50,
      "replyMode": "auto",
      "footer": {
        "status": true,
        "elapsed": true
      },
      "tools": {
        "doc": true,
        "wiki": true,
        "bitable": true,
        "calendar": true,
        "task": true,
        "drive": true
      },
      "heartbeat": {
        "every": "30m"
      },
      "groups": {
        "oc_team_chat": {
          "requireMention": false,
          "groupPolicy": "open",
          "systemPrompt": "You are a team collaboration assistant"
        }
      }
    }
  }
}

Next Steps

Released under the MIT License.