← Back to home@LJH-snow

dsh-tool-feishu

No description

Stars
0
Language
TypeScript
Created
Aug 31, 2026
Updated
Oct 6, 2026

Introduction

dsh-tool-feishu

English | 中文

A Cordis tool plugin that gives DeepSeek Harness (dsh) Feishu/Lark integration capabilities. Agents can list chats, inspect members, read and send messages, list users, browse calendars and events, and review approval instances, details, and task actions.

Install

npm install @libai168/dsh-tool-feishu

Requires @deepseek-ai/cordis (^4.0.1) and @deepseek-ai/dsh-tools (^0.1.0-rc.6) as peer dependencies.

Configuration

- name: 'github:LJH-snow/dsh-tool-feishu'
  config:
    appId: 'cli_xxxxxxxxxxxxxxxx'
    appSecret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    # baseUrl: 'https://open.larksuite.com/open-apis'  # Lark international
    # timeoutMs: 15000

The optional baseUrl must be an absolute http:// or https:// root URL. Only publicly reachable hosts are allowed: localhost, loopback, private, link-local, CGNAT, multicast, reserved/documentation/benchmark ranges, and every IANA special-purpose block are rejected, and a hostname whose DNS results contain any such address fails closed before the request is sent. Credentials, query strings, fragments, and non-root paths are not allowed.

Tools

ToolDescriptionWrite
feishu_auth_testVerify app credentials and return tenant token metadatano
feishu_list_chatsList chats visible to the bot with paginationno
feishu_get_chatGet one chat by ID with name, description, and member countno
feishu_list_chat_membersList members of one chatno
feishu_get_departmentGet one department by ID with name and member countno
feishu_list_departmentsList departments with paginationno
feishu_list_department_childrenList child departments under one departmentno
feishu_list_messagesList messages in one chat with optional time rangeno
feishu_get_messageGet one message by IDno
feishu_send_messageSend a message to a chatyes
feishu_get_userGet one user by ID with name, email, and statusno
feishu_list_usersList users in a department with paginationno
feishu_list_calendarsList calendars accessible to the botno
feishu_list_calendar_eventsList events in one calendar with optional time rangeno
feishu_list_approval_instancesList approval instances with optional filtersno
feishu_get_approval_instanceGet one approval instance with detail fields and task IDsno
feishu_approve_approval_taskApprove one approval taskyes
feishu_reject_approval_taskReject one approval taskyes

Approval workflow

Typical usage for approvals:

  1. Use feishu_list_approval_instances to find the instance.
  2. Use feishu_get_approval_instance to inspect the instance detail and task IDs.
  3. Use feishu_approve_approval_task or feishu_reject_approval_task to act on a task.

The approve/reject tools can resolve approvalCode and instanceCode from the detail tool when you only pass instanceId, taskId, and userId.

Example flow:

feishu_list_approval_instances({ approvalCode: 'ap_123' })
feishu_get_approval_instance({ instanceId: 'inst_456', userId: 'ou_789' })
feishu_approve_approval_task({ instanceId: 'inst_456', taskId: 'task_1', userId: 'ou_789' })

Development

npm install
npm run typecheck
npm test
npm run build

License

MIT