cx-feishu

A pi package that tells the model what pi-channels' notify needs to reach a Feishu group bot from a ComChatX box, and what its answer means.

Packages

Package details

skill

Install cx-feishu from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:cx-feishu
Package
cx-feishu
Version
0.1.2
Published
Nov 8, 2026
Downloads
277/mo · 235/wk
Author
hs_jack_yzy
License
MIT
Types
skill
Size
9.1 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "skills": [
    "./skills"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

cx-feishu

A pi package for sending messages to a Feishu (飞书) group bot from a ComChatX box with pi-channels (@amaster.ai/pi-channels) and its notify tool. It sends nothing itself and neither bundles nor lists pi-channels: the seller installs pi-channels beside it.

It is one skill, cx-feishu, telling the model what pi-channels' own words miss here: where a bot's address comes from and what overrides it, that a Feishu bot reads only the raw json body (notify's default envelope, and its test action without json, are refused), what keywords, 签名校验 and IP whitelists do to a send, that Sent means an HTTP 2xx and Feishu refuses with HTTP 200 and a nonzero code, that replies come back to no conversation, and that a listener keeps the box awake.

A bot

One webhook adapter and one route, in the pi-channels section of pi's settings:

{
  "pi-channels": {
    "adapters": { "feishu": { "type": "webhook" } },
    "routes": { "team": { "adapter": "feishu", "recipient": "${FEISHU_HOOK}" } }
  }
}

pi-channels expands ${VAR} in the global and agent-directory settings, not in a project's .pi/settings.json; a project's pi-channels section replaces the others' key by key — adapters, routes and bridge each — so a section meant to stop another layer's bot carries all three.

Install

pi install -l npm:@amaster.ai/pi-channels@0.1.28
pi install -l npm:cx-feishu

pi-channels is named at 0.1.28, the version this package is checked against, so pi keeps that version. Run in /tenant; without -l the install is gone at the box's next start. On ComChatX, a seller installs both from the Plugins page once they are listed.

Develop

npm ci
npm run typecheck
npm test               # loads the package with the pinned pi, and sends through pi-channels 0.1.28 to a stub on 127.0.0.1