Feishu-native OpenCode assistant runtime.
feishu-bot connects Feishu messages to OpenCode sessions through an OpenCode plugin and a project skill. It lets a Feishu bot receive private or group messages, inject them into OpenCode, and send replies back through Feishu tools.
- Feishu WebSocket event bridge
- OpenCode plugin tools for sending messages, searching users, and listing chats
- Project skill
feishu-botwith strict usage rules - Group reply support with automatic
@resolution and quote reply - Docker runtime for OpenCode Web mode
- Secret-safe example configuration
.
├── AGENTS.md
├── Dockerfile
├── README.md
└── .opencode
├── feishu.yaml.example
├── opencode.json
├── package.json
├── package-lock.json
├── plugins/feishu-bot.js
├── reminders/
└── skills/feishu-bot/SKILL.md
cd .opencode
npm install
cp feishu.yaml.example feishu.yamlEdit .opencode/feishu.yaml with your Feishu app credentials:
app:
app_id: cli_xxxxxxxxxxxxxxxx
app_secret: your-feishu-app-secretThen start OpenCode from the repository root:
opencode web --port 4096 --hostname 0.0.0.0Restart OpenCode after changing .opencode/opencode.json, plugin files, skills, or Feishu config.
The Dockerfile copies feishu.yaml.example as a placeholder. For real deployments, mount the actual config at runtime:
docker run --rm -p 4096:4096 \
-v "$PWD/.opencode/feishu.yaml:/app/.opencode/feishu.yaml:ro" \
archaiharness/feishu-bot| Tool | Purpose |
|---|---|
feishu_send_message |
Send private or group messages |
feishu_search_user |
Search users and return open_id |
feishu_list_chats |
List bot-visible group chats |
feishu_list_chat_members |
List members of a chat |
.opencode/feishu.yamlis ignored by git.- Do not commit Feishu
app_secret, tokens, or private chat/user data. - Use
.opencode/feishu.yaml.exampleas the only committed config template.
MIT
Engineered by Architects · Empowered by AI