bub-feishu
Feishu channel adapter for bub.
What It Provides
- Channel implementation:
FeishuChannel(name = "feishu") - Inbound message adaptation from Feishu to Bub
ChannelMessage - Packaged Feishu skill resources under
skills/feishu feishu_send.pysupports both text and card sending via--format text|cardfeishu_edit.pyupdates an existing bot message
Installation
uv pip install bub-feishu
You can also install it with Bub:
bub install bub-feishu
Configuration
FeishuChannel reads settings from environment variables with the BUB_FEISHU_ prefix.
BUB_FEISHU_APP_ID(required): Feishu app IDBUB_FEISHU_APP_SECRET(required): Feishu app secretBUB_FEISHU_VERIFICATION_TOKEN(optional): webhook verification tokenBUB_FEISHU_ENCRYPT_KEY(optional): webhook encrypt keyBUB_FEISHU_ALLOW_USERS(optional): JSON array or comma-separated allowlist of sender user identifiersBUB_FEISHU_ALLOW_CHATS(optional): JSON array or comma-separated allowlist of chat IDsBUB_FEISHU_BOT_OPEN_ID(optional): implementation-specific bot open ID used for exact mention matching in group chats; this is not the Feishu app IDBUB_FEISHU_LOG_LEVEL(optional, default:INFO)
Runtime Behavior
- Session ID format:
feishu:<chat_id> - Inbound messages:
- ignores messages missing
chat_idormessage_id - applies allowlist filters when configured
- treats messages starting with
,as Bub commands
- ignores messages missing
- Message activation (
is_active = true) when any of these is true:- message is from
p2p - content contains
bub - content starts with
, - message mentions the bot
- message replies to a previous bot message
- message is from
Payload Shape
Inbound non-command messages are encoded as JSON string content, including fields like:
messagemessage_idtypesender_idsender_namesender_is_botdatemediareply_to_message
Outbound Notes
- Inbound non-command messages set
output_channel="null"to disable channel outbound routing. - The channel is inbound-only; Feishu send/edit/reaction actions are handled through the packaged scripts or direct OpenAPI calls.
- Reaction support is available through the Feishu message reaction API.
TODO
- Evaluate Feishu bot menu / chat menu tree as a Telegram-like command entrypoint for common actions and submenus.
- Evaluate a Feishu-native processing feedback mechanism comparable to Telegram typing updates.
- Evaluate whether voice-message handling is feasible and worth supporting in the Feishu skill/runtime.
Metadata
Release files for bub-feishu 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bub_feishu-0.0.2.tar.gz | 14.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bub_feishu-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.5 kB
Release files / bub_feishu-0.0.2.tar.gz
| Download URL | bub_feishu-0.0.2.tar.gz |
|---|---|
| Size | 14.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f601dfeab923e3ac0e0011d4503515d53136636ed73dfcd9aa6a035b1a1e138
|
|
BLAKE2b-256 checksum How to use checksums |
493c035a744083369f34d479be6ef01e68286d9300126571ad3b779231413e74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / bub_feishu-0.0.2-py3-none-any.whl
| Download URL | bub_feishu-0.0.2-py3-none-any.whl |
|---|---|
| Size | 17.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a30e4ebc4a10ace8630bcf341fc19dc64f9216df0d643f1b80e61c7facc80555
|
|
BLAKE2b-256 checksum How to use checksums |
b7b03386f2dc8cc097710818fb5fc41dfeae8ec930e173acbf385a38b6d37513
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for bub-feishu 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.